PDA

Ver la Versión Completa : Rescatar Parametro Output


FOV2001
27-03-2009, 17:52:15
Gente, buenas tardes,

Tengo un problema que espero me ayuden a resolver:

Base MySql
Un Stored Procedure que usa un parametro de entrada Integer de 2 y uno de salida integer de 2 tambien

El codigo:
CREATE PROCEDURE `sp_prueba`(IN numero INTEGER(2),
OUT param1 INTEGER(2))
BEGIN
SELECT numero * numero INTO param1;
END

Ultra simple.

Llamo desde Delphi 7 el ADOCommand o Storedproc, y pueden pasar 2 cosas:

1.- Si NO defino el parametro de salida, me dice:
Incorrect Number of Parameters expected 2, got 1

2.- SI defino el parametro de salida, me dice:
OUT or INOUT parameter for rutine Base.sp_prueba is not a variable or NEW pseudo-variable in BEFORE TRIGGER

Como lo llamo:
var
pp: variant;
pp1 : Integer;
adoc: TAdocommand;

begin
adoc.CommandType := cmdStoredProc;

with adoc.Parameters do
begin
CreateParameter('numero',ftinteger,pdInput,2,5);
CreateParameter('param',ftinteger,pdOutput,2,null);
end;

adoc.Prepared := True;
adoc.Execute;

pp := adoc.Parameters.ParamValues['param'];
if pp <> null then
begin
pp1:= pp.asinteger;
showmessage(inttostr(pp1));
end;
end;

Este procedimiento es solo una prueba basica para poder leer resultados de procedimientos almacenados para despues aplicarlo en un Procedimiento en serio, pero si una pavada como esta no la puedo resolver, meno voy a poder algo más complejo.

Disculpen lo basico de la pregunta, pero la verdad, depeus de leer un monton, sigo sin poder encontrarle la vuelta.


Gracias de antemano,

Fernando