IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

SQLite error near à la lecture d'une donnée texte


Sujet :

SQLite

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut SQLite error near à la lecture d'une donnée texte
    Salut,

    Je veux lire une base .db3 à partir d'un programme visual basic utilisant le wrapper SQLite de http://sqlite.phxsoftware.com,.

    A l'exécution du programme si une cellule d'une des tables à lire, exemple:
    tblPrograms\strDescription dont le type est text

    contient une suite de caractéres encadrés par un guillemet, exemple:
    Lors d'une visite à Annie "Reine" et Eric

    le programme génére une exception:
    SQLite error
    near "Reine": syntax error

    Le simple fait de retirer ces deux guillemets supprime l'exception

    Etant donné que ces données sont intégrées dans la base par un tiers (donc impossibilité définitive d'intervenir en amont lors du remplissage de la cellule) existe t'il un moyen de contourner cet obstacle. S'agit-il d'un bug de la dll ou d'une erreur de ma part?

    Merci de vos suggestions A+
    Images attachées Images attachées  

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Salut,

    As-tu essayé tout simplement d'échapper tes guillemets, avec un anti slash je crois ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Salut,

    As-tu essayé tout simplement d'échapper tes guillemets, avec un anti slash je crois ?
    ce n'est pas le lecture de la base qui plante mais la mise à jour de la cellule en question, bre, c'est bien la solution que je cherche à éviter car elle m'oblige à explorer les données alpha contenues dans la cellule, sur une base de 200.000 items, chacun de 100 à 1024 caractéres!

    mais s'il n'existe pas d'autres solutions il faudra bien en passer par là

    De toute façon un grand merci et joyeuses fêtes

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par ernie74 Voir le message
    ce n'est pas le lecture de la base qui plante mais la mise à jour de la cellule en question
    C'est un SELECT ou un INSERT qui plante ?
    Pourrais-tu nous donner le code source en erreur ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par jml94 Voir le message
    C'est un SELECT ou un INSERT qui plante ?
    Pourrais-tu nous donner le code source en erreur ?

    C'est l'update, et je viens de résoudre le probléme. La solution, une requête paramétrée:

    BaseMPCommand.Parameters.Add(New SQLiteParameter("@ProgramReference"))
    BaseMPCommand.Parameters.Add(New SQLiteParameter("@Description"))
    BaseMPCommand.Parameters("@ProgramReference").Value = ProgramReference
    BaseMPCommand.Parameters("@Description").Value = Description
    BaseMPCommand.CommandText = "UPDATE tblPrograms SET strDescription = @Description WHERE idProgram = @ProgramReference"
    BaseMPDA.Fill(ProgramDS, "tblPrograms")

    qui a remplacé une écriture directe:

    UPDATE tblPrograms SET strDescription =" + Guillemet + Description + Guillemet + "WHERE idProgram =" + ProgramReference
    instruction qui plantait là l'écriture lorsque la cellule tblPrograms\Description de format texte contenait des doubles quotes dans le texte alphanumérique lu.

    La logique du programme balayait cette cellule, transcodait deux caractéres par remplacement et la réécrivait. C'est à l'écrirure (UPDATE) que se produisait le plantage.


    Bye et merci de ton attention. A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture d'une donnée dans un fichier
    Par Newenda dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/09/2012, 14h09
  2. Lecture d'une donnée par son nom
    Par seblutfr dans le forum ADO.NET
    Réponses: 5
    Dernier message: 04/05/2011, 08h37
  3. Réponses: 8
    Dernier message: 14/10/2007, 16h49
  4. Recordset, lecture d'une donnée NULL
    Par jdelges dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/10/2007, 11h42
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo