caractere d'échappement pour ' avec sqlserver

Le
jerome
Bonjour,

je n'arrive pas à trouver quel caractere d'échappement je dois envoyer avec
vb pour les apostrophes (') pour sqlserver.
Si j'envoie juste le texte "l'école" ça plante à cause de l'apostrophe.
Si je remplace ' par '' ça passe mais j'ai deux '' dans mon texte.

Donc comment faire pour juste envoyer "l'école" ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-marc
Le #15383031
jerome wrote:
Bonjour,

je n'arrive pas à trouver quel caractere d'échappement je dois
envoyer avec vb pour les apostrophes (') pour sqlserver.
Si j'envoie juste le texte "l'école" ça plante à cause de
l'apostrophe.
Si je remplace ' par '' ça passe mais j'ai deux '' dans mon texte.

Donc comment faire pour juste envoyer "l'école" ?

Merci



Hello,

il suffit de doubler, comme tu l'as fait.
Voir à ce sujet l'article de la FAQ :
http://faq.vb.free.fr/index.php?question2

Et tu n'auras pas 2 ' dans ton texte.

Ca dépend en fait de ce que tu fais exactement et avec quoi.

tu pourrais écrire:

Dim szSQL As String
Dim param As String

param = "L'ecole"

' l'astuce est la :
param = Replace(param, "'", "''")

szSQL = "SELECT * FROM Table WHERE truc = '" & param & "'"

' suite ...

Le même principe fonctionne pour un INSERT ou pour n'importe
quoi d'autre.

A noter que ça fonctionne avec SQL Server mais aussi avec toutes
les autres DB. C'est la façon SQL de le faire.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
jerome
Le #15382971
"Jean-marc" news:47517fbc$0$29252$
jerome wrote:
> Bonjour,
>
> je n'arrive pas à trouver quel caractere d'échappement je dois
> envoyer avec vb pour les apostrophes (') pour sqlserver.
> Si j'envoie juste le texte "l'école" ça plante à cause de
> l'apostrophe.
> Si je remplace ' par '' ça passe mais j'ai deux '' dans mon texte.
>
> Donc comment faire pour juste envoyer "l'école" ?
>
> Merci

Hello,

il suffit de doubler, comme tu l'as fait.
Voir à ce sujet l'article de la FAQ :
http://faq.vb.free.fr/index.php?question2

Et tu n'auras pas 2 ' dans ton texte.

Ca dépend en fait de ce que tu fais exactement et avec quoi.

tu pourrais écrire:

Dim szSQL As String
Dim param As String

param = "L'ecole"

' l'astuce est la :
param = Replace(param, "'", "''")

szSQL = "SELECT * FROM Table WHERE truc = '" & param & "'"

' suite ...

Le même principe fonctionne pour un INSERT ou pour n'importe
quoi d'autre.

A noter que ça fonctionne avec SQL Server mais aussi avec toutes
les autres DB. C'est la façon SQL de le faire.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;





Bonjour,

Oui c'est ce que j'ai fait mais le problème est que dans les données SQL on
se retrouve avec '' au lieu de '.
Qu'il faut donc redécoder en affichage.
Et si on ouvre la table SQL directement ça peut prêter à confusion.

Merci
Jean-marc
Le #15382951
jerome wrote:
Oui c'est ce que j'ai fait mais le problème est que dans les données
SQL on se retrouve avec '' au lieu de '.
Qu'il faut donc redécoder en affichage.
Et si on ouvre la table SQL directement ça peut prêter à confusion.



On ne doit pas parler de la même chose alors, parce que tout le
monde utilise ça de cette façon et on n'a jamais de double
apostrophe dans les données en table.

Je ne sais pas ce que tu utilises pour arriver à ce résultat.

Sauf (horrible doute) si tu utilises les guillements (")
comme séparateur de chaine, auquel cas évidemment rien
ne fonctionne.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Publicité
Poster une réponse
Anonyme