Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 26-04-2007 09:10:05

touran81  
Membre
Lieu: Toulouse
Date d'inscription: 26-04-2007
Messages: 15
Pépites: 80
Banque: 0

[RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

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

Code: pb

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

 

#2 26-04-2007 09:24:33

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

hello,
en inversant les quotes...

Code: pb

ls_clausewhere = ' AND ARTCOD like "' + ls_mot + '%" AND ARTFRN = "' + ls_artfrn + '"'

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 26-04-2007 09:26:24

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

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


never let people work on more than one thing at once.

Hors ligne

 

#4 26-04-2007 09:34:19

touran81  
Membre
Lieu: Toulouse
Date d'inscription: 26-04-2007
Messages: 15
Pépites: 80
Banque: 0

Re: [RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

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

 

#5 26-04-2007 09:39:27

touran81  
Membre
Lieu: Toulouse
Date d'inscription: 26-04-2007
Messages: 15
Pépites: 80
Banque: 0

Re: [RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

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

 

#6 26-04-2007 09:43:39

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

salut, as-tu essayé en doublant tout simplement l'apostrophe ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#7 26-04-2007 09:51:43

touran81  
Membre
Lieu: Toulouse
Date d'inscription: 26-04-2007
Messages: 15
Pépites: 80
Banque: 0

Re: [RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

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

 

#8 26-04-2007 09:54:19

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Getslqselect()/Setsqlselect() et chaine de caractère contenant quotes

touran81 a écrit:

Ca fonctionne.
Le problème est résolu.

, sinon je gardais une botte secrète au cas où : antislash


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22