les guillemets dans une recherche ... avec SQL [VB6] - Programmation
Marsh Posté le 06-02-2001 à 11:21:51
essaye ceci:
select * fril table1 where nomcli = 'o''Mc Loch '
c'est le type de code généré lors d'un export Data sur une base Oracle donc l'un des champs contenait une apostrophe
Marsh Posté le 06-02-2001 à 11:27:21
excuses, mais le fril étai en fait from !!
sinon, ce que tu me dis je l'ai déjà testé
c'est le message d'erreur que je rencontre, car l'exécution s'arrête au deuxième guillemet, le reste est alors considéré comme du commentaire
--Message édité par Hepil--
Marsh Posté le 06-02-2001 à 11:42:39
En fait il faut t'arranger selon ce que ton SGBD comprends
Le SGBD ne comprends la chaine 'o'Mc Loch'
SQLServer comprends 'o'+Char(39)+'Mc Loch'
Oracle comprends 'o''Mc Loch'
Access comprends les deux il me semble
Après le reste, je connais pas
Marsh Posté le 06-02-2001 à 11:45:53
deux soluces :
essaie de remplacer les guillemets par &chr(39)&, ou essaie avec cette fonction que m'avait filé Magibuzz il y a quelques temps (je pense qu'il n'y verra pas d'objection) :
function quote(byval chaine)
on error resume next
chaine = cstr(chaine)
if chaine <> "" then
chaine = replace(chaine,"'","''" )
quote="'"&chaine&"'"
else
quote="''"
end if
if err <> 0 then
quote="''"
end if
on error goto 0
end function
Marsh Posté le 06-02-2001 à 12:18:20
ok je vais tester cela
merci ... Magic
--Message édité par Hepil--
Marsh Posté le 06-02-2001 à 10:21:18
si j'execute
rs.open "select * from table1 where nomcli = 'andrew' and précli = 'Lucky'"
ça marche
mais si je remplace Andrew par o'Mc Loch
ça ne marche plus parce qu'il y a une apostrophe dans la chaîne de caractères
Si je double l'apostrophe, il y a une erreur
Quelle est la solution ?
--Message édité par Hepil--