Clipper On Line • Ver Tópico - Erro em stored procedue / cursor

Erro em stored procedue / cursor

Discussão sobre SQL

Moderador: Moderadores

 

Erro em stored procedue / cursor

Mensagempor JoséQuintas » 11 Out 2021 08:10

Estou tendo o mesmo problema em duas procedures.

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Erro em stored procedue / cursor

Mensagempor JoséQuintas » 11 Out 2021 08:16

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Erro em stored procedue / cursor

Mensagempor JoséQuintas » 11 Out 2021 08:25

É 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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Erro em stored procedue / cursor

Mensagempor JoséQuintas » 11 Out 2021 10:00

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro