je voudrais par une requête sqlite delete effacer une ligne client dans une BD fiche_client en récupérant le client_id (primary key). Le debug m'indique que la fiche est effacée, mais quand je refais une consultation de fiche, celle-ci est toujours là....
Je mets mes 2 procédures : l'une de consultation de fiche (qui fonctionne bien mais qui pourrait peut être améliorée) et celle de delete qui bugue.
Si quelqu'un a une petite idée, je dois avouer ne pas bien comprendre ce qui cloche.
Merci
Voilà le code :
Code : Tout sélectionner
; ############# procédure consultation ##############
Procedure searchFicheClient()
Debug "Début recherche fiche client"
If OpenDatabase(#DB_ID, databaseFilename, "", "")
Debug "Opération ouverture DB réussie"
SetDatabaseString(#DB_ID, 0, GetGadgetText(#NOM_INPUT2)) ; utilisation de variables de liaison !!!
If (DatabaseQuery(#DB_ID, "SELECT * FROM fiche_client WHERE nom = ?")) ; requête recherche fiche clients
Debug "requête opérée"
If (NextDatabaseRow(#DB_ID) = 0); teste si au moins un nom
Debug "Pas de fiche(s) au nom : " + GetGadgetText(#NOM_INPUT2)
Else
Debug GetDatabaseString(#DB_ID,0) + " " + GetDatabaseString(#DB_ID,1) + " " + GetDatabaseString(#DB_ID,2)
EndIf
While NextDatabaseRow(#DB_ID); boucle si plusieurs noms identiques
Debug GetDatabaseString(#DB_ID,0) + " " + GetDatabaseString(#DB_ID,1) + " " + GetDatabaseString(#DB_ID,2)
Wend
EndIf
CloseDatabase(#DB_ID)
Else
MessageRequester("Erreur", "Impossible d'exécuter la requête: "+DatabaseError())
EndIf
EndProcedure
; ########## procédure d'effaçage fiche client ##########
Procedure deleteFicheClient()
If OpenDatabase(#DB_ID, databaseFilename, "", "")
Debug "Opération ouverture DB réussie"
SetDatabaseLong(#DB_ID, 0, Val(GetGadgetText(#ID_CLIENT_INPUT2))); utilisation de variables de liaison !!!
If (DatabaseQuery(#DB_ID, "DELETE FROM fiche_client WHERE client_id = ?")) ; requête effaçage fiche clients
Debug "Fiche du client " + GetGadgetText(#NOM_INPUT2) + " effacée"
Else
MessageRequester("Erreur", "Impossible d'exécuter la requête: "+DatabaseError())
EndIf
CloseDatabase(#DB_ID)
EndIf
EndProcedure