Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2006
killaskto killaskto is offline
Registrado
 
Registrado: nov 2006
Posts: 2
Poder: 0
killaskto Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 29-11-2006
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 21
ramiretor Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 02-12-2006
killaskto killaskto is offline
Registrado
 
Registrado: nov 2006
Posts: 2
Poder: 0
killaskto Va por buen camino
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...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 02:03:10.


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
Copyright 1996-2007 Club Delphi