ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

quando a conexão cai!!!!
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Qui Jan 12, 2012 5:13 pm    Assunto: quando a conexão cai!!!! Responder com Citação

olá rapaziada eu aqui de novo!!
é o seguinte coloquei em um dos meus clientes rede wifi
agora tudo é sem fio!!!
queria saber quando o sistema esta usando o banco do servidor ai a conexão cai!! como tratar esse erro?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
panzetti
Novato
Novato


Registrado: Segunda-Feira, 4 de Julho de 2011
Mensagens: 23

MensagemEnviada: Qui Jan 12, 2012 6:23 pm    Assunto: Responder com Citação

Se fizesse uma rotina para verificar conectividade, e quando não houve conexao exibisse uma mensagem dizendo.
_________________
[]'s
A n d r é P a n z e t t i
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Qui Jan 12, 2012 7:35 pm    Assunto: Responder com Citação

panzetti escreveu:
Se fizesse uma rotina para verificar conectividade, e quando não houve conexao exibisse uma mensagem dizendo.

vou tentar aqui. valeu!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Caduzera
Profissional
Profissional


Registrado: Terça-Feira, 29 de Julho de 2008
Mensagens: 656

MensagemEnviada: Sex Jan 13, 2012 9:23 am    Assunto: Responder com Citação

Amigo, se você usar o ApplicationEvents, OnException, você consegue capturar qualquer erro que ocorra na aplicação, inclusive, falhas de conexão ..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Sex Jan 13, 2012 6:20 pm    Assunto: Responder com Citação

Caduzera escreveu:
Amigo, se você usar o ApplicationEvents, OnException, você consegue capturar qualquer erro que ocorra na aplicação, inclusive, falhas de conexão ..


olá meu brother valeu por ter respondido!!!
olha eu uso sim o ApplicationEvents, OnException mais para outros tipos de erros.
no caso desse erro q da eu faria como com ApplicationEvents, OnException?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
igormoita
Profissional
Profissional


Registrado: Quinta-Feira, 14 de Janeiro de 2010
Mensagens: 601

MensagemEnviada: Sex Jan 13, 2012 6:57 pm    Assunto: Responder com Citação

caiochacal, eu fiz da seguinte forma, no OnException criei uma variável para receber a msg de erro 'EMsg', e no início do procedimento
Código:
EMsm := E.Message;

Depois no corpo do procedimento verifico o tipo da msg:
Código:
if(Pos('Uma conexão estabelecida foi anulada pelo software no computador host', Emsg) <> 0)
or(Pos('Unable to complete network request to host', Emsg) <> 0)
or(Pos('Read error', Emsg) <> 0)
then
begin
  MsgErro := 'Erro de conexão, a tela ativada será fechada!';
  DM1.SQLConnection1.Tag := 666;
  DM1.SQLConnection1.Connected := False;
end;

Dai qnd abro os formulários eu testo se o SQLConnection.Tag = 666, caso esteja a criação do formulário é bloqueada e aparece a msg q houve
perda de conexão.
_________________
SEMPRE COLOQUE [RESOLVIDO] NO SEU POST
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Sex Jan 13, 2012 8:26 pm    Assunto: Responder com Citação

igormoita escreveu:
caiochacal, eu fiz da seguinte forma, no OnException criei uma variável para receber a msg de erro 'EMsg', e no início do procedimento
Código:
EMsm := E.Message;

Depois no corpo do procedimento verifico o tipo da msg:
Código:
if(Pos('Uma conexão estabelecida foi anulada pelo software no computador host', Emsg) <> 0)
or(Pos('Unable to complete network request to host', Emsg) <> 0)
or(Pos('Read error', Emsg) <> 0)
then
begin
  MsgErro := 'Erro de conexão, a tela ativada será fechada!';
  DM1.SQLConnection1.Tag := 666;
  DM1.SQLConnection1.Connected := False;
end;

Dai qnd abro os formulários eu testo se o SQLConnection.Tag = 666, caso esteja a criação do formulário é bloqueada e aparece a msg q houve
perda de conexão.


olá meu brother valeu pela resposta!!
onde fica esse OnException ai?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Sex Jan 13, 2012 8:29 pm    Assunto: Responder com Citação

caiochacal escreveu:
igormoita escreveu:
caiochacal, eu fiz da seguinte forma, no OnException criei uma variável para receber a msg de erro 'EMsg', e no início do procedimento
Código:
EMsm := E.Message;

Depois no corpo do procedimento verifico o tipo da msg:
Código:
if(Pos('Uma conexão estabelecida foi anulada pelo software no computador host', Emsg) <> 0)
or(Pos('Unable to complete network request to host', Emsg) <> 0)
or(Pos('Read error', Emsg) <> 0)
then
begin
  MsgErro := 'Erro de conexão, a tela ativada será fechada!';
  DM1.SQLConnection1.Tag := 666;
  DM1.SQLConnection1.Connected := False;
end;

Dai qnd abro os formulários eu testo se o SQLConnection.Tag = 666, caso esteja a criação do formulário é bloqueada e aparece a msg q houve
perda de conexão.


olá meu brother valeu pela resposta!!
onde fica esse OnException ai?

me desculpa eu me passei nisso foi mal!!!
não lembrava do OnException ja to ligado!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Sex Jan 13, 2012 8:59 pm    Assunto: Responder com Citação

caiochacal escreveu:
caiochacal escreveu:
igormoita escreveu:
caiochacal, eu fiz da seguinte forma, no OnException criei uma variável para receber a msg de erro 'EMsg', e no início do procedimento
Código:
EMsm := E.Message;

Depois no corpo do procedimento verifico o tipo da msg:
Código:
if(Pos('Uma conexão estabelecida foi anulada pelo software no computador host', Emsg) <> 0)
or(Pos('Unable to complete network request to host', Emsg) <> 0)
or(Pos('Read error', Emsg) <> 0)
then
begin
  MsgErro := 'Erro de conexão, a tela ativada será fechada!';
  DM1.SQLConnection1.Tag := 666;
  DM1.SQLConnection1.Connected := False;
end;

Dai qnd abro os formulários eu testo se o SQLConnection.Tag = 666, caso esteja a criação do formulário é bloqueada e aparece a msg q houve
perda de conexão.


olá meu brother valeu pela resposta!!
onde fica esse OnException ai?

me desculpa eu me passei nisso foi mal!!!
não lembrava do OnException ja to ligado!!



meu brother não entende essa parte (Depois no corpo do procedimento verifico o tipo da msg:)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Sáb Jan 14, 2012 8:57 am    Assunto: Responder com Citação

caiochacal escreveu:
caiochacal escreveu:
caiochacal escreveu:
igormoita escreveu:
caiochacal, eu fiz da seguinte forma, no OnException criei uma variável para receber a msg de erro 'EMsg', e no início do procedimento
Código:
EMsm := E.Message;

Depois no corpo do procedimento verifico o tipo da msg:
Código:
if(Pos('Uma conexão estabelecida foi anulada pelo software no computador host', Emsg) <> 0)
or(Pos('Unable to complete network request to host', Emsg) <> 0)
or(Pos('Read error', Emsg) <> 0)
then
begin
  MsgErro := 'Erro de conexão, a tela ativada será fechada!';
  DM1.SQLConnection1.Tag := 666;
  DM1.SQLConnection1.Connected := False;
end;

Dai qnd abro os formulários eu testo se o SQLConnection.Tag = 666, caso esteja a criação do formulário é bloqueada e aparece a msg q houve
perda de conexão.


olá meu brother valeu pela resposta!!
onde fica esse OnException ai?

me desculpa eu me passei nisso foi mal!!!
não lembrava do OnException ja to ligado!!



meu brother não entende essa parte (Depois no corpo do procedimento verifico o tipo da msg:)


Por favor q souber ai da uma ajuda!!!
eu fiz assim coloquei o time e ele fica verificando a conexão:

Código:
procedure TFrmprincipal.Timer3Timer(Sender: TObject);
begin
 if dm_dados.base_dados_estoque.TestConnected = False
then
begin

tentativas:=1;
  iniconf:=Tinifile.Create(extractfilepath(application.ExeName)+'conf3.ini');
  dm_dados.base_dados_estoque.Connected := False;
  dm_dados.base_dados_estoque.DatabaseName := iniconf.ReadString('base_dados_estoque','path','');
  try
 
    dm_dados.base_dados_estoque.Connected := True;
    dm_dados.IBTrans.Active := True;
    dm_dados.IBTrans.StartTransaction;

       ShowMessage('conectado!');
   except
   ShowMessage('Erro de conexão com o banco!');

end;
end;


ai quando a conexão cai, ele procura o banco de dados local e conecta, assim da certo mais a mensagem de erro continua (Dataset Open) como eu tiro essa menssagem de erro?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
igormoita
Profissional
Profissional


Registrado: Quinta-Feira, 14 de Janeiro de 2010
Mensagens: 601

MensagemEnviada: Sáb Jan 14, 2012 9:08 am    Assunto: Responder com Citação

caiochacal, é porque o Evento ApplicationEvents.OnException possui uma variável chamanda E: Exception, e quando acontece qualquer
erro na aplicação essa variável guarda a mensagem de erro em E.Message, dai basta você utiliza-la para verificar qual a mensagem
de erro, ex.:
Abra uma nova aplicação;
Adicione 1 Button;
Adicione 1 ApplicationEvents;
No OnClick do Button coloque: StrToDate('1');;
No OnException do ApplicationEvents coloque:
Código:
if(Pos('is not a valid date',E.Message) > 0)then
    ShowMessage('Data Inválida!');


De um break no if(Pos... debug e veja oque a variável recebe para você entender melhor como funciona essa opção.
_________________
SEMPRE COLOQUE [RESOLVIDO] NO SEU POST
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Sáb Jan 14, 2012 9:09 am    Assunto: Responder com Citação

igormoita escreveu:
caiochacal, é porque o Evento ApplicationEvents.OnException possui uma variável chamanda E: Exception, e quando acontece qualquer
erro na aplicação essa variável guarda a mensagem de erro em E.Message, dai basta você utiliza-la para verificar qual a mensagem
de erro, ex.:
Abra uma nova aplicação;
Adicione 1 Button;
Adicione 1 ApplicationEvents;
No OnClick do Button coloque: StrToDate('1');;
No OnException do ApplicationEvents coloque:
Código:
if(Pos('is not a valid date',E.Message) > 0)then
    ShowMessage('Data Inválida!');


De um break no if(Pos... debug e veja oque a variável recebe para você entender melhor como funciona essa opção.


vou testa aqui, ja, ja te respondo!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Sáb Jan 14, 2012 12:39 pm    Assunto: Responder com Citação

caiochacal escreveu:
igormoita escreveu:
caiochacal, é porque o Evento ApplicationEvents.OnException possui uma variável chamanda E: Exception, e quando acontece qualquer
erro na aplicação essa variável guarda a mensagem de erro em E.Message, dai basta você utiliza-la para verificar qual a mensagem
de erro, ex.:
Abra uma nova aplicação;
Adicione 1 Button;
Adicione 1 ApplicationEvents;
No OnClick do Button coloque: StrToDate('1');;
No OnException do ApplicationEvents coloque:
Código:
if(Pos('is not a valid date',E.Message) > 0)then
    ShowMessage('Data Inválida!');


De um break no if(Pos... debug e veja oque a variável recebe para você entender melhor como funciona essa opção.


vou testa aqui, ja, ja te respondo!


Vou falar pra vcs eu conseguir fazer o bicho funfa!!!!
mais foi na velha ganbiarra!!! rsrsrsr!!!

porra pesquisei pacaralho!!!! e só encontrava soluções mal resolvidas
graças a meu brother igormoita aqui do forum , por sinal é o melhor forum sem querer puxar o saco!! rsrsr! eu conseguir fazer uma ganbiarra massa!!!
O relogio fica rastriando a conexão ai se a mesma cai, ele da uma mensagem de conexão perdida e esconde o erro chato q diz (dataset open) ai ele aciona outro relogio q rastria se a conexão voltou com a conexão estabelecida ele pega o endereço de novo do arquivo ini e conecta o banco novamente!!!
se alguém precisar da solução ganbiarra eu coloco com uma explicação melhor!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
igormoita
Profissional
Profissional


Registrado: Quinta-Feira, 14 de Janeiro de 2010
Mensagens: 601

MensagemEnviada: Sáb Jan 14, 2012 9:10 pm    Assunto: Responder com Citação

Fico feliz em ter ajudado, se você utilizou corretamente o ApplicationEvents não vejo porque chamar de gambiarra xD!

(OBS: adicione [Resolvido] no título do tópico)
_________________
SEMPRE COLOQUE [RESOLVIDO] NO SEU POST
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Dom Jan 15, 2012 10:30 am    Assunto: Responder com Citação

Uma outra forma seria dar um ping no servidor com componentes indy, utilizando idicmp, assim vc poderia saber se a rede caiu, outra forma seria vc utilizar wmi para monitorar a rede e seu sinal.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB