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.

#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