Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour à tous,
Je travaille sur PB 7 (et oui ça existe encore).
Mon problème est le suivant :
J'ai une DW.
Je lis le sql de la DW à l'aide de la fonction getsqlselect().
Je construis ma clause WHERE
ls_clausewhere = " AND ARTCOD like '" + ls_mot + "%' AND ARTFRN = '" + ls_artfrn + "'"
Puis j'execute le nouveau SQL avec la fonction setsqlselect().
Rien de plus classique.
Mais voila, dans les données récupérées d'un vieux logiciel développé en COBOL, il y avait un code Fournisseur (artfrn) contenant une apostrophe.
Ex : FL'AUTO
Donc message d'erreur PB :
Datawindow Error :
Select Error ORA-01756 : Une chaîne entre apostrophes ne se termine pas correctement.
Normal, car si je mets un messagebox pour afficher ma clause Where, le résultat est le suivant :
AND ARTCOD like 'MA' AND ARTFRN = 'FL'AUTO'
Logique.
J'ai donc essayé de remplacer ma quote par FL~~'AUTO, puis par FL~~'~~AUTO, puis etc.
Je n'y arrive pas.
Je vous remercie par avance pour votre aide.
A+
touran81
Hors ligne
hello,
en inversant les quotes...
ls_clausewhere = ' AND ARTCOD like "' + ls_mot + '%" AND ARTFRN = "' + ls_artfrn + '"'
Hors ligne
Bonjour Touran81, bienvenue sur le forum.
Ta démarche est bonne, il faut effectivement des tildes devant l'apostrophe (mais pas devant AUTO !)
La question est : combien ?
Le mieux c'est de tout essayer.
A priori, je dirais qu'il en faut trois :
FL~~~'AUTO
La théorie c'est que le premier tilde échappe le deuxième, et le troisième échappe la quote.
Donc en tapant FL~~~'AUTO dans ton code, ta variable contiendra : FL~'AUTO
Hors ligne
shahin a écrit:
Bonjour Touran81, bienvenue sur le forum.
Ta démarche est bonne, il faut effectivement des tildes devant l'apostrophe (mais pas devant AUTO !)
La question est : combien ?
Le mieux c'est de tout essayer.
A priori, je dirais qu'il en faut trois :FL~~~'AUTO
La théorie c'est que le premier tilde échappe le deuxième, et le troisième échappe la quote.
Donc en tapant FL~~~'AUTO dans ton code, ta variable contiendra : FL~'AUTO
Salut Shahin,
J'ai essayé en mettant FL~~'AUTO et toujours le message d'erreur.
Et même chose pour FL~~~'AUTO
Dernière modification par touran81 (26-04-2007 09:40:23)
Hors ligne
pick ouic a écrit:
hello,
en inversant les quotes...Code: pb
ls_clausewhere = ' AND ARTCOD like "' + ls_mot + '%" AND ARTFRN = "' + ls_artfrn + '"'
Salut Pick ouic,
J'avais déjà essayé, mais sans succés.
Nouveau message d'erreur :
Select error : ORA-00904 "FL'AUTO" : identificateur non valide.
:-(
Hors ligne
salut, as-tu essayé en doublant tout simplement l'apostrophe ?
Hors ligne
eRaSorZ a écrit:
salut, as-tu essayé en doublant tout simplement l'apostrophe ?
Salut eRaSorz,
Tu es un dieu.
Merci bcp.
Ca fonctionne.
Le problème est résolu.
Je vous trouve d'ailleurs tous .
Merci de m'avoir aidé aussi rapidement.
Je vais essayé moi aussi de répondre à des pb de d'autres forumeurs.
Le problème est RESOLU.
Touran81
Hors ligne
touran81 a écrit:
Ca fonctionne.
Le problème est résolu.
, sinon je gardais une botte secrète au cas où : antislash
Hors ligne
Pages: 1