Page 1 sur 1

Apostrophe dans une base sqlite

Publié : lun. 07/juil./2008 11:55
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

Publié : lun. 07/juil./2008 13:18
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$) 
  

Publié : lun. 07/juil./2008 13:40
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$) 

Publié : lun. 07/juil./2008 14:17
par Progi1984
ou de remplacer par le chr correspondant. Pour cela, fais un debug asc("'")