PB à toute heure et à tout moment. (à parcourir avec modération)

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