Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Rescatar Parametro Output (https://www.clubdelphi.com/foros/showthread.php?t=64345)

FOV2001 27-03-2009 17:52:15

Rescatar Parametro Output
 
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


La franja horaria es GMT +2. Ahora son las 13:20:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi