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)
-   -   Problema con FibPkus y Stored Procedure (https://www.clubdelphi.com/foros/showthread.php?t=9953)

Nose 06-05-2004 18:04:12

Problema con FibPkus y Stored Procedure
 
Hola!

Soy nuevo con fibplus y firebird 1.5

Hay alguna manera de enlazar un procedimiento almacenado con un datasource, el unico componente que permite asociarlo es un TpFIBDataSet, que es un descendiente de TDataset. ¿O de alguna forma que ese componente ejecutar el procedimiento y que devuelva un conjunto de datos?

¿Cómo se podría hacer pasar los parámetros de entrada?

La razón es que devuelva un conjunto de resultado, según un críterio en la consulta. Además, me gustaría usar el componente TpFIBClientDataSet y asociarlo de alguna manera con un TDBGrid de sólo lectura. ¿Se puede hacer esto?

Gracias

guillotmarc 06-05-2004 18:36:27

Hola.

No conozco el TpFIBClientDataSet, pero tendrá una propiedad CommandText, o SQL o algo parecido. En ella pón :

Código:

select * from NombreProcedimiento(:Parametro1, :Parametro2)
NOTA: Como ves, el resultado de un procedimiento almacenado, se puede recoger como una consulta normal.

Saludos

Nose 06-05-2004 21:54:24

Hola, guillotmarc!

Gracias por contestar, pues sí, funcionó de la sgte. manera:

Código:

SELECT  *
FROM
    SP_BROWSEMOVF29( :SMES, :STIPO, :SANO, :FRUT )

Lo que no sé es cómo pasarle los parámetros, pues la única manera que he conseguido es algo así :
Código:

    pFIBDataSet1.Close;
    pFIBDataSet1.Params [0].AsString := '01';
    pFIBDataSet1.Params [1].AsString := 'O';
    pFIBDataSet1.Params [2].AsString := '2004';
    pFIBDataSet1.Params [3].AsFloat  := 3623223;
    pFIBDataSet1.Open;

Lo que quiero es algo así :

Código:

pFIBDataSet1.Params.ParamByName ( ':SMES'  ).AsString := '01';
Pero, no me reconoce los nombres de los parámetros, :-(

guillotmarc 06-05-2004 22:09:44

Hola.

Te sobran los dos puntos (solo se utilizan dentro de la sentencia).

Código:

pFIBDataSet1.Params.ParamByName ( 'SMES'  ).AsString := '01';
Saludos

Nose 07-05-2004 00:16:21

Hola!

Cita:

Te sobran los dos puntos (solo se utilizan dentro de la sentencia).
Tienes razón, esta sintaxis ya no la recordaba, lo que estrabajar sólo con SQLServer 2000.

Era sólo eso.

Saludos


La franja horaria es GMT +2. Ahora son las 16:56: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