Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Procedimiento almacenado usando ADO (https://www.clubdelphi.com/foros/showthread.php?t=43972)

hperez 25-05-2007 02:01:28

Procedimiento almacenado usando ADO
 
Como llamar a un procedimiento almacenado PL/SQL, que tenga parametros IN/OUT usando ADO

Neftali [Germán.Estévez] 25-05-2007 10:59:57

Hay un componente de la paleta ADO para eso. TADOStoredProc.
Revisa la ayuda y ejemplos.

hperez 25-05-2007 19:04:51

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...

Paoti 25-05-2007 19:20:19

peudes usar un query para hacer esto:



para llamar una función desde Oracle. puedes hacer esto:


Código SQL [-]

SELECT MYFUNCION(PARAMETROS) resultado FROM DUAL;

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

hperez 26-05-2007 01:44:07

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 ??

jachguate 26-05-2007 02:29:36

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.

;)

jatmes 14-09-2007 18:20:33

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