Bonjour,
Lors d'une utilisation simple de gadfly j'ai un message que je ne
comprends pas.
Le code est le suivant :
cursor =3D connection.cursor()
cursor.execute('select id_m from mots where nom_m =3D "%s"' % nom_m)
id_m =3D cursor.fetchall()
Le message d'erreur est le suivant :
File "C:\Python24\Lib\site-packages\gadfly\kjParser.py", line 567, in
getmember
(Token,skip) =3D self.LexDict.Token(self.String, self.Position)
File "C:\Python24\Lib\site-packages\gadfly\kjParser.py", line 433, in
Token
raise LexTokenError, "Lexical token not found "+info
gadfly.kjParser.LexTokenError: Lexical token not found near ::
' where nom_m =3D '*'"Ancient s Pled'
Est-ce que la valeur stock=E9e dans la base gadfly est en cause, peut
elle impacter la r=E9solution du code ? Que faut-il faire ?
Merci d'avance pour votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Do Re Mi chel La Si Do
Bonsoir !
Je ne sais pas pour Gadfly, mais il me semble que, en SQL, les valeurs string littérales doivent être encadrées par des apostrophes. mais je suppose que Gadfly accepte aussi les guillemets.
Mais, que va-t'il se passer, si nom_m contient lui-même un guillemet ? (exemple : nom_m='ab"cd') Ou une étoile ? (exemple : nom_m='*')
@-salutations
Michel Claveau
Bonsoir !
Je ne sais pas pour Gadfly, mais il me semble que, en SQL, les valeurs
string littérales doivent être encadrées par des apostrophes. mais je
suppose que Gadfly accepte aussi les guillemets.
Mais, que va-t'il se passer, si nom_m contient lui-même un guillemet ?
(exemple : nom_m='ab"cd')
Ou une étoile ? (exemple : nom_m='*')
Je ne sais pas pour Gadfly, mais il me semble que, en SQL, les valeurs string littérales doivent être encadrées par des apostrophes. mais je suppose que Gadfly accepte aussi les guillemets.
Mais, que va-t'il se passer, si nom_m contient lui-même un guillemet ? (exemple : nom_m='ab"cd') Ou une étoile ? (exemple : nom_m='*')
@-salutations
Michel Claveau
Laurent Pointal
Do Re Mi chel La Si Do wrote:
Bonsoir !
Je ne sais pas pour Gadfly, mais il me semble que, en SQL, les valeurs string littérales doivent être encadrées par des apostrophes. mais je suppose que Gadfly accepte aussi les guillemets.
Je me souviens d'un post de l'auteur de Gadfly, disant qu'il avait bossé longtemps sur SQL, l'optimisation de requêtes... Je pense qu'il a essayé de respecter au maximum la syntaxe SQL... et si seul le ' est utilisable pour les chaînes dans la norme, il n'a pas dû permettre le ".
D'ailleurs une petite recherche http://www.google.fr/search?q=gadfly+sql+compatibility
Renvoie vers la FAQ de Gadfly, qui contient entre autres: http://gadfly.sourceforge.net/faq.html#how-standard-is-the-sql-subset-supported << Gadfly SQL is based on ODBC 2.0 SQL which in turn is based on an SQL standard draft. This means that Gadfly SQL adheres closely to the SQL you find in many other database products and documented in many books and other documentation. A number of people have implemented Gadfly databases and transferred the SQL with few to no modifications from the implementation directly to Oracle or MS-Access, for example.
Mais, que va-t'il se passer, si nom_m contient lui-même un guillemet ? (exemple : nom_m='ab"cd') Ou une étoile ? (exemple : nom_m='*')
Il vaudrais mieux passer par nom_m=(?) et donner la chaîne en paramètre à la requête (c'est la façon normale de procéder - ça laisse le boulot des échappements de caractères à la couche DBAPI, ça évite de les oublier, et ça évite des failles de sécurité).
A+
Laurent.
Do Re Mi chel La Si Do wrote:
Bonsoir !
Je ne sais pas pour Gadfly, mais il me semble que, en SQL, les valeurs
string littérales doivent être encadrées par des apostrophes. mais je
suppose que Gadfly accepte aussi les guillemets.
Je me souviens d'un post de l'auteur de Gadfly, disant qu'il avait bossé
longtemps sur SQL, l'optimisation de requêtes... Je pense qu'il a essayé
de respecter au maximum la syntaxe SQL... et si seul le ' est utilisable
pour les chaînes dans la norme, il n'a pas dû permettre le ".
D'ailleurs une petite recherche
http://www.google.fr/search?q=gadfly+sql+compatibility
Renvoie vers la FAQ de Gadfly, qui contient entre autres:
http://gadfly.sourceforge.net/faq.html#how-standard-is-the-sql-subset-supported
<<
Gadfly SQL is based on ODBC 2.0 SQL which in turn is based on an SQL
standard draft. This means that Gadfly SQL adheres closely to the SQL
you find in many other database products and documented in many books
and other documentation. A number of people have implemented Gadfly
databases and transferred the SQL with few to no modifications from the
implementation directly to Oracle or MS-Access, for example.
Mais, que va-t'il se passer, si nom_m contient lui-même un guillemet ?
(exemple : nom_m='ab"cd')
Ou une étoile ? (exemple : nom_m='*')
Il vaudrais mieux passer par nom_m=(?) et donner la chaîne en paramètre
à la requête (c'est la façon normale de procéder - ça laisse le boulot
des échappements de caractères à la couche DBAPI, ça évite de les
oublier, et ça évite des failles de sécurité).
Je ne sais pas pour Gadfly, mais il me semble que, en SQL, les valeurs string littérales doivent être encadrées par des apostrophes. mais je suppose que Gadfly accepte aussi les guillemets.
Je me souviens d'un post de l'auteur de Gadfly, disant qu'il avait bossé longtemps sur SQL, l'optimisation de requêtes... Je pense qu'il a essayé de respecter au maximum la syntaxe SQL... et si seul le ' est utilisable pour les chaînes dans la norme, il n'a pas dû permettre le ".
D'ailleurs une petite recherche http://www.google.fr/search?q=gadfly+sql+compatibility
Renvoie vers la FAQ de Gadfly, qui contient entre autres: http://gadfly.sourceforge.net/faq.html#how-standard-is-the-sql-subset-supported << Gadfly SQL is based on ODBC 2.0 SQL which in turn is based on an SQL standard draft. This means that Gadfly SQL adheres closely to the SQL you find in many other database products and documented in many books and other documentation. A number of people have implemented Gadfly databases and transferred the SQL with few to no modifications from the implementation directly to Oracle or MS-Access, for example.
Mais, que va-t'il se passer, si nom_m contient lui-même un guillemet ? (exemple : nom_m='ab"cd') Ou une étoile ? (exemple : nom_m='*')
Il vaudrais mieux passer par nom_m=(?) et donner la chaîne en paramètre à la requête (c'est la façon normale de procéder - ça laisse le boulot des échappements de caractères à la couche DBAPI, ça évite de les oublier, et ça évite des failles de sécurité).