Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Ayuda con ADOStoredProc + Interbase, por favor (https://www.clubdelphi.com/foros/showthread.php?t=59243)

Raptor 18-08-2008 21:47:48

Ayuda con ADOStoredProc + Interbase, por favor
 
Hola chicos, como estan espero que bien, tenia un rato que no entraba a este foro.

Si le he posible por favor necesito una manito con este caso, es mi primera ve que uso ADO con interbase, y estoy tratando de ejecutar un Store Procedure en mi base de datos de interbase desde delphi con ADO y me arroja un error (Dynamic SQL Error
-SQL error = -104
-Token unknown - line 1, char 0
- EXEC)

mi SP funciona muy bien corriendolo desde la misma base de datos, pero cuando lo pongo en delphi tengo el mencionado error.

mi sp :
CREATE PROCEDURE SP_GET_SECUENCIA (ID INTEGER)
returns (VSECUENCIA INTEGER)
AS

begin
vSecuencia=0;
FOR SELECT ult_secuencia
From control_secuencia
Where ID =:ID
into :vSecuencia
DO

BEGIN
vsecuencia=:vsecuencia + 1;
UPDATE control_secuencia
Set ult_secuencia=:vsecuencia
Where ID =:ID;
END
SUSPEND;
end


Codigo en delphi.

Try
With ADOStoredProc1 Do
Begin
Parameters.Clear;
ProcedureName:='SP_GET_SECUENCIA';
Parameters.Add;
parameters[0].name:='id';
parameters[0].value:=1;
ExecProc;
//active:=true;
End;

Except
On Error: Exception Do
raise;
End;


Tengo este mismo sp usandolo con BDE y funciona bien pero con ADO no.


gracias por su ayuda.

Nota : Estuve buscando este error en el foro y no lo encontre disculpe si ya estaba y no lo vi..

Raptor 26-08-2008 01:54:59

Hola chicos, me respondo yo mismo por si alguien se encuentra con este problema.

La forma de solucionar el problema creo en verda que es una chapusa, pero bueno funciona y si alguien tiene una mejor por favor ponerla aqui para corregir la mia.

aqui la dejo.

Poner un componente AdoQuery en la propiedad sql poner lo siguiente.

With adoGetSecuencia do
begin
Close;
SQL.Clear;
parameters.Clear;
Parameters.CreateParameter('Param1 ,ftInteger,pdOutput,0,null);
sql.add('execute procedure SP_GET_SECUENCIA ( '+IntToStr(Value)+')');
ExecSQL;
Result :=Parameters[0].Value;
end;

y listo esto resuelve el problema.

gracias a todos los que tuvieron la intesion de ayudar.


La franja horaria es GMT +2. Ahora son las 13:55:52.

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