FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Procedimientos Almacenados Oracle 10g
Hola!
Tengo una gran duda sobre como invocar un procedimiento almacenado desde delphi.... Estoy trabajando sobre delphi 7 y usando Oracle 10g XE, la conexion la hago mediante un AdoConnection y trato de usar un AdoStoredProc que vincule con el AdoConnetion, ya aparecen los procedimientos de la base, no aparecian parametros y cuando le di en Parameter automaticamente los creo. Estos dos parametros uno In y otro Out, el primero de tipo ftString (numericscale=0,precision=0,size=0)y el segundo ftBDC (numericscale=0,precision=15,size=0). El procedimiento en oracle es: CREATE OR REPLACE PROCEDURE PRO_NUEVO_NUMERO(NOMBRE_TABLA IN VARCHAR2,NUEVO_NUMERO OUT NUMBER) AS EXISTE NUMBER; BEGIN NUEVO_NUMERO:=1; raise_application_error(-2000,'Entro hasta aqui'); LOOP EXISTE:=0; CASE NOMBRE_TABLA WHEN 'CLIENTES' THEN EXIT WHEN NUEVO_NUMERO=999; SELECT COUNT(*) INTO EXISTE FROM CLIENTES WHERE ID_CLIE=NUEVO_NUMERO; END CASE; IF(EXISTE=0)THEN COMMIT; RETURN; ELSE NUEVO_NUMERO:=NUEVO_NUMERO+1; END IF; END LOOP; NUEVO_NUMERO:=0; COMMIT; RETURN; END PRO_NUEVO_NUMERO; En Delphi lo que hago es que cuando se cree el formulario aparezca en un label el numero que devuelve el segundo parametro de la siguiente manera: with stpProNuevoNumeroCliente do begin Parameters.ParamByName('NOMBRE_TABLA').Value:='CLIENTES'; Prepared:=True; ExecProc; NuevoNumeroCliente:=Parameters.ParamValues['NUEVO_NUMERO']; end; Label8.Caption:=IntToStr(NuevoNumeroCliente); Cuando lo ejecuto manda este error: Project El_Barril.exe raised exception class EOleException with message '4f rh'. Process stopped. Use Step or Run to continue. Paso a paso me doy cuenta que ese error lo genera inmediatamente despues de hacer ExecPorc....... Si alguien me pudiera corregir o ayudar de antemano le doy las gracias. |
#2
|
|||
|
|||
Hola:
Si no mal recuerdo tu código Delphi está bien. Bueno pero regresando al problema, lo que es probable que pase es que el procedimiento te está generando un error (no regresa lo que debería). Por lo que te pregunto ¿lo has corrido desde la base de datos con los mismos parámetros? Saludos
__________________
Ernesto R. |
#3
|
|||
|
|||
Hola ramiretor:
Antes que nada gracias por responderme. Mas vale tarde que nunca. Continuando con mi problema, el procedimiento lo ejecuto desde el gestor y si devuelve los valores correctos, de hecho tambien lo trate de hacer como funcion pero me manda exactamente el mismo error. Para salir rapido del error comence a usar los componentes de Core Labs para Oracle .Net... Con estos, hago exactamente lo mismo pero si me devuelven los valores desde delphi. Lastima que son version de prueba por 60 dias porque tengo que implementar mi sistema como trabajo de escuela solo para pasar la carrera . De todos modos voy a seguir tratando con los ADO,,, se supone que debe de jalar pero pues por el momento saldre de apuros con los demo. Ahora me estoy rompiendo la cabeza con los reportes en FreeReport. (Por hay si sabes algo te agradeceria tu ayuda en otro foro...) Gracias... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Procedimientos almacenados | rcantu | MySQL | 0 | 30-06-2006 00:59:32 |
procedimientos almacenados | Gabriel2 | SQL | 1 | 13-01-2005 14:50:09 |
Procedimientos Almacenados | tuto | Conexión con bases de datos | 0 | 08-11-2004 14:42:05 |
Procedimientos almacenados VS UDF | rqc | Firebird e Interbase | 6 | 18-03-2004 01:29:46 |
Procedimientos Almacenados | Gabriel A Reyes | MS SQL Server | 5 | 07-07-2003 14:08:46 |
|