Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

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.

#26 07-02-2007 09:48:35

aubierf  
Membre Geek
Lieu: Genève
Date d'inscription: 14-12-2006
Messages: 32
Pépites: 114
Banque: 0

Re: [RESOLU] Procédure stockée avec Oracle erreur SQLState = 42000

oui ! c'est de la folie ! bon, j'ai oublié un petit détail, la base liée à PB est informix mais ca ne devrait rien changer

Hors ligne

 

#27 07-02-2007 10:41:27

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: [RESOLU] Procédure stockée avec Oracle erreur SQLState = 42000

Bonjour,

Voici un exemple de gestion des procédures stockées sous Informix en PB8.

Code: pb

DECLARE lsp_proc_toto PROCEDURE FOR sp_proc_toto(:as_param1, :as_param2) USING sqlca;
EXECUTE lsp_proc_toto;
IF sqlca.sqlcode <> 0 THEN
  // dans ce cas erreur en gros la procédure n'existe pas sous ce nom
  // ou avec ces paramètre
  is_erreur =  "Erreur SQL  executable : " +   string(sqlca.SqlDBCode) + " " + sqlca.SqlErrText
   RETURN 1
ELSE
  //ce sont les valeurs retournées par la procédure
  FETCH lsp_proc_toto INTO  :li_erreur, :ls_erreur  ;
  IF SQLCA.sqlcode <> 0 THEN  
    //dans ce cas erreur dans le déroulement de la procédure
    ls_msg_erreur = "Erreur fetch  : " + string(SQLCA.sqldbcode) + " " + trim(SQLCA.sqlerrtext)
    CLOSE lsp_proc_toto;
    RETURN 1
  ELSE
    IF li_erreur <> 0 THEN
      //dans ce cas erreur dans le déroulement de la procédure
      //si les erreurs sont gérées dans la procédure 
      ls_msg_erreur = "Erreur li_erreur: " + string(li_erreur) + " " + trim(ls_erreur)
      CLOSE lsp_proc_toto;
      RETURN 1
    END IF
  END IF      
END IF
CLOSE lsp_proc_toto;

Dans les préconisations importantes (au moins avec Informix) :

Donc les paramètres doivent être passés avec les 2 points :
Le type des paramètres entre string, date, integer... doit être indentique dans PB et dans la procédure
Les valeurs retournées par la procédure doivent aussi être mis avec les 2 points :
Ne pas oublier de faire le close quand cela est necessaire (en suivant dans l'exemple)

Il me semble que dans les posts précédents, il manque des petits morceaux.......

Hors ligne

 

#28 07-02-2007 13:36:37

aubierf  
Membre Geek
Lieu: Genève
Date d'inscription: 14-12-2006
Messages: 32
Pépites: 114
Banque: 0

Re: [RESOLU] Procédure stockée avec Oracle erreur SQLState = 42000

effectivement j'ai testé cette méthode... sans succès... pas d'erreur à la compile mais à l'exécution

mais bonne nouvelle j'ai trouvé la solution du moins pour Oracle, ce qui tombe bien car sous Informix je ne dois pas faire cet appel.

Code: pb

DECLARE monCursor CURSOR FOR
  SELECT invest_sn FROM tb_investigation;
  
OPEN monCursor;
MessageBox("DEBUGBOX", String(sqlca.sqlcode) + ":" + sqlca.sqlerrtext + "/" + this.inv_comment)
CLOSE monCursor;

Etonnant non ?  Merci à vous tous de m'avoir aider et dans un temps record
j'espere pouvoir vous rendre la pareil

Hors ligne

 

#29 01-03-2007 09:38:19

inferni  
Membre Geek
Lieu: Orléans
Date d'inscription: 28-02-2007
Messages: 52
Pépites: 49
Banque: 2,337,704,263,781

Re: [RESOLU] Procédure stockée avec Oracle erreur SQLState = 42000

Il me semble qu'il n'était plus possible d'utiliser le caractère @ depuis PB8 (caractère réservé) ... mais suis pas certain à 100%

Hors ligne

 

#30 09-03-2007 14:17:11

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Procédure stockée avec Oracle erreur SQLState = 42000

--------------------------------------------------------------------
Bonjour, peut-on considérer que le problème est Résolu ?
--------------------------------------------------------------------


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#31 12-03-2007 09:43:29

aubierf  
Membre Geek
Lieu: Genève
Date d'inscription: 14-12-2006
Messages: 32
Pépites: 114
Banque: 0

Re: [RESOLU] Procédure stockée avec Oracle erreur SQLState = 42000

je pense que oui ! et merci encore

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22