Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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 22-09-2014 08:16:18

stefy  
Membre
Lieu: Mâcon
Date d'inscription: 30-08-2007
Messages: 14
Pépites: 77
Banque: 0

Erreur d'exécution de fonction postgresql avec powerbuilder 10.5

Bonjour,
J'ai un problème je n'arrive pas à appler une fonction postgresql depuis powerbuilder

Ma fonction fonction s'execute bien depuis pgadmin mais pas depuis powerbuilder.

Déclaration de la fonction

Code: pb

FUNCTION Long nextval_seq(string ls_dptddass)        RPCFUNC ALIAS FOR 'nextval_seq'



Appel de la fonction

Code: pb

li_iuge = SQLCA.nextval_seq('uge',gs_dptddass);
IF SqlCa.SqlCode < 0 THEN
  SqlCa.of_sqlerror(This)
  Return '0'
END IF


L'appel de la fonction plante :

Code:

SQLDBCODE = 34
SQLERRTEXT = « SQLSTATE = 08S01
No response from the backend »

Par contre ça fonction très bien si la fonction n'a pas de paramètre en entrée.

Hors ligne

 

#2 22-09-2014 10:25:17

Geo  
Membre completement Geek
Lieu: Binche
Date d'inscription: 15-12-2008
Messages: 119
Pépites: 378
Banque: 0

Re: Erreur d'exécution de fonction postgresql avec powerbuilder 10.5

Bonjour,

je n'ai jamais travaillé avec postgresql mais dans ta déclaration, il n'y a qu'un seul paramètre (string ls_dptddass). Par contre, à l'appel, tu en passes 2 ('uge',gs_dptddass). Ce n'est peut être pas la cause du problème mais c'est quand même pas normal ?


Rien ne sert de courir, il faut partir à point .

Hors ligne

 

#3 22-09-2014 12:48:31

stefy  
Membre
Lieu: Mâcon
Date d'inscription: 30-08-2007
Messages: 14
Pépites: 77
Banque: 0

Re: Erreur d'exécution de fonction postgresql avec powerbuilder 10.5

Merci pour ta réponse mais j'ai juste fait une erreur de copie dans mon post. Le problème ne vient malheureusement pas de là.


Déclaration

Code: pb

 FUNCTION Long nextval_seq(string p_nomseq  ,  string i_dptddass )        RPCFUNC ALIAS FOR 'nextval_seq'


Appel

Code: pb

 li_ret = SQLCA.nextval_seq('uge',gs_dptddass);



Par contre une fonction qui n'a pas de paramètre en entrée fonctionne très bien.

Hors ligne

 

#4 23-09-2014 14:59:03

Geo  
Membre completement Geek
Lieu: Binche
Date d'inscription: 15-12-2008
Messages: 119
Pépites: 378
Banque: 0

Re: Erreur d'exécution de fonction postgresql avec powerbuilder 10.5

Ah ok.

Tu utilises un driver ODBC pour attaquer ta DB ? Est-il possible de voir le code de nextval_seq ? Il y a un curseur dedans ?
Es-tu certaine que SQLDBCODE = 34, et pas 34000 ?


Rien ne sert de courir, il faut partir à point .

Hors ligne

 

#5 23-09-2014 15:05:47

stefy  
Membre
Lieu: Mâcon
Date d'inscription: 30-08-2007
Messages: 14
Pépites: 77
Banque: 0

Re: Erreur d'exécution de fonction postgresql avec powerbuilder 10.5

le code de nextval_seq : fonction postgresql

Code: mssql

-- Function: nextval_seq(character varying, character varying)

-- DROP FUNCTION nextval_seq(character varying, character varying);

CREATE OR REPLACE FUNCTION nextval_seq(p_nomseq character varying, i_dptddass character varying)
  RETURNS integer AS
$BODY$
                                
----------------------------------------------------------------------------------------------------------------
------Procédure qui permet de récupérer la valeur de la séquence passée en paramètre pour un département donné
----------------------------------------------------------------------------------------------------------------
DECLARE 
 sequenceName           regclass;
 li_nextval INTEGER;
BEGIN





sequenceName := p_nomseq||'_'||i_dptddass||'_seq';



select nextval(sequenceName) into li_nextval;



return li_nextval;

END;                                                                                                                                                                                                                                      

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION nextval_seq(character varying, character varying)
  OWNER TO si_dev;



En fait ça fonctionne bien avec ce code pb

Code: pb

DECLARE nextval_seq PROCEDURE FOR  nextval_seq(:nomtable, :ls_dptddass);
EXECUTE nextval_seq;
FETCH nextval_seq INTO :li_ret;
CLOSE nextval_seq;


Mais ça marche pas en passant avec une transaction SQLCA

Code: pb

li_ret = SQLCA.nextval_seq('uge',gs_dptddass);


J'ai corrigé les autres messages, mais merci de faire attention à l'utilisation des balises de code

Hors ligne

 

#6 25-09-2014 09:22:27

Geo  
Membre completement Geek
Lieu: Binche
Date d'inscription: 15-12-2008
Messages: 119
Pépites: 378
Banque: 0

Re: Erreur d'exécution de fonction postgresql avec powerbuilder 10.5

Essaies de préfixer le paramètre SQLCA.dbms avec 'TRACE ' (ex : SQLCA.dbms = "TRACE ODBC..."). Ca va te générer un fichier de trace des activités sur ta DB, tu trouveras peut-être plus d'infos...
Bonne chance


Rien ne sert de courir, il faut partir à point .

Hors ligne

 

#7 13-10-2014 12:36:14

stefy  
Membre
Lieu: Mâcon
Date d'inscription: 30-08-2007
Messages: 14
Pépites: 77
Banque: 0

Re: Erreur d'exécution de fonction postgresql avec powerbuilder 10.5

voilà ce que donne le fichier de trace avec l' appel d'une autre fonction SQL. j'ai le même problème avec tous les appels de fonctions ou procédures stockées.

(55a1818): EXECUTE REMOTE PROCEDURE: d_org
TYPE VCHAR
TYPE VCHAR (DBI_RPC_EXECUTE) (1.333 MS / 111.707 MS)
(55a1818): *** ERROR 34 ***(rc -1) : SQLSTATE = 08S01
No response from the backend

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22