Ver Mensaje Individual
  #6  
Antiguo 22-08-2007
jr_ewing jr_ewing is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Reputación: 0
jr_ewing Va por buen camino
Usar REF CURSOR

Rodrigo, tendrías que hacer un procedimiento que utilice como parámetro de salida un REF CURSOR. Para eso te conviene generarte un package, o utilizar algun existente, en el que declares primero un TYPE genérico y público, más el procedimiento que va a tener algún parámetro de salida del nuevo tipo:

Código SQL [-]
Create or Replace package MY_PACK is
 
TYPE TCursor is REF CURSOR;
 
PROCEDURE SELECCIONCODIGOS(cCursor out TCursor);
 
END;

El BODY sería así:

Código SQL [-]
Create or Replace package body MY_PACK is
 
PROCEDURE SELECCIONCODIGOS(cCursor out TCursor) is
begin
  open cCursor for 
    select CODIGOS from CLIENTES;
end;
 
END;
/

Y después, en Delphi, te creas un TQuery (por ejemplo, QSelCod) con el sgte código en donde escribís el SQL:

Código Delphi [-]
begin
  MY_PACK.SELECCIONCODIGOS(:cCursor);
end;

Luego, desde la aplicación hacés el QSelCod.Open y listo.

Tené en cuenta que, dependiendo de la versión de Delphi que utilices, o si utilizás algun componente externo de conexión, tendrás que setear o no el parámetro. Si lo tenés que hacer, seleccioná tipo de dato Cursor y tipo de parámetro Output.

Suerte!
Responder Con Cita