Zeos está instavel aqui. Alguém conheçe alternativas boas?

Delphi

03/10/2005

Olá pessoal, tudo bom?

O Zeos aqui começou a ficar louco.. Quando eu vou executar alguma query (é aleatório a ordem desse erro), ele fala que perdeu a conexão com o MySQL enquanto executava a query. O problema é que tenho muito pouco tempo para terminar um projeto, e o Zeos começou a dar esse erro justo agora, e eu não quero voltar para o BDE. Alguém conhece alguma alternativa para acessar o MySQL?

Muito obrigado.


Nildo

Nildo

Curtidas 0

Respostas

Solracnet

Solracnet

03/10/2005

Usa o DBExpress.


GOSTEI 0
Adriano Santos

Adriano Santos

03/10/2005

É Nildo, eu sou desta opnião também. Pelo menos não sei de nenhum caso semelhante a este com o DbExpress. E é fácil mexer.


GOSTEI 0
Sabado

Sabado

03/10/2005

Prezado
Uso o ZEOS e tive um problema similar. era a libmysql.dll corrompida. foi só subsituir o arquivo e tudo voltou a funcionar perfeitamente.


GOSTEI 0
Adriano Santos

Adriano Santos

03/10/2005

Essa eu não tinha pensado, será que é tão simples?
Caramba.


GOSTEI 0
Vinicius2k

Vinicius2k

03/10/2005

O dbExpress é excelente, mas há que se observar as limitações que o driver da borland tem quanto às versões do MySQL (Vide readme do Delphi e dos update packs). Dependendo da versão que vc utiliza ele pode não trabalhar corretamente.
Eu utilizaria ODBC + ADO. É velho, mas é confiável.

T+


GOSTEI 0
Adriano Santos

Adriano Santos

03/10/2005

O dbExpress é excelente, mas há que se observar as limitações que o driver da borland tem quanto às versões do MySQL (Vide readme do Delphi e dos update packs). Dependendo da versão que vc utiliza ele pode não trabalhar corretamente. Eu utilizaria ODBC + ADO. É velho, mas é confiável. T+


Vinicios2K, não é lento o ODBC? Ouço falar tão mal que fico na dúvida.


GOSTEI 0
Nildo

Nildo

03/10/2005

Prezado Uso o ZEOS e tive um problema similar. era a libmysql.dll corrompida. foi só subsituir o arquivo e tudo voltou a funcionar perfeitamente.


Aí que tá, eu já reinstalei tudo, o mySQL, o Zeos, o Delphi, etc. Mas o problema parece ser com a DLL mesmo, porque em alguns casos eu tenho Access Violation nas DLLs.

Vou conversar com o pessoal sobre o DBExpress.

Mas, [b:c89ea5eafa]sabado[/b:c89ea5eafa], onde eu consigo estas DLLs a parte, para saber se o erro estão nelas?


GOSTEI 0
Mysys

Mysys

03/10/2005

o problema bem provavel que seja dll

na pasta do sue componente zeos zeos6.5\lib\mysql pege a dll referente ao seu banco de dados e coloque ou no windows\sistem ou na mesma pasta do seu executavel, eu costumo colocar na mesma pasta do meu executavel...

tembem pode ser a versao muito atrazada de zeos que voce usa, caso esteja na versao mais nova sertifique que na opcao protocolo do componente ZConnectio esta setado na versao correta do mysql que voce esta usando..

uso zeos a 4 anos numca tive problemas o DBX realmente é bom mas ele é mais complexo pra c trabalhar voce perde muito tempo..

um abraco

nao tem nada a ver com ODBC o zeos nao usa odbc pra conectar a nao ser que em na propriedade protocol voce especifique isso


GOSTEI 0
Vinicius2k

Vinicius2k

03/10/2005

[quote:243226aee2=´Adriano Santos´]Vinicios2K, não é lento o ODBC? Ouço falar tão mal que fico na dúvida.[/quote:243226aee2]
Não é ´má fama´ de graça! ODBC é mais lento mesmo que a maioria das camadas de acesso, mas em muitos casos é a melhor solução.
O fato de ser uma camada universal, que pode ser utilizada por aplicações em qualquer linguagem, faz com que o driver seja desenvolvido pela própria equipe que desenvolve o SGBD, o que sempre o faz confiável.

T+


GOSTEI 0
Nildo

Nildo

03/10/2005

o problema bem provavel que seja dll na pasta do sue componente zeos zeos6.5\lib\mysql pege a dll referente ao seu banco de dados e coloque ou no windows\sistem ou na mesma pasta do seu executavel, eu costumo colocar na mesma pasta do meu executavel... tembem pode ser a versao muito atrazada de zeos que voce usa, caso esteja na versao mais nova sertifique que na opcao protocolo do componente ZConnectio esta setado na versao correta do mysql que voce esta usando.. uso zeos a 4 anos numca tive problemas o DBX realmente é bom mas ele é mais complexo pra c trabalhar voce perde muito tempo.. um abraco nao tem nada a ver com ODBC o zeos nao usa odbc pra conectar a nao ser que em na propriedade protocol voce especifique isso


Obrigado pela resposta!

No caso, eu uso o MySQL versão 4.1, e no Protocol eu uso o 3.2.3, que eu acho que seja compativel com a versão do MySQL que eu tenho instalado aqui. Mas eu testei com os outros protocolos e tenho o mesmo erro. Em todo caso, vou atualizar pra usar a ultima versão do ZeosLib.

Thanx!!


GOSTEI 0
Nildo

Nildo

03/10/2005

Arrumei!! Para os interessados na minha solução: Minha aplicação continha N threads rodando e executando queries. Tava dando algum tipo de conflito quando executava exatamente duas queries ao mesmo tempo. Então criei uma outra conexão para cada thread. O problema parou.

Um forte abraço e obrigado a todos!


GOSTEI 0
Massuda

Massuda

03/10/2005

...executava exatamente duas queries ao mesmo tempo. Então criei uma outra conexão para cada thread.
Só para entender... você compartilhava a mesma conexão para todas as threads?


GOSTEI 0
Nildo

Nildo

03/10/2005

[quote:7300ec0d9b=´nildo´]...executava exatamente duas queries ao mesmo tempo. Então criei uma outra conexão para cada thread.
Só para entender... você compartilhava a mesma conexão para todas as threads?[/quote:7300ec0d9b]

Compartilhava :oops: . Isso é permitido? É que BD não é meu ponto forte..


GOSTEI 0
Massuda

Massuda

03/10/2005

Isso é permitido?
Geralmente não, a maioria (na verdade, acho que são todos) dos drivers/software cliente dos diferentes BDs não são thread safe.

O que você pode fazer para evitar de ter uma conexão para cada thread é fazer um pool de conexões de modo a reaproveitar uma conexão aberta mas que não esteja em uso (em essência, é o que o ADO faz).

É que BD não é meu ponto forte..
Nem o meu :D


GOSTEI 0
Nildo

Nildo

03/10/2005

Beleza Massuda! Cara, muito obrigado mesmo! Esse era o problema. Agora todos os problemas acabaram! O problema é que vou ter que vir tramapr no fds pra compensar esse tempo que eu perdi tentando achar o problema hehehe.. Mas enfim, melhor 1 fds do que 2 ou 3 né!

Falows cara, té +


GOSTEI 0
POSTAR