Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2007, 11h14   #1
Membre régulier
 
Avatar de keub51
 
Inscription : janvier 2007
Messages : 349
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 349
Points : 79
Points : 79
Par défaut Passage de parametres avec caracteres spéciaux

Bonjour,

Je souhaite éxécuter une Procédure Stockée qui me compte des maisl dans une table selon certains critères. Parmi ces critères on trouve un libellé sous forme de String. L'utilisateur peut en selectionner plusieurs ce qui m'oblige à utiliser IN.

Voici une partie de ma requête :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        SELECT 
          COUNT(*)
        FROM
          DO_EMLWEB a,
          DO_RFL b,
          DO_NWL c,
          DO_EMLWEBISCNWL d
        WHERE
          a.CODENS = codeEnseigne AND
          --Centres interets
          a.EMLCPTWEB = d.EMLCPTWEB AND
          d.IDNWL = c.IDFNWL AND
          c.RFLLIBNWL = b.IDFRFL AND
          b.VALRFL IN(PARAMETRE)
Mon idée c'est de récuperer les libellé et de les concatener les uns a la suite des autres comme ceci :
Code :
1
2
3
4
5
6
 
            String chaineCI="";                                    
             FOR(int i = 0;i<this.rchCI.length;i++)
                {
                    chaineCI=chaineCI+"'"+rchCI[i]+"'";
                }
Ainsi chaineCI contiendra tous mes libellé et je pourrais ainsi les passé en parametre dans ma requete.

Question : est ce que mon script plantera si l'un des libellés contient un " ' " ? Si oui avez vous une parade a cela ?

Merci ...
__________________
.-*K.E.U.B*-.
keub51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 12h15   #2
Membre régulier
 
Avatar de keub51
 
Inscription : janvier 2007
Messages : 349
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 349
Points : 79
Points : 79
Comme un parfait noob je réponds à ma propre question mdr ( si tout le monde été comme ca il n'y aurait plus de forum lol )

Code :
1
2
3
4
5
6
7
8
9
10
Il suffit de doubler les " ' " comme ceci :
 
                FOR(int i = 0;i<this.rchCI.length;i++)
                    {
                    IF(rchCI[i].indexOf("'")!=-1)
                        rchCI[i]=rchCI[i].replaceAll("'","''");                        
                    chaineCI=chaineCI+"'"+rchCI[i]+"'";
                    IF(i!=this.rchCI.length-1)
                        chaineCI=chaineCI+",";
                    }
voili voilou
__________________
.-*K.E.U.B*-.
keub51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h42.


 
 
 
 
Partenaires

Hébergement Web