Lembrando que estruturas que trabalham online o tempo inteiro, devem controlar as transações e conexões com o banco de dados de forma BEM diferente de estruturas locais.
Talvez vocês estejam querendo resolver um problema que não existe. Conforme um colega já disse, conecte no banco, faça a operação desejada, desconecte. Se a operação envolver select, traga os registros em um TClientDataSet e desconecte. É muito mais fácil do que procurar chifre em cabeça de cavalo e gastar dinheiro com componente. -----Mensagem original----- De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Eduardo Silva dos Santos Enviada em: segunda-feira, 5 de julho de 2010 21:41 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] MySQL server has gone away Olá Levy, para que não seja exibida a mensagem da desconexão tem que conficar no Evento OnConnectionLost do TMyConnection: RetryMode := rmReconnectExecute; Quando a Dll, não ha necessidade de nenhuma, o mydac conecta diretamente ao servidor. quanto a demora para gravação dos dados, não deveria acontecer, tem que ver mais detalhes.. como a mesta sendo feita.. para determinar a causa. Att, ....................................................... Eduardo Silva dos Santos DRD SISTEMAS (27) 3218-4201 (27) 9961-7095 MSN: eduardo....@gmail.com Site: http://www.drdsistemas.com.br/ ....................................................... Em 5 de julho de 2010 20:52, Levy Pereira <levypere...@yahoo.com> escreveu: > > > Eduardo, > baixei o MyDAC e parece-me que vou ter que investir neste componente. A > conexão continua sendo perdida mas diferente do Zeos ela é restabelecida, > vou ver ainda com o tratar a mensagem de erro. > > Ele carrega alguma .dll para não ter a obrigatoriedade de instalar o MySQL > Client? > > Há demora na gravação dos dados, como não estou acostumado (ainda) com > MySQL não sei se estou com problema de código ou se é mesmo caracteristica > da conexão. > > Grato, > > > Levy > > ________________________________ > From: Eduardo Silva dos Santos <eduardo....@gmail.com<eduardo.drd%40gmail.com> > > > To: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Sent: Mon, July 5, 2010 5:57:59 PM > Subject: Re: [delphi-br] MySQL server has gone away > > Levy, o mysql é exigente com a conexão, qualquer anormalidade e ele derruba > a mesma. > > Quanto eu usava zeos eu implementei uma rotina que reconectava > automaticamente caso a mesma fosse perdida. > eu não sei se isso foi implementado na versão atual do zeos. Vou tentar > achar a versão que fiz essa mudança e te passo, assim vc aplica ai.. > > Bom, mudando de zeos para MyDAC, não sei se você conhece, nele existe uma > teconologia que faz o mesmo processo, se a conexão cair, ele reconecta de > forma transparente.. caso não conheça, veja: www.devart.com/mydac > > Att, > ....................................................... > Eduardo Silva dos Santos > DRD SISTEMAS > (27) 3218-4201 > (27) 9961-7095 > MSN: eduardo....@gmail.com <eduardo.drd%40gmail.com> > Site: http://www.drdsistemas.com.br/ > ....................................................... > > Em 5 de julho de 2010 14:01, Levy Pereira <levypere...@yahoo.com<levypereira%40yahoo.com>> > escreveu: > > > > > > > Prezados amigos, > > > > como um (por enquanto) iniciante com o MySQL estou apanhando, estou > usando > > o ZEOS para conexão. > > > > A conexão é instável. Muitas vezes procede normalmente as consultas, > > atualizações ou inserções, em outras o fatal erro acontece e somente > volta a > > conectar depois de sair e entrar no aplicativo. > > > > Este erro acontece algumas vezes quando o aplicativo fica ativo sem > > atividade. > > > > Antes de começar qualquer procedimento checo se há conexão: > > > > if BD.Conexao.Connected = false then BD.Conexao.Reconnect; > > > > Depois o processo: > > > > BD.Query01.Close; > > BD.Query01.SQL.Clear; > > BD.Query01.SQL.Add('start transaction'); > > BD.Query01.ExecSQL; > > BD.Query01.Close; > > BD.Query01.SQL.Clear; > > BD.Query01.SQL.Add( > > 'insert into fornecedores ( cnpj, razaosocial, telefone, > contato,'+ > > 'email ) values ( '+A01+','+A02+','+A03+','+A04+','+A05+')'); > > BD.Query01.ExecSQL; > > BD.Query01.SQL.Clear; > > MessageBox( Handle, 'Fornecedor adicionado com sucesso', 'Informação', > 64 > > ); > > passou := True; > > BD.Query01.SQL.Add('commit'); > > BD.Query01.ExecSQL; > > BD.Query01.SQL.Clear; > > BD.01.Refresh; > > > > Grato pela ajuda! > > > > Levy > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > ------------------------------------ > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>