Apostrophe dans une base sqlite

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
coxco
Messages : 92
Inscription : ven. 06/juin/2008 16:04

Apostrophe dans une base sqlite

Message par coxco »

Salut

lorsque je tape dans un editorgadget ou stringgadget un apostrophe, l'enregistrement dans la base sqlite n'est pas pris en compte.

Est ce normal ?
De quoi cela vient il ?

Merci
coxco
Messages : 92
Inscription : ven. 06/juin/2008 16:04

Message par coxco »

Code : Tout sélectionner

UseSQLiteDatabase()

  fichier_plante_db.s = "test.db"
       
      If OpenDatabase(1, fichier_plante_db, "", "")
          
        ;Debug "Connecté à PureBasic.sqlite"
       ;  If DatabaseUpdate(0, "CREATE TABLE travaux (id int,date int, description varchar, type_plante varchar, photo varchar, meteo varchar, prix varchar, quantite varchar,autres varchar);")
         If DatabaseUpdate(1, "CREATE TABLE plantes (id_plante int,description_plante varchar, floraison_plante varchar, annee_plante varchar, photo_plante varchar,prix_plante varchar,hauteur_plante varchar);")

        ;Debug "Table cree"
         EndIf
     Else 
        If CreateFile(1,fichier_plante_db)
        CloseFile(1)
          If OpenDatabase(1, fichier_plante_db, "", "")
               If DatabaseUpdate(1, "CREATE TABLE plantes (id_plante int,description_plante varchar, floraison_plante varchar, annee_plante varchar, photo_plante varchar,prix_plante varchar,hauteur_plante varchar);")

        ;Debug "Connecté à PureBasic.sqlite"
          ;If DatabaseUpdate(0, "CREATE TABLE travaux (id int,date int, description varchar, type_plante varchar, photo varchar, meteo varchar, prix varchar,quantite varchar,autres varchar );")
        ;Debug "Table cree"
          EndIf
         EndIf
        EndIf
    EndIf
  
  requete_ajout$="INSERT INTO plantes VALUES ('','attention','','','','','')"
  DatabaseUpdate(1, requete_ajout$) 
  
Ce code fonctionne mais si l'on insère une apostrophe dans une valeur cela ne marche plus, comment éviter cela ?

Code qui ne marche pas

Code : Tout sélectionner

UseSQLiteDatabase()

  fichier_plante_db.s = "test.db"
       
      If OpenDatabase(1, fichier_plante_db, "", "")
          
        ;Debug "Connecté à PureBasic.sqlite"
       ;  If DatabaseUpdate(0, "CREATE TABLE travaux (id int,date int, description varchar, type_plante varchar, photo varchar, meteo varchar, prix varchar, quantite varchar,autres varchar);")
         If DatabaseUpdate(1, "CREATE TABLE plantes (id_plante int,description_plante varchar, floraison_plante varchar, annee_plante varchar, photo_plante varchar,prix_plante varchar,hauteur_plante varchar);")

        ;Debug "Table cree"
         EndIf
     Else 
        If CreateFile(1,fichier_plante_db)
        CloseFile(1)
          If OpenDatabase(1, fichier_plante_db, "", "")
               If DatabaseUpdate(1, "CREATE TABLE plantes (id_plante int,description_plante varchar, floraison_plante varchar, annee_plante varchar, photo_plante varchar,prix_plante varchar,hauteur_plante varchar);")

        ;Debug "Connecté à PureBasic.sqlite"
          ;If DatabaseUpdate(0, "CREATE TABLE travaux (id int,date int, description varchar, type_plante varchar, photo varchar, meteo varchar, prix varchar,quantite varchar,autres varchar );")
        ;Debug "Table cree"
          EndIf
         EndIf
        EndIf
    EndIf
  
  requete_ajout$="INSERT INTO plantes VALUES ('','à l'attention','','','','','')"
  DatabaseUpdate(1, requete_ajout$) 
  
coxco
Messages : 92
Inscription : ven. 06/juin/2008 16:04

Message par coxco »

Bon pour ceux qui chercheraient, enfin ils y en a peut être à part moi hein non bon tanpis je le dis quand même

la solution que j'ai trouvé est de doubler le quote

ce qui donne

Code : Tout sélectionner

  requete_ajout$="INSERT INTO plantes VALUES ('','à l''attention','','','','','')"
  DatabaseUpdate(1, requete_ajout$) 
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

ou de remplacer par le chr correspondant. Pour cela, fais un debug asc("'")
Répondre