Ma chaine sql est incorrecte

Résolu
beegeezzz Messages postés 152 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 10 avril 2017 - 11 avril 2009 à 18:13
beegeezzz Messages postés 152 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 10 avril 2017 - 11 avril 2009 à 18:43
Bonsoir tout le monde,

J'ai un problème avec ma chaine sql en VB :
Set rsTable BDOuvrirTable("SELECT * FROM clients WHERE login "" " & login & " ""  AND mdp = "" " & mdp & """, True)

J'obtiens le message :

"syntax error"

Merci d'avance pour votre aide.

beegeezzz

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 avril 2009 à 18:23
Salut
En fait, le problème est dans l'utilisation des " à l'intérieur d'une chaine elle-même délimitée par des ".
Dans ta chaine, tu doubles bien les " pour insérer, mais regarde le résultat :
Ta chaine   "SELECT * FROM clients WHERE login "" " & login & " ""  AND mdp "" " & mdp & "" "va donner (avec login toto et mpd pass)   "SELECT * FROM clients WHERE login " toto "  AND mdp " pass "
Il y a un problème : Tu as ajouté un espace devant et derrière les textes, normal qu'il ne les trouve pas.

Pour simplifier les choses, SQL accepte le symbole ' comme délimiteur de chaine.
Comme ça, l'usage des doubles " est inutile et simplifie l'écriture :
   "SELECT * FROM clients WHERE login = '" & login & "' AND mdp = '" & mdp & "'"

Mais fait bien attention à ne pas ajouter d'espace dans une zone que SQL reconnaitra comme une chaine.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
beegeezzz Messages postés 152 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 10 avril 2017 1
11 avril 2009 à 18:43
Salut Jack,

Un super grand merci pour ta réponse hypère détaillée.

J'ai appris quelque chose grâce à ta réponse (').

Merci encore et bon WE.

beegeezzz
0
Rejoignez-nous