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

Componente Tadoconnection


Guest - kleberns -

Pergunta

Guest - kleberns -

Pessoal,

Por que não funciona o time-out ?!

Exemplo:

ADO1.CommandTimeout := ttDH.TimeOut div 1000;

ADO1.Conexao.ConnectionTimeout := ttDH.TimeOut div 1000;

quando o IP 192.168.0.1, ele obedece ao timeout desejado

quando o IP 200.155.1.1, ele ignora o time-out de cima, demora uns 40 segundos para liberar a Aplicacao (Fica Travada no comando ADO1.Open);

Como eu faco para ter um time-out MEU ?! (não esquecendo q a "mercadoria" do componente trava a aplicacao no comando ADO1.Open)

Grato,

att.

Nogueira

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Guest - kleberns -

Graymalkin,

Consegui fazer isso, so q ao tentar sair do programa, ele fica parado no metodo FreeAndNil(ModuloSQL);

Creio eu que ele não sai por que o componente TADO ainda esta tentando se conectar, so que o meu time-out de conexao já acabou, so q o dele ainda não.

Como contornar isso ?!

att.

Nogueira

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - kleberns -

Graymalkin,

já tentei o Cancel, Close e nada adianta, ele tem que terminar em todos de 30 segundos para depois desconectar:

Pedaco da funcao

With DMSql.Conexao Do Begin

ConnectOptions := coAsyncConnect;

sConexao :=

'Provider=SQLOLEDB.1;' +

'Data Source=' + ttDH.URL + ';' +

'Password=' + ttDH.PassWord + ';' +

'User ID=' + ttDH.UserName + ';' +

'Initial Catalog=' + ttDH.Servico + ';' +

'Persist Security Info=False';

ConnectionString := sConexao;

FrmCWS.tmrTimeOut.Interval := ttDH.TimeOut;

CommandTimeout := ((ttDH.TimeOut) div 1000) + 3;

ConnectionTimeout := ((ttDH.TimeOut)div 1000) + 3;

FrmCWS.tmrTimeOut.Enabled := True;

Open;

End;

While

(stConnecting in DMSql.Conexao.State) And

(FrmCWS.tmrTimeOut.Enabled) Do

ttApp.ProcessMessages;

FrmCWS.tmrTime....

begin

Try

// DMSql.Conexao.Cancel; <- MARQUEI, PORQUE não FUNCIONA

If (stOpen in DMSql.Conexao.State) Then Begin

DMSql.Conexao.Cancel;

DMSql.Conexao.Close;

End;

Except

On E:Exception do begin

ttDadPCC.sMensagem := E.Message;

End;

End;

End;

att.

Nogueira

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...