LuX_ 2 Denunciar post Postado Agosto 4, 2009 Galera. Seguinte, comecei a tentar conectar o delphi com banco de dados online mysql. Usei os seguintes componentes. [usei a ZEOSLIB] ZConnection DataSource Zquery. Além do dbnavigator e o BDGrid Porém, qualquer ação que eu faço com o banco de dados, as vezes me retorna o erro: "Mysql Server has gone away" Mas isso é só as vezes... As vezes ele faz tudo direitinho. Porém quando dá o erro (pode ser um select, update, insert, tanto faz) ele mostra o erro e não importa quantas vezes eu tente ele continua dando. Ai eu tenho que reiniciar a aplicação para, quem sabe, dar certo. alguém sabe como proceder? Ou alguém sabe uma forma melhor pra conectar com o banco mysql? Valeu galera! Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Agosto 4, 2009 Esse erro geralmente ocorre porque o seu programa perdeu a conexão com o banco de dados, conforme explicado no próprio manual do MySQL, neste link []'s Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Agosto 4, 2009 hehe, isso msm.. a conexão, por algum erro, cai. Tambem tive esse problema, ai o Chrnos me deu uma dica, e fiz e funciono.. Toda vez que você faz uma requisição, fecha a conexão e abre de novo.. : D Compartilhar este post Link para o post Compartilhar em outros sites
LuX_ 2 Denunciar post Postado Agosto 5, 2009 Ok Galera. Entendi o erro, porém o que eu posso fazer para driblá-lo? Ele aparece de vez em quando e sou obrigado a reiniciar a aplicação? Compartilhar este post Link para o post Compartilhar em outros sites
LuX_ 2 Denunciar post Postado Agosto 5, 2009 valeu Galera. Fiz como o nosso amigo logo acima falou. Fechei e abri a conexão pra cada requisição e rodou boniiiito! abraço pessoal IMASTERS O MELHOR FORUM DE T.I DO BRASIIIIL! Compartilhar este post Link para o post Compartilhar em outros sites
Humberto - S.O.S. 2 Denunciar post Postado Fevereiro 28, 2011 Caros, Desculpa ressuscitar este tópico só que eu estava com o mesmo problema e procurei no Google uma resposta e sempre sem resultado, o interessante é que este tópico resolveu todo meu problema e fui achar na pagina 4945994359 do google. Compartilhar este post Link para o post Compartilhar em outros sites
kupsoft 0 Denunciar post Postado Novembro 29, 2011 Você pode aplicar esta dica de diversas formas, no próprio evento das tabelas e query adicionar a opção de desconectar/conectar. Mas eu estava com um projeto que tinha mais 30 componentes ZQuery, fazer alteração em todos os componentes, iria acabar com meu projeto, e também daria um trampo ferrado!!! Então achei uma solução melhor, coloquei um componente ZSQLMonitor, coloquei pra salvar um arquivo e esperei o erro acontecer. Assim que o mesmo aconteceu capturei o CodeErro e a mensagem de erro. A partir deste ponto, fiz um tratamento. Que sempre que este erro acontece-se ele disconecta e reconectava o banco. Desta forma, a mensagem de ERRO aparece e na minha opinião ela tem que aparecer mesmo, pois e um alerta que ocorreu uma desconeção com o banco de dados e você precisa saber disso, ou pelomenos o usuário precisa ser notificado sobre isso. Suponha que ele tirou o cabo de rede? Nunca vai conectar. E ficar conectando/desconectando antes, vai gerar o mesmo erro. 1 - Quando o ZSQLMonitor disparar o erro, você conecta/desconecta o banco, a mensaem será exibida, mas na próxima tentativa o seu cliente consegue conectar. Ou não utilizar o ZSQLMonitor mas utilizar o TApplicationEvents, fica na Guia "Additional" (Delphi7), você coloca esse componente no form principal e configura a evento Exception, primeiro coloca um showmessage('Peguei erro: '+E.Message); Será exibido o seu erro, coloca um break point neste local, selecina essa variavel message e aperta Ctrl+F7 para pegar o valor que esta lá e utiliza ele para comparar na hora que o erro acontecer. Pronto! quando o erro acontecer, você conecta e desconectar e ainda pode exibir uma mensagem personalizada para o seu cliente, tipo: "A conexão foi perdida. Tente novamente!" Eu utilizei essas duas formas e funcionou normalmente. Qualquer dúvida e so enviar mensagem, abraço a todos! Compartilhar este post Link para o post Compartilhar em outros sites