Pb requête SQLite DELETE
Publié : sam. 22/déc./2018 15:17
				
				Bonjour,
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 :
			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