Ver Mensaje Individual
  #1  
Antiguo 03-05-2006
Avatar de Juanito-Kun
Juanito-Kun Juanito-Kun is offline
Miembro
 
Registrado: abr 2005
Ubicación: Merida, Yucatan
Posts: 65
Reputación: 22
Juanito-Kun Va por buen camino
Question SP en otro SP con cursores

Que tal saludos, estoy trabajando con Delphi 7 y Firebird 1.5.

Tengo 2 Stored procedure, el primero me devulve los dias de x tabla, ese tiene que llamar a el procedure 2 que hace ciertas operaciones con los dias que devuelve el procedure 1.

primer procedure que da los dias:

Código SQL [-]
CREATE PROCEDURE HORARIO_DIA_PLAZA (
    CVEDEPPZA VARCHAR (15) CHARACTER SET ISO8859_1)

AS
DECLARE VARIABLE VSQL VARCHAR(100);
DECLARE VARIABLE RDIAHORPZA INTEGER;
DECLARE VARIABLE RCVECATPER VARCHAR (15);
BEGIN
  /* Procedure body */
 for select distinct H.DIAHORPZA, PZ.CVECATPER
   from TBLHORPZA H, DETDEPPZA PZ
   where  H.CVEDEPPZA  = :CVEDEPPZA and
          H.CVEDEPPZA  = PZ.CVEDEPPZA and
          PZ.STADEPPZA = 1
        
   into
   :RDIAHORPZA,:RCVECATPER
 do
 begin
 
  execute statement  'execute procedure horario_no_checada('||'''CESADM014'||''''||','||2||')';
/*Aqui es donde no estoy seguro si se esta usando bien el execute statement*/
/*Use constantes (CESADM014,2) pero deben de ir las variables :RCVECATPER, :RDIAHORPZA respectivamente*/
  
 end
  SUSPEND;
END


Este es el segundo stored procedure:

Código SQL [-]
CREATE PROCEDURE HORARIO_NO_CHECADA (
    CVECATPER VARCHAR (15) CHARACTER SET ISO8859_1,
    DIA INTEGER)
AS
DECLARE VARIABLE VNChecada integer;
DECLARE VARIABLE VDia   integer;
DECLARE VARIABLE RDIAHORPZA INTEGER;
DECLARE VARIABLE RHORHORPZA TIME;
DECLARE VARIABLE RTURHORPZA INTEGER;
DECLARE VARIABLE RNUMHORPZA INTEGER;
DECLARE VARIABLE RIDEHORPZA INTEGER;

BEGIN
VNChecada=1;
  /* Procedure body */
 for  select  H.DIAHORPZA, H.HORHORPZA,
              H.TURHORPZA, H.NUMHORPZA, H.IDEHORPZA
   from TBLHORPZA H, DETDEPPZA PZ
   where PZ.CVECATPER = :CVECATPER  and
         H.CVEDEPPZA = PZ.CVEDEPPZA and
         PZ.STADEPPZA = 1           and
         H.DIAHORPZA = IA
   Order by H.DIAHORPZA, HORHORPZA, TPOHORPZA DESC,H.CVEDEPPZA
   into
    RDIAHORPZA,RHORHORPZA,RTURHORPZA,RNUMHORPZA,RIDEHORPZA
  do
   begin

    Update tblhorpza set
    NUMHORPZA=:VNChecada
    where IDEHORPZA=:RIDEHORPZA;
    VNChecada=VNChecada + 1 ;

   end
    suspend;
END


--------

El segundo procedure de acuerdo a los dias que me arroja el primero hace unas operaciones por medio del cursor.

Los dos dicen estar bien en sintaxis, me marca el siguiente error al correr el primero:

Código:
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements message length error  (encountered 0, expected 40)
En el primer procedimiento estoy usando el execute statement
.

Cambie los Stored procedure, lo que hice fue poner los valores de retorno como simples variables. pero sigo sin resolver el problema, me sale el mismo error..

No entiendo muy bien a que se refiere el mensaje .. saludos!

Gracias, espero que me puedan ayudar.

Última edición por Juanito-Kun fecha: 04-05-2006 a las 16:52:06.
Responder Con Cita