PDA

Ver la Versión Completa : STORE PROCEDURE "RETURNS".


barman
01-07-2004, 13:10:08
La verdad me ha costado bastante, hasta que lo he sacado.
Bueno es bastante basico, un procedimiento que devuelve valores.

si lo hacemos asi

$stmt = " execute PROCEDURE PR1";
$qu = ibase_query($idbase,$stmt);
Realiza lo que hay dentro del procedimiento, pero no devuelve valores,
ademas ibase_errmsg(); devuelve message length error (encountered 0, expected 8 "depende del valor que debe devolver")

la forma que creo que es la correcta es la siguiente:

$qu= ibase_query($idbase,'select * from PR2');
$row= ibase_fetch_row($qu);
echo $row["0"], $row["1"];


El procedimiento de pruebas.

SET TERM @
CREATE PROCEDURE PR1
RETURNS (DES CHAR(20) ,COD INTEGER)
AS
BEGIN
DES = "HOLA";
COD = 2;
insert into uno (codigo,descripcion)
values (:COD,:DES);
SUSPEND; ->es obligatorio

END @

Tabla

create table uno
(
codigo integer,
descripcion char(25)
);


SI se le quiere pasar algun valor

$stmt = " select * from PR2 ('MAMA') ";
$qu = ibase_query($idbase,$stmt);

El procedimiento

SET TERM @
CREATE PROCEDURE PR2 (descrip char (25))
RETURNS (DES CHAR(20) ,COD INTEGER)
AS
BEGIN
DES = "HOLA";
COD = 2;
insert into uno (codigo,descripcion)
values (:COD,:descrip);
SUSPEND;

END @







Pues nada eso es todo, agradeceria cualquier comentario sobre el codigo.