Fórum Client independente do servidor ?? #263828

30/12/2004

0

Caro Colega de Clube, gostaria de saber como faço para cria uma aplicação q funcionasse da seguinte forma:

O Client verificaria constantemente se o servidor estivesse ativo, caso tivesse beleza, ele gravaria os dados no servidor, bem como faria todas as operações no servidor, caso o Servidor não estivesse ativo, ele gravaria em um banco local e quando fosse detectado pelo Client q o servidor ficou ativo, ele automaticamente atualizasse as informações do servidor, ou seja, mandaria as informaçções do client desde a hora q o servidor parou até a hora q ele ficou ativo.


Wiltefran

Wiltefran

Responder

Posts

30/12/2004

Bruno_fantin

Só uma pergunta... Qual banco você vai usar???


Responder

Gostei + 0

30/12/2004

Dopi

Isso pode ser feito com o ClientDataSet....

A documentaçao é bem extensa no Help do Delphi, procure por ´Briefcase model applications´ e ´Using TClientDataSet´

Com o ClientDataset fica bem fácil, é só usar o metodo SavetoFile para gravar um snapshot do arquivo para um arquivo local... e depois usar o ApplyUpdates quando a conexão estiver disponivel...

Tb estou desenvolvendo um programa com essas caractereisticas... Ainda estou procurando uma maneira rapida para verificar se a conexão com o Servidor está disponivel.... pois tentar um SQLConnection.OPEN demora quase um minuto...


Responder

Gostei + 0

30/12/2004

Vinicius2k

Ainda estou procurando uma maneira rapida para verificar se a conexão com o Servidor está disponivel.... pois tentar um SQLConnection.OPEN demora quase um minuto...

Olá Daniel,
Talvez vc já tenha pensado nisso, mas uma idéia :
Se a comunicação com o banco for feita via TCP, ele tem um host e uma porta para o serviço, então vc pode utilizar um TCPClient (Paleta Indy Clients) para testar se o serviço e a porta estão ´on´...
Vc só não conseguirá detectar particularidades, como, por exemplo, se o banco de dados em si está disponível... Mas detectar o host e a porta já seria um bom começo.

Exemplo:
idTCPClient1.Host := ´localhost´;
idTCPClient1.Port := 3050;
try
  idTCPClient1.Connect;
except
  on E: Exception do
    ShowMessage(´Erro na conexão !´ + #13 + E.Message);
end;
if idTCPClient1.Connected then
  ShowMessage(´Conectado !´);
idTCPClient1.Disconnect;


T+


Responder

Gostei + 0

30/12/2004

Dopi

Show de bola Vinicius... era isso mesmo....

Tentei usando o idICPMClient (ping) mas o maldito só funciona no XP se o usuário for o administrador...

Tentei usando o SqlConection.Open dentro uma Thread que eu matava apos um Timeout... e não deu muito certo... pois o Open continuava rodando na Thread mesmo quando em matava ela....

Ou seja, tentei re-inventar a roda.... ;-)

com o idTCPClient1 o problema foi resolvido....

Valeu....


Responder

Gostei + 0

04/01/2006

Mordred

Show de bola MESMO! Funciona direitinho! Valeu Vinícius!!! :D :D


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar