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)
-   -   Procedimiento almacenado y query (https://www.clubdelphi.com/foros/showthread.php?t=29204)

XBart 16-01-2006 02:51:10

Procedimiento almacenado y query
 
Antes que nada gracias por la atencion prestada, ahora el asunto es el siguiente, anteriormente habia abierto un hilo con la misma pregunta, pero no le entendimuy bien a la respuesta, y decidi buscarlo en los manuales y tampoco le entendi, ahora la pregunta es la siguiente

Base de datos firebird 1.5.2
Delphi 6

Tengo dos procedimientos almacenados en la base de datos
1 para verificar la existencia de un registro, con un parametro que es lo que se va a buscar.

2 el otro es para insertar un registro, los parametros son los datos a insertar ( nombre, direccion, telefono, etc)

los he estado usando por medio de store procedure de los ibx, y quiero usarlos con un query, mi pregunta es si alguien me puede dar un ejemplo de como usar el query con el procedimiento almacenado y lo mas importante, como le paso los parametros al procedimiento almacenado.

De antemano gracias por su ayuda. :D

Ivanzinho 16-01-2006 09:29:33

para un procedimiento que devuelve parametros de salida, el la propiedad sql del tquery tienes que poner una consulta semejande a la siguiente:
Código SQL [-]
select ou_param1, ou_param2, ... 
from MiProdedimiento(:In_Param1,:In_Param2,:...)
posteriormente desde el codigo de la aplicación le pasas los parametros de entrada

Código Delphi [-]
qMiProcedimiento.Close;
qMiProcedimiento.ParamByName('In_Param1').astipo := Valor1;
qMiProcedimiento.ParamByName('In_Param2').astipo := Valor2;
qMiProcedimiento.ParamByName('...').astipo := ...;
...
qMiProcedimiento.Open;
Si no tienes parametros de salida :

Código SQL [-]
execute procedure MiProcedimiento(:In_Param1,:In_Param2,...)

Código Delphi [-]
qMiProcedimiento.Close;
qMiProcedimiento.ParamByName('In_Param1').astipo := Valor1;
qMiProcedimiento.ParamByName('In_Param2').astipo := Valor2;
qMiProcedimiento.ParamByName('...').astipo := ...;
...
qMiProcedimiento.ExecSql;

Espero que te sirva


La franja horaria es GMT +2. Ahora son las 15:37:35.

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