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 28-09-2010 09:04:55

devsud  
Membre
Date d'inscription: 24-07-2009
Messages: 10
Pépites: 58
Banque: 0

[RESOLU] Modification du SetSqlSelect d'une datastore (+ héritage PFC)

Bonjour,

J'ai une datasore associé à une datawindow recevant un retrieve argument (cette datawindow n'est pas updatable).
Par programme je modifie la procédure SQL de lecture des données car contrainte par des choix dans une autre datawindow.
Je modifie le select afin de ne plus avoir les argument dans le select ainsi que le where

Problème lors de la réinjection de la modification à l'exécution du SetSqlSelect j'ai un retour -1 (il semble que l'on n'a pas le droit de faire un SetSqlSelect sur un DW avec argument)
Y a t-il une solution autre que passer par une DW avec procédure stockée

Mon select avant modification (issu de la DW) :
  SELECT :type_risque as TYPE_RISQUE,   
         RISQUES.RISQ_T_PC_CODE,   
         TYPE_NUM_COMPTE ='C',   
         RISQUES.RISQ_CPT_NUM,   
         CASE when :type_risque = 'RI' THEN RISQINH_CODE ELSE RISQINT_CODE END AS CODE_RISQUE 
    FROM RISQUES 
   WHERE RISQUES.RISQ_ID > 0   
ORDER BY RISQUES.RISQ_CPT_NUM ASC,   
         RISQUES.RISQ_T_PC_CODE ASC   

Mon select avant réinjection : (modification par programmation du select et du where)
SELECT 'RI' as TYPE_RISQUE,
           RISQUES.RISQ_T_PC_CODE ,
           TYPE_NUM_COMPTE ='C',
           RISQUES.RISQ_CPT_NUM ,
           CASE when 'RI' = 'RI' THEN RISQINH_CODE ELSE RISQINT_CODE END AS CODE_RISQUE
FROM RISQUES WHERE ( RISQUES.RISQ_ID > 0 )
              AND (LTRIM(RTRIM(RISQUES.RISQ_T_PC_CODE)) LIKE 'CEP')
              AND (LTRIM(RTRIM(RISQUES.RISQ_CPT_NUM)) LIKE '071%')
     ORDER BY RISQUES.RISQ_CPT_NUM ASC,
           RISQUES.RISQ_T_PC_CODE  ASC

Dernière modification par devsud (28-09-2010 11:09:38)

Hors ligne

 

#2 28-09-2010 09:10:05

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Modification du SetSqlSelect d'une datastore (+ héritage PFC)

Bonjour,

N'oublies pas d'utiliser les balises code=sql.
Merci d'avance.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 28-09-2010 09:47:35

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Modification du SetSqlSelect d'une datastore (+ héritage PFC)

Bonjour,

Oui, le setsqlselect fonctionne dans la mesure ou il n'y a pas de retrievials arguments à la datawindow. Mais si tu modifies la requête SQL dynamiquement tu n'as plus l'utilité des retrievials arguments.

Il te suffit de définir ta datawindow avec une requête quelconque au départ sans retrievials arguments et d'appliquer le SetSQLSelect.

Hors ligne

 

#4 28-09-2010 10:24:40

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: [RESOLU] Modification du SetSqlSelect d'une datastore (+ héritage PFC)

Bonjour,
    Je rejoins BUCK sur son analyse ( si on modifie la requete SQL on a plus besoin de retrieval argument )

    Par contre il est possible d'effectuer la modification d'un requête avec des retrieval argument en utilisant la fonction MODIFY
exemple

Code: pb

dw_1.modify ( "DataWindow.Table.Select='select col1 , col2 from Table where col1 = :argument ........' " ) 

Hors ligne

 

#5 28-09-2010 11:08:51

devsud  
Membre
Date d'inscription: 24-07-2009
Messages: 10
Pépites: 58
Banque: 0

Re: [RESOLU] Modification du SetSqlSelect d'une datastore (+ héritage PFC)

Effectivement j'ai opté pour la solution du modify, et c'est OK

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22