Erro em stored procedue / cursor

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro em stored procedue / cursor

Mensagem por JoséQuintas »

Estou tendo o mesmo problema em duas procedures.

Código: Selecionar todos

CREATE FUNCTION ze_XmlNfeProdutoList( nIdNotFis INT(11) )
RETURNS VARCHAR(10000)

BEGIN

DECLARE cXml VARCHAR(2000) DEFAULT '';
DECLARE nIdItPed, nContador INT(11) DEFAULT 0;
DECLARE nCursorEOF INT(11) DEFAULT 0;
DECLARE SP_CURSOR CURSOR FOR
   SELECT IDITPED FROM JPITPED WHERE IPPEDIDO =
      ( SELECT NFPEDIDO FROM JPNOTFIS WHERE IDNOTFIS = nIdNotFis );
DECLARE CONTINUE HANDLER FOR NOT FOUND SET nCursorEOF = 1;

OPEN SP_CURSOR;

THIS:WHILE nCursorEof != 1 DO
   FETCH SP_CURSOR INTO nIdItPed;

   SET nContador := nContador + 1;
   SET cXml := CONCAT( cXml, ze_XmlNfeProduto( nIdItPed, nContador ) );

END WHILE;

CLOSE SP_CURSOR;

RETURN cXml;

END
Tem apenas um produto no pedido, mas aparecem dois.
Tudo indica que é esta rotina, porque sai numerado item 1 e 2, e é aqui que numera.
Esse SELECT na base só retorna 1 produto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro em stored procedue / cursor

Mensagem por JoséQuintas »

Acho que o WHILE não é suficiente, precisa de mais um IF apos o FETCH.
É a única possibilidade que vejo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro em stored procedue / cursor

Mensagem por JoséQuintas »

É isso mesmo.
Só o WHILE...DO não é suficiente.
Mesmo com EOF(), continua usando as variáveis anteriores.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro em stored procedue / cursor

Mensagem por JoséQuintas »

Este erro foi as 06:20 da manhã, parou o faturamento.

E teve mais alguns erros em procedure/function.

Mas agora ok, geração de XML através de procedure/function instalada.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder