Pesquisa travando

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

Pesquisa travando

Mensagem por JoséQuintas »

No momento um grande problema: a consulta está travando

Código: Selecionar todos

      :cSQL := "SELECT DISTINCT IEANP FROM JPITEM" + ;
         " WHERE IEANP IN ( SELECT IDANPPRO FROM JPTABANPPRO WHERE APISIMP = 'S' )"
      :Execute()
É uma consulta relativamente simples.
Funciona normalmente no HeidiSQL, coisa de 1 segundo.
Mas no programa está travando.

Alguma dica?

Mesmo banco, mesmas tabelas, mesmo comando.
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

Pesquisa travando

Mensagem por JoséQuintas »

mysql.png
É pior do que eu pensava.
Essa consulta por STORED PROCEDURE uso faz tempo.
Esse bloco DO WHILE ! :Eof() uso faz tempo.

A partir do momento que chega em :EOF() e sai do DO WHILE......
Qualquer tentativa de acessar cnSQL trava.

Pode ser até ? cnSQL:cn:connectionstring, que seria consultar a variável

No momento sem idéias.
Exceto sair desinstalando todas as atualizações da Microsoft, o que não explica só nessa parte falhar.
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/
sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Pesquisa travando

Mensagem por sergiosouzalima »

Olá!

Já inspecionou o texto gerado na variável cSql?

Eu pegaria o conteúdo da cSql e rodaria em algum client que acessa o banco para ver o resultado.

Só uma ideia.

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

Pesquisa travando

Mensagem por JoséQuintas »

sergiosouzalima escreveu:Já inspecionou o texto gerado na variável cSql?
Eu pegaria o conteúdo da cSql e rodaria em algum client que acessa o banco para ver o resultado.
Já fiz isso.

Agora o problema é outro, ANTES de chegar no comando cnSQL já está travado.
Tá tudo funcionando bem, faz a primeira parte que tem que fazer, mas no ponto indicado acima qualquer acesso à conexão cnSQL trava tudo.

Correção:

É executada a stored procedure, que retorna registros.
Os registros são processados um a um, até acabar.

A partir deste momento, qualquer tentativa de acessar a conexão trava tudo.
Então, o problema que mencionei no início.... já está com problema antes de chegar no comando.
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/
sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Pesquisa travando

Mensagem por sergiosouzalima »

É executada a stored procedure, que retorna registros.
Os registros são processados um a um, até acabar.

A partir deste momento, qualquer tentativa de acessar a conexão trava tudo.
Será que esse Eof() não está fechando a conexão?

Podem ser várias coisas.

Eu tentaria processar só um registro, sem esse "while ... Eof()" para ver o comportamento.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pesquisa travando

Mensagem por JoséQuintas »

Em TODO o aplicativo eu uso o :EOF()

Código: Selecionar todos

DO WHILE ! :Eof()
   :MoveNext()
ENDDO
Essa parte é normal em tudo que é lugar.
Só nessa situação é que apareceu esse problema.

E essa rotina continua igual sempre foi, há pelo menos uns 3 meses.
(Na verdade há quase um ano, mas a última alteração foi há uns 3 meses).

Comecei a desinstalar atualizações do Windows, mas ainda não resolveu.
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

Pesquisa travando

Mensagem por JoséQuintas »

Conhecem o carvalho?
Então, a casa dele tinha uma ponte, mas caiu.

O problema foi esse: a ponte que caiu da casa do carvalho....

Troquei o ODBC MariaDB 3.1.7 pra 3.1.13 e resolveu.
Também pode ser o ODBC MySQL 5.13

Antes que alguém diga:
Eles não são da Microsoft, são dos fabricantes das bases de dados.
Mas... pode ser que as versões mais novas sejam por mudanças da Microsoft, vai saber...

Porque eu estava usando o 3.1.7 ?
Porque é o último que funciona em Windows 7, e tem cliente com isso.

A propósito...
Quando o servidor MariaDB abandonou o uso de Windows 7, a instalação do MariaDB baixou de 80MB pra 50MB
A instalação do MySQL continua com quase 500MB, talvez tenha pra tudo que é sistema operacional ainda.

Conclusão: atualizar máquinas de Windows 7 pra Windows 10, enquanto é de graça, e enquanto tudo funciona.
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

Pesquisa travando

Mensagem por JoséQuintas »

w10.png
Nessa brincadeira de problema....

Eu estava com W10 - 21H2

Agora atualizando pra 20-04
Depois pra 20-H2
Depois pra 21-H1
Depois pra 21-H2

Como eu disse.... probleminha da casa do carvalho.... kkkk
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

Pesquisa travando

Mensagem por JoséQuintas »

isos.png
Só lembrando....

Desde que começou o Windows 10...
Sempre usei direto ISOs do HD, nada de pen drive ou DVD.
A última vez que usei boot/pen drive, foi quando troquei HD por SSD, porque aí não tinha por onde fazer boot.
Pelo menos isso ficou bom com W10.

Tem até ISO do W10 pré W11, mas tudo oficial, e até ISO 32 bits.
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