Bonjour,
Petit à petit je fais mon petit trou avec lazarus et les tables sous sqlite.
Je sais maintenant créer une base et des tables, écrire dans une table, la vider
et dernière trouvaille effacer un enregistrement lais là je ne suis pas sur que j'utilise la bonne méthode, mais surtout la suite qui me préoccupe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 MQ:='Delete from '+MTABLE; Sqlite3.SQL:=MQ; Sqlite3.ExecSQL; Sqlite3.ApplyUpdates; Sqlite3.SQL:='Select * from '+MTABLE; Sqlite3.ExecSQL; Sqlite3.RefetchData;
Pour effacer un enregistrement j'utilise le numéro de l'enregistrement qui est égal à la clé primaire
K_AUTOMAT étant ma clé primaire et est au départ égale au numéro de l'enregistrement dans ma table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 MENCOURS:=Sqlite3.RecNo; MQ:='Delete from '+MTABLE+' WHERE K_AUTOMAT='+IntToStr(MENCOURS); Sqlite3.SQL:=MQ; Sqlite3.ExecSQL; Sqlite3.ApplyUpdates; Sqlite3.SQL:='Select * from '+MTABLE; Sqlite3.ExecSQL; Sqlite3.RefetchData;
Mais après l'effacement je voudrais bien pouvoir réorganiser ma table pour que cette clé soit toujours égale au numéro d'enregistrement.
deuxième question sous lazarus et sqlite y a-t-il une commande de compactage et de réindexation comme avec les fichiers dbase ?
Merci de bien vouloir me conseiller.
Partager