PDA

Ver la Versión Completa : Emplear Store Procedure


La__X
16-01-2006, 17:46:03
Holas,
Como hago para llamar un strore procedure en mi aplicacion, ya esta conectada con la base de datos y todo, quiero saber como puede utilizar mis store procedure, es decir como y donde declaro el nombre que componente llama al store proc.
Gracias

cuburu
16-01-2006, 19:04:27
Que tal.

Mira, ultimamente yo he estado en las mismas. Lo que estoy utilizando es los siguiente:

Dalphi 5 Enterprise.
Base de Datos Firebird 1.5 embedded.

Lo que pude hacer para solamente mandar llamar a un procedimiento sin enviarle paramentros fue trabajar con los objetos:

IBDataBase.
IBTransaction.
IBStoreProc.

Lo que hice fue:

1.- Conectar a IbDatabase en su propiedad database name con la BD que necesitaba, en la propiedad Params colocar el user y password de la BD. Si deseas se conecte sin que aparezca la pantalla de petición de user y pass deshabilita ésta opción en la propiedad del objeto.

2.- Conectar el IBTransaction con el IBDatabase.

3.- Conectar el IBStoreProc con IBDataBase e IBTransaction y seleccionar el procedimiento en la propiedad correspondiente. Ojo, no trates de activar el IBStoreProc en tiempo de diseño, haslo hasta que ejecutes el programa con IBStoreProc.ExecProc.

Para enviar parametros al store procedure:

1.- Si lo que quieres es enviarle parametros al store procedure lo que debes de hacer es utilizar un IBQuery y realizar las ligar con los otros objetos igual que el IBStoreProc.

2.- Después realizar la consulta con un:


SELECT * FROM nombre del procedimiento(param1, param2, ..., paramx)


Asi es como yo he estado trabajando con los procedimientos. Si descubres como enviar parametros con el objeto IBStoreProc te agradecería me pasaras el tip.

De hecho por ahi tengo un hilo que describe los problemas que he tenido con esto. Lo coloque hace un par de semasnas + ó -.

Suerte.

fabianbbg
16-01-2006, 19:30:42
Hola "La X"



Como hago para llamar un strore procedure en mi aplicacion, ya esta conectada con la base de datos y todo, quiero saber como puede utilizar mis store procedure, es decir como y donde declaro el nombre que componente llama al store proc.
Gracias

Podrias por favor dar mas datos como: Que lenguaje de desarrollo usas y a que motor de Base de Datos accedes?..
gracias...

La__X
18-01-2006, 02:21:58
Estoy empleando Borland Delphi 6 y la BD esta en SQL 2000

Ricardojosep
18-01-2006, 03:45:26
Si usas Delphi 6 y SQL Server 2000, entonces estoy casi seguro que usas ADO para conectarte. Entonces... deberias usar el TADOStoredProc para conectarte con tu SP.
Para asignarles los parametros de Entrada usas:


ADOStoredProc1.Parameters.Items[1].Value := Parametro1;
ADOStoredProc1.Parameters.Items[2].Value := Parametro2;
ADOStoredProc1.Parameters.Items[3].Value := Parametro3;
ADOStoredProc1.ExecProc;


Y para obtener el resultado en caso de que exista :D debes usar algo como esto:


Salida := ADOStoredProc1.Parameters.Items[0].Value


Otra forma para las entradas es:


ADOStoredProc1.Parameters.ParamByName('Parametro1').Value := Par1;
ADOStoredProc1.Parameters.ParamByName('Parametro2').Value := Par2;
ADOStoredProc1.Parameters.ParamByName('Parametro3').Value := Par3;


y la otra forma para obtener la salida es:


Salida := ADOStoredProc1.Parameters.ParamByName('ParametroSalida').Value;


Previamente le asignas el nombre del SP al componente TADOStoredProc, esto lo puedes hacer en tiempo de diseño, la propiedad donde va el nombre es ProcedureName. Antes de eso le tienes que asignar la Base de Datos :D en la propiedad Connection.

En caso de que no uses ADO para conectarte dilo asi te comento como se hace. Pero en todos es muy parecido :D

Saludos!!!

La__X
19-01-2006, 02:03:13
Finalmente emplee lo de ADO y hasta ahora toda va bien :D
GRacias por las respuestasssss

Si usas Delphi 6 y SQL Server 2000, entonces estoy casi seguro que usas ADO para conectarte. Entonces... deberias usar el TADOStoredProc para conectarte con tu SP.
Para asignarles los parametros de Entrada usas:


ADOStoredProc1.Parameters.Items[1].Value := Parametro1;
ADOStoredProc1.Parameters.Items[2].Value := Parametro2;
ADOStoredProc1.Parameters.Items[3].Value := Parametro3;
ADOStoredProc1.ExecProc;


Y para obtener el resultado en caso de que exista :D debes usar algo como esto:


Salida := ADOStoredProc1.Parameters.Items[0].Value


Otra forma para las entradas es:


ADOStoredProc1.Parameters.ParamByName('Parametro1').Value := Par1;
ADOStoredProc1.Parameters.ParamByName('Parametro2').Value := Par2;
ADOStoredProc1.Parameters.ParamByName('Parametro3').Value := Par3;


y la otra forma para obtener la salida es:


Salida := ADOStoredProc1.Parameters.ParamByName('ParametroSalida').Value;


Previamente le asignas el nombre del SP al componente TADOStoredProc, esto lo puedes hacer en tiempo de diseño, la propiedad donde va el nombre es ProcedureName. Antes de eso le tienes que asignar la Base de Datos :D en la propiedad Connection.

En caso de que no uses ADO para conectarte dilo asi te comento como se hace. Pero en todos es muy parecido :D

Saludos!!!