![]() |
Procedimiento almacenado usando ADO
Como llamar a un procedimiento almacenado PL/SQL, que tenga parametros IN/OUT usando ADO
|
Hay un componente de la paleta ADO para eso. TADOStoredProc.
Revisa la ayuda y ejemplos. |
lo que realmente necesito es un ejemplo de como puedo llamar desde dephi a este procedimento que tengo en oracle:
Codigo PL/SQL: CREATE OR REPLACE PACKAGE IDIOMAS IS FUNCTION Add_Reg(pc_Descripcion IN VARCHAR, pc_Estado IN VARCHAR) RETURN NUMBER; END pqtT_Idio; / CREATE OR REPLACE PACKAGE BODY IDIOMAS IS FUNCTION Add_Reg(pc_Descripcion IN VARCHAR, pc_Estado IN VARCHAR) RETURN NUMBER IS BEGIN --Insertar el registro INSERT INTO idiomas VALUES( pc_Descripcion, pc_Estado); RETURN 1; EXCEPTION WHEN OTHERS THEN --Delvover 0, ya que hubo un error RETURN 0; END Add_Reg; END pqtT_Idio; / Me estoy conectando por ADO... |
peudes usar un query para hacer esto:
para llamar una función desde Oracle. puedes hacer esto:
Y la tabla que te va a devolver, se compondra de una columna llamada resultado, con una fila que contendra el valor de tu funcón, ya lo demas es abrir la consulta y listo. para pasar parametros, busca en los foros, como pasar parametros a un Tquery, o a TStoreProcedure. Para coencatrte a un Tquery, en cualquier docuemntacion basica, aparece como... busca en marteens.com la cara oculta de delphi 4, se ven todas las cosas de como conectar a base de datos y pasar parametros. con la ayuda de arriba, peudes ejecutar una función. saludos |
Esta es la solucion
Codigo Delphi:
ADOStoredProc1.Connection:= ADOConnection;; ADOStoredProc1.ProcedureName:='Nombre-del-proceso-almacenado'; ADOStoredProc1.Parameters.ParamByName('parametro1').Value:= Edit1.text; ADOStoredProc1.Parameters.ParamByName('parametro2').Value:= Edit2.text; ADOStoredProc1.ExecProc; //los parametros 1 y 2 se deben definir por el object inspector en la propiedad parametros del ADOStoredProc. Me gustaria saber como puedo crear esto parametros por codigo sin tener que adicionarlos por el object inspector ?? |
En la configuración habitual (por defecto), los parámetros se crean automáticamente cuando asignas el nombre del procedimiento almacenado por código, siempre que la base de datos esté abierta.
Ignoro si sea posible cambiar este comportamiento. Hasta luego. ;) |
Procedures
LISTO ASI SE HACE
StoredProc1.StoredProcName:= 'hola'; StoredProc1.Prepare; StoredProc1.ParamByName('CODSUB').AsString := '20 '; StoredProc1.ExecProc; PERO RESULTA QUE SI HOLA ES UN PAQUETE DE SUB.HOLA ME SALE ERROR COMO LO PUEDO EJECUTAR ? GRACIAS DE ANTEMANO |
La franja horaria es GMT +2. Ahora son las 04:13:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi