Ir para conteúdo
Fórum Script Brasil
  • 0

Perda de conexão com o banco


Nicky

Pergunta

Boa tarde pessoal!

Gostaria da ajuda de vocês para o seguinte problema:

Tenho um sistema em delphi + mysql. Este sistema irá funcionar no Estado inteiro, após a conclusão dos testes e cadastros de algumas informações.

Enquanto realizava o cadastro destas informações e aproveitava para fazer o teste do sistema aconteceu um problema: minha conexão com o servidor SQL caiu.

Devido a este problema, não conseguia mais salvar o registro. Fiquei sem saber o que fazer, pois não podia perder as informações já digitas e ele não salvava, por não ter conexão com o banco.

Gostaria da experiência de vocês para me ajudar com este problema. Alguém já passou por um problema parecido? Alguém tem alguma dica / sugestão do que fazer?

Obrigado!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

dae nicky,

já tentou passar o parametro de auto reconnect pro mysql?

em java em tenho o seguinte:

jdbc:mysql://127.0.0.1/meu_database?autoReconnect=true

assim o mysql fica habilitado pra se auto reconectar sempre.

e no seu try catch, dentro da excecao você verifica qual foi o erro.

se foi perda de conexao tenta novamente.

at+

Link para o comentário
Compartilhar em outros sites

  • 0

Oi,'Nicky'

Existem vários fatores que podem derrubar uma conexão com o banco MySQL. O sistema exibiu alguma mensagem de erro?

O MySQL controla o tempo de conexão do banco com a variável connect_timeout.

O número de segundos que o servidor mysqld espera para um pacote de conexão antes de responder com Bad handshake.

Ref. Manual do MySQL versão 4.1 (edição em português) Pág. 285

Você pode Ajustar o valor desta variável para 0 (Zero) editando o arquivo My.ini (caso a versão do servidor MySQl esteja em uma máquina com windows) ou My.cnf (caso a versão esteja em uma máquina Linux/Unix). Com o valor Zero o MySQl deixará de esperar pelo pacote de dados.

Se a versão do MySQL que você está usando é igual ou superior a 4.1.x. use

[mysql]
connect_timeout=2
Caso seja inferior use o código abaixo
[mysql]
set-variable = connect_timeout=0

Link para o comentário
Compartilhar em outros sites

  • 0

Então, ele perdeu a conexão com o banco, porque a internet caiu.

Usar comandos de auto recoonect, pra mim, acho que não seria viável, pois se a internet cair e não voltar mais, fico sem fazer meus cadastros.

Denis, tinha a mensagem de erro, mas nã sei te dizer agora qual é. Quanto fui tentar salvar o registro, ele deu esse erro... Depois de um tempo tentando consegui.

Estive pensando na possibilidade de salvar os registros localmente e depois transferir. Existe essa possibilidade? É uma boa idéias? Como poderia fazer?

Link para o comentário
Compartilhar em outros sites

  • 0

ahhh nesse caso de falha de conexao...

então não é problema com o mysql.

é problema de conexao com a internet mesmo.

ai sim, essa solucao é boa.

no seu catch do try, você salva os dados em um xml.

e toda vez q abrir o programa ou antes de salvar um novo registro

tu verifica se existe um arquivo xml,

se tiver, salva os dados na base e deleta o arquivo.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'Nicky'

Sem a mensagem de erro não há como avaliar o porquê de ter caído a conexão.

Como você usa Delphi, seria interessante você utilizar o componente TDatasetProvider. Com ele é possível gravar localmente os dados e transmiti-los depois. Dê uma fuçada no material do Delphi ou, se você quiser, posso transferir este tópico para a área de Delphi, onde o possoal poderá te ajudar no uso deste componente.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...