Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonsoir bonsoir,
Je bosse sur une appli en PB12.5 upgradée depuis une appli PB12 et j'ai un souci avec une de mes datawindow où j'ai un argument de type String Array...
Impossible d'avoir une donnée via l'exécution de mon code !
Pourtant dans mon retrieve, je passe bien un param de type string blabla[5]... Je ne comprends pas trop où se situe le problème !
Si je teste un retrieve en live dans la datawindow en passant comme argument 'val1', 'val2', ... J'ai bien des enregistrements qui en résultent !
Merci d'avance si vous avez une idée ! Modif : ajout du tag "résolu"
Dernière modification par seki (30-09-2014 07:29:33)
Hors ligne
Il faudrait plus de détails :
- dans le source de la DW : la valeur de "arguments=(...)"
- dans le code PB, l'appel du retrieve(), et quelle valeur de retour il renvoie
- après le retrieve(), est-ce que sqlca.sqlcode est différent de 0 et sqlca.sqlerrtext différent de "chaine vide" ?
Hors ligne
Pas de souci...
- Dans le source de la DW : arguments=(("as_type", stringlist))
- Le retrieve renvoie -1
- SQLERRTEXT = "" et SQLCODE = 0
Hors ligne
jordel a écrit:
Pas de souci...
- Dans le source de la DW : arguments=(("as_type", stringlist))
- Le retrieve renvoie -1
- SQLERRTEXT = "" et SQLCODE = 0
Comment fais-tu le retrieve pb ?
string ls_valeurs[]={ "val1", "val2" } int r r = dw_1.retrieve( ls_valeurs[] ) //ok r = dw_1.retrieve( ls_valeurs[1] )//pas ok r = dw_1.retrieve( ls_valeurs[1], ls_valeurs[2] )//pas ok
Hors ligne
string ls_val[] ls_val[1] = "v1" ls_val[2] = "v2" ls_val[3] = "v3" ls_val[4] = "v4" ls_val[5] = "v5" if dw_1.retrieve( ls_val[] ) > 0 then ... else ... end if
Dernière modification par jordel (25-09-2014 09:32:32)
Hors ligne
Tu as bien un SetTransObject() sur la DW avant le retrieve() ?
Hors ligne
As-tu vérifié que dw_1.dataobject correspond bien à la datawindow que tu tests en design et qu'il n'y a pas de doublon de la datawindow dans tes libs ?
Hors ligne
string ls_val[] ls_val[1] = "v1" ls_val[2] = "v2" ls_val[3] = "v3" ls_val[4] = "v4" ls_val[5] = "v5" dw_1.dataobject = 'ma_dw' if dw_1.settransobject(SQLCA) > 0 then // =1 if dw_1.retrieve( ls_val[] ) > 0 then // =-1 ... else ... end if else ... end if
Hors ligne
xlat a écrit:
As-tu vérifié que dw_1.dataobject correspond bien à la datawindow que tu tests en design et qu'il n'y a pas de doublon de la datawindow dans tes libs ?
Ouaip... c'est un tout petit service qui automatise un transfert de data d'une BDD Oracle vers un serveur web via un fichier CSV...
Hors ligne
jordel a écrit:
xlat a écrit:
As-tu vérifié que dw_1.dataobject correspond bien à la datawindow que tu tests en design et qu'il n'y a pas de doublon de la datawindow dans tes libs ?
Ouaip... c'est un tout petit service qui automatise un transfert de data d'une BDD Oracle vers un serveur web via un fichier CSV...
J'ai l'impression que la réponse ne colle pas avec la question...
xlat voulait savoir :
- si le nom de datawindow qui est configuré dans dw_1.dataobject (soit dans les propriétés du contrôle DW dans la fenêtre, soit via le code - le plus sûr est de regarder à l'exécution avec un point d'arrêt sur le retrieve(), on n'est jamais suffisemment parano ) est bien le même nom que celui de la DW quand tu la testes en direct dans le DW painter
- si le nom du dataobject est ok, est-ce que tu n'aurais pas cette DW en double dans une autre PBL ? PB accepte d'avoir une DW en multiples exemplaires mais après on peut avoir un comportement... bizarre
Hors ligne
Juste au cas où ta datawindow serait dynamiquement crée, il faut penser a la créer via un OpenUserObject sinon la plupart des méthodes te retournons -1.
Hors ligne
Ouais bah... rien à voir !!! ^^
Le problème provenait d'une connexion à la BDD utilisant un autre user que celui de développement. Et en plus de ça, les accès aux tables étaient du genre user.table.champ !
Forcément ça fonctionne moins bien !!!! Grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr la reprise de code existant !
Merci quand même ^^
Dernière modification par jordel (29-09-2014 14:12:19)
Hors ligne
C'est [résolu] alors ?
Bon, je m'y colle
Hors ligne