DatabaseLastInsertRowId()
DatabaseLastInsertRowId()
Maintenant que Sqlite3 est intégré a PureBasic il ne manque plus qu'une fonction
DatabaseLastInsertRowId() Histoire de connaitre l'Id du dernier insert
qu'en pensez vous ?
DatabaseLastInsertRowId() Histoire de connaitre l'Id du dernier insert
qu'en pensez vous ?
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
SQLite3 n'est pas intégré officiellement, il n'y a qu'un simple lien ODBC.
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Heu ... tu es sur ?Progi1984 a écrit :SQLite3 n'est pas intégré officiellement, il n'y a qu'un simple lien ODBC.
pourtant il y a bien la commande UseSQLiteDatabase() en plus de la commande UseODBCDatabase() et il y a une sqlite3.lib dans Purelibraries/Windows/Librarie
je suppose donc qu'il y a bien une intégration non ? surtotu que la sqlite3.lib contient tout les fonctions de la sqlite3.dll ou alors je comprends pas l'interêt de la chose.
Edit:
dans la news sur PB 4.2 il est bien marqué
Code : Tout sélectionner
Added: SQLite library
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
OOps, dsl, j'avais mal lu le nom de la procédure, je croyais que c'était UseSQLiteODBCDatabase(). Désolé de ma fausse affirmation !
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Pas de souci Et que penses tu de ma suggestion ?Progi1984 a écrit :OOps, dsl, j'avais mal lu le nom de la procédure, je croyais que c'était UseSQLiteODBCDatabase(). Désolé de ma fausse affirmation !
En attendant voici un code d'apres une suggestion de NetMaestro. Mais ça ne marche que pour une base sqlite3
Code : Tout sélectionner
ImportC "sqlite3.lib"
sqlite3_last_insert_rowid(hDB.l)
EndImport
Procedure DatabaseLastInsertRowId(n)
hDB.l=IsDatabase(n)
ProcedureReturn sqlite3_last_insert_rowid(hDB.l)
EndProcedure
petite correction du code sinon ça ne fonctionne pas
Code : Tout sélectionner
Global hDB.l
ImportC "sqlite3.lib"
sqlite3_last_insert_rowid(hDB.l)
EndImport
Procedure DatabaseLastInsertRowId()
LastId.l=sqlite3_last_insert_rowid(hDB.l)
Debug "hDB:"+Str(hDb)
Debug "LastId:"+Str( LastId)
ProcedureReturn LastId
EndProcedure
;Demarre la Base de donnée
UseSQLiteDatabase()
result=OpenDatabase(0, "padb.s3db", "", "")
If result=0
Debug DatabaseError()
Else
hDB = PeekL(PeekL(result+4))
EndIf
Un autre code bien sympa proposer part Kiffi sur le forum anglais
et beaucoup plus simple !
et beaucoup plus simple !
Code : Tout sélectionner
Procedure DatabaseLastInsertRowId(db.l=0)
DatabaseQuery(db, "Select last_insert_rowid()")
NextDatabaseRow(db)
ProcedureReturn GetDatabaseLong(db, 0)
EndProcedure