Le premier champ de la base sqlite, nommé "id" numérote chaque ligne. Ce champ s'incrémentant à chaque création de ligne supplémentaire.
Le contenu de la base s'affiche dans un listview. Trois boutons permettent de modifier la base : Ajouter une ligne, Modifier et Supprimer la ligne sélectionnée. Jusque là tout va bien.
A la suite de la suppression de ligne, je souhaiterais que les lignes retrouvent une numérotation continue, aussi bien dans la base sqlite, que dans le listview :
Je ne parviens pas à faire cela.
J'imagine mettre à jour la base sqlite, dans une boucle pour décrémenter d'1 tous les enregistrements supérieurs au numéro de la ligne supprimée.
Mais là je suis perdu.
Code : Tout sélectionner
;suppression de la ligne sélectionnée :
Local $index = ControlListView("", "", $myList, "GetSelected")
$Base_SQLite = _SQLite_Open($sqlite)
_SQLite_Exec($Base_SQLite, "DELETE FROM liste WHERE id = '" & $index & "';")
;réindexation : là rien ne va plus
$nbre_lignes = _SQLite_Query($Base_SQLite, "sqlite_num_rows(liste);")
For $i = $index + 1 To $nbre_lignes
$decr = $i - 1
_SQLite_Query($Base_SQLite, "UPDATE liste SET id = '" & $decr & "' WHERE ID = $i;")
Next




