[VB6] les guillemets dans une recherche ... avec SQL

les guillemets dans une recherche ... avec SQL [VB6] - Programmation

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

Reply

Marsh Posté le 06-02-2001 à 10:21:18   

Reply

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

Reply

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

Reply

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

Reply

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


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 06-02-2001 à 12:18:20    

ok je vais tester cela
merci ... Magic

 

--Message édité par Hepil--

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed