Powerbuilder pour les completement Geeks !

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 03-08-2007 08:46:43

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

[RESOLU] Execution Stored Procedure ...

Bonjour à tous,

Je me trouve devant un petit problème dont je ne vois pas qu'elle est la cause. Je met donc à profit vos neurones pour m'aider à avancer sur mon projet

J'ai donc une procédure stockée qui prend en entée un bon nombre de paramètres (4 en entrée --> les clauses where, 11 en sortie --> les champs du select).
Je compile ma procédure stockée pour l'integrer dans ma base de données.
Je code ensuite le script Pb pour appeler ma procédure :

Code: pb

declare proc_stockee for RECH_PARU
  @as_ch1 = :l_s_ch1
  ,@as_ch2 = :l_s_ch2
  ,@ai_ch3 = :l_l_ch3
  ,@as_ch4 = :l_s_ch4
  ,@ai_ch5 = :l_i_ch5
  ,@as_ch6 = :l_s_ch6
  ,@as_ch7 = :l_s_ch7
  ,@as_ch8 = :l_s_ch8
  ,@as_ch9 = :l_s_ch9
  ,@ai_ch10 = :l_l_ch10
  ,@as_ch11 = :l_s_ch11
  ,@ai_ch12 = :l_l_ch12
  ,@as_ch13 = :l_s_ch13
  ,@as_ch14 = :l_s_ch14
  ,@ad_ch15 = :l_dt_ch15
  Using SQLCA;
  
  execute proc_stockee;

MessageBox("Debug", SQLCA.SQLCode)

If SQLCA.SQLCode = 100 Then
   // On a pas pu trouver de parution précédente
   MessageBox("Debug","Pas de parution precedente")
End If


En testant la procédure sous mon application Pb j'ai le code retour 100 (pas d'enregistrement retourné).
Je teste donc la requete sous SQL Advantage en renseignant les même paramètres d'entrées que pour mon cas de test sur l'appli Pb (j'ai fait un affichage des variables juste avant d'appeler la proc). Et à ma grande surprise je m'apperçois que ma procédure stockée fonctionne très bien et qu'elle me renvoie le résultat que j'attendais.

Je ne voit donc pas trop pourquoi sous Pb la requete ne me renvoie aucune ligne.
Y'a t'il un moyen d'afficher la requete crée lors de l'appel de la procédure stockée pour pouvoir debugger plus facilement?
Voyez vous d'autres incohérences que je n'aurais pas vu?

Merci d'avance pour vos reponses.





On commence les recompenses avec un petit sac de 10 pépites pour la première bonne réponse

Dernière modification par Nephtis (06-08-2007 08:08:09)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#2 03-08-2007 09:14:55

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Je ne comprends pas bien ton code
Voila comment je fais

Code: pb

Declare PROC_XXX Procedure For 
P_XXX( :is_entre1, :is_entre2, :is_entre3, :is_entre4) 
USING SQLCA;
EXECUTE PROC_XXX ;
ll_sqlcode = sqlca.sqlcode
ls_SQLErrText = SQLCA.SQLErrText
IF ll_sqlcode <> -1 THEN
   FETCH PROC_XXX iNTO :ls_sortie1,:ls_sortie2,:ls_sortie3,:ls_sortie4,:ls_sortie5,:ls_sortie6;
END IF
CLOSE PROC_XXX;

Tu peux recuperer  la requete passée à la base de données en metant 'trace ' devant la chaine du DBMS
exemple sqlca.dbms = "trace O84 ORACLE v8.4"

Dernière modification par JCZ (03-08-2007 09:17:33)


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#3 03-08-2007 09:26:41

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Voila le code de ma procédure stockée :

Code: SQL

Create Proc RECH_PARU( 
 
   @as_i_ch1  varchar(4), 
   @as_i_ch2  varchar(2), 
   @ai_i_ch3 integer, 
   @as_i_ch4  varchar(6), 
   @ai_o_ch5  integer output, 
   @as_o_ch6  varchar(4) output, 
   @as_o_ch7  varchar(30) output, 
   @as_o_ch8  varchar(6) output, 
   @as_o_ch9  varchar(1) output, 
   @ai_o_ch10  integer output, 
   @as_o_ch11  varchar(30) output, 
   @ai_o_ch12  integer output, 
   @as_o_ch13  varchar(1) output, 
   @as_o_ch14  varchar(1) output, 
   @ad_o_ch15  date output 
                   ) 
As
  Begin
    SELECT [...]
  End



Par contre comment savoir sur quelle type de base de donnée on travaille (je sais que c'est celle de SYBASE mais j'aimerais bien savoir comment on le retrouve dans les menus de configuration de PB)
Comme ça je pourrais tester le sqlca.trace.

PS : Je suis sous PB 6.5


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#4 03-08-2007 09:29:05

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Ok j'ai compris ma syntax est pour oracle ...

tu as un icone 'DB profile'
puis 'edit...'  puis 'preview'

Dernière modification par JCZ (03-08-2007 09:32:40)


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#5 03-08-2007 09:40:24

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Code: pb

declare proc_rech_rev_pre procedure for 
  OBI_S_REV_PRECEDENT(:l_s_code_titre, :l_s_extension_titre, :l_l_soc_mess_titre, :l_s_id_parution)
  USING SQLCA;
  EXECUTE proc_rech_rev_pre;


J'ai modifié légèrement l'appel de la procédure stockée pour imiter ta façon de faire mais j'ai le code sql retour -1 avec le message d'erreur

Incorrect synthax near '('

Je teste le sqlca.dbms = "trace SYC Sybase System 10/11" tout de suite

Quand on a modifié sqlca.dbms, comment recupère t'on la trace?

Dernière modification par Nephtis (03-08-2007 09:43:09)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#6 03-08-2007 09:45:34

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

le message est normal
Ma syntax est pour oracle
tu auras un message indiquant l'endroit du fichier de log


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#7 03-08-2007 09:50:22

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

JCZ a écrit:

tu auras un message indiquant l'endroit du fichier de log

Un messagebox? Parce que je n'ai pas vu de nouveaux messages apparaitre

Pour rajouter le trace j'ai codé comme ceci :

Code: pb

SQLCA.dbms = "trace SYC Sybase System 10/11"


Est ce que c'est bon?


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#8 03-08-2007 10:00:41

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

le fichier doit s'appeler pbtrace.log et doit se trouver dans c:\winnt\...
Je n'utilise plus la version 6.5 il n'y avait peut etre pas de message à l'epoque
Je crois que tu as aussi une option dans l'ongle "options"  avec le fichier log a specifié ...


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#9 03-08-2007 10:07:21

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

JCZ a écrit:

le fichier doit s'appeler pbtrace.log et doit se trouver dans c:\winnt\...
Je crois que tu as aussi une option dans l'ongle "options"  avec le fichier log a specifié ...

Je suis sous XP donc j'ai recherché le fichier pbtrace.log dans C:\Windows et je ne l'ai pas trouvé

Par contre est ce que tu peut préciser un peu plus où se trouve l'onglet "options" (dans le 'preview' du DBProfile?)

Dernière modification par Nephtis (03-08-2007 10:07:37)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#10 03-08-2007 10:09:55

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

c'est un onglet "options"  dans 'DBProfile'


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#11 03-08-2007 10:39:13

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Bon y'a pas d'onglet "options" ou de champ contenant un repertoire dans les différents onglets

Mais bon voila quand même 10 pépites pour tes reponses




On passe à 20 pépites pour trouver une solution à mon problème


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#12 03-08-2007 10:46:28

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Cela depend peut etre de la base de données et du driver utilisé
tu as peut etre une case à cocher 'generate trace' ?
Je ne peux pas regarder avec SYC Sybase ...


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#13 03-08-2007 11:03:12

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Il y avais effectivement une case à cocher "Générer suivi" qui m'a bien précisé que la log se trouvera dans C:\Windows\pbtrace.log

Seulement ce fichier ne me donne vraiment pas beaucoup d'informations

/*---------------------------------------------------*/
/*                 03/08/2007  12:55                 */
/*---------------------------------------------------*/
DIALOG CONNECT TO TRACE SYC Sybase System 10/11:
LOGID=*******
SERVER=********
DATA=***
SRV 10  #5701  Changed database context to '*****'. (0 MilliSeconds)
SRV 10  #5701  Changed database context to '*****'. (0 MilliSeconds) (94 MilliSeconds)

Ce qui correspond juste au fait que je me connecte avec ce nouveau profil

Dernière modification par Nephtis (03-08-2007 11:06:33)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#14 03-08-2007 12:17:26

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Execution Stored Procedure ...

Nephtis,

Petite question, es-tu sur le même serveur entre ton PB et ton SQL Advantage et est-ce que tu utilises le même compte ( => prob de grant) ?


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#15 03-08-2007 16:10:20

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Chrnico a écrit:

Probleme de grant?

je fait un grant all pour la compilation de ma procédure, normalement ça devrait aller

Pour ce qui est de la base de données je suis sur d'être sur le même serveur. Par contre faut que je revoie si le type du compte avec lequel je me connecte.

J'utilise une table qui n'est accessible que pour un certain type de compte (je l'ai remarque sous SQL Advantage parce que quand j'essayais d'executer ma procédure il me jettait violament en me disant quelque chose de la sorte "Votre connexion a été interompue ...")

Bon week end à tous

Dernière modification par Nephtis (03-08-2007 16:11:44)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#16 06-08-2007 08:07:53

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Execution Stored Procedure ...

Bon j'ai testé la procédure en l'applicant à une datawindow et j'ai eu un joli message d'erreur comme quoi il n'arrivait pas a caster un varchar en date.

Et puisque je me suis décidé de passer par les datawindow (plutot datastore parce que je veut juste recupérer quelques données), j'ai modifié ma procédure stockée pour ne plus avoir de champ en sortie (output)

Problème résolu



Pour les vingt pépites je les divise entre Chrnico et JCZ

Dernière modification par Nephtis (06-08-2007 08:09:15)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22