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--