Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

caractere d'échappement pour ' avec sqlserver

3 réponses
Avatar
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

3 réponses

Avatar
Jean-marc
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" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">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_' ;
Avatar
jerome
"Jean-marc" wrote in message
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" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">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
Avatar
Jean-marc
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_' ;