[Dbi-interbase-devel] Problem with STORED PROCEDURE
Status: Beta
Brought to you by:
edpratomo
From: willems L. <wil...@pa...> - 2001-08-16 17:04:54
|
Hello , I'm converting some scripts From IBPerl to DBD::Interbase version 0.28. I'm using some stored procedures that look like this : ALTER PROCEDURE "INSERT_VIP" ( AARTID INTEGER, AVIP VARCHAR(64), ASEND VARCHAR(1), AREPORTER VARCHAR(64), ACATEGORIE VARCHAR(64), AGEMEENTE VARCHAR(64), ATITEL VARCHAR(127), ATEKST VARCHAR(16384) ) RETURNS ( AID INTEGER ) AS DECLARE VARIABLE AVIPID INTEGER; DECLARE VARIABLE AREPORTID INTEGER; DECLARE VARIABLE AGEMID INTEGER; DECLARE VARIABLE ACATID INTEGER; BEGIN /* Get Artikel ID nr */ AID = GEN_ID(GEN_ARTIKELS_VIP,1); /* Convert reporter,categorie,gemeente naar ID nr) */ EXECUTE PROCEDURE NAAM2USERID :AREPORTER RETURNING_VALUES :AREPORTID; EXECUTE PROCEDURE NAAM2USERID :AVIP RETURNING_VALUES :AVIPID; EXECUTE PROCEDURE CATEGORIE2CATEGORIEID :ACATEGORIE RETURNING_VALUES :ACATID; EXECUTE PROCEDURE GEMEENTE2GEMEENTEID :AGEMEENTE RETURNING_VALUES :AGEMID; /* Insert Artikel */ INSERT INTO ARTIKELS_VIP ( ID,ARTID,VIPID,REPORTERID, CATEGORIEID, GEMEENTEID, TITEL , TEKST , INDATUM , BEWERKDATUM ,SEND) VALUES (:AID,:AARTID,:AVIPID, :AREPORTID,:ACATID,:AGEMID, :ATITEL,:ATEKST,'NOW', 'NOW' ,:ASEND); END When i invoke this with following code , it doesn't return the "AID" value like defined in the procedure ? $sth = $dbh->prepare("SELECT * FROM INSERT_ARTIKEL (?,?,?,?,?,?,?)") || error(0,"statement error : $sth->errstr"); #order of parameters # STATUSID # REPORTER # REDACTEUR # CATEGORIE # GEMEENTE # TITEL # TEKST $data[0] = $header->{status}; $data[1] = $header->{reporter}; $data[2] = $header->{redactor}; $data[3] = $header->{category}; $data[4] = $header->{city}; $data[5] = $header->{title}; $data[6] = $text; #execute SQL instruction $sth->execute(@data); $dataref = $sth->fetch; the result is undefined , so this means noting is returned ? What is going wrong ? luc |