Client independente do servidor ??
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.
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
Curtidas 0
Respostas
Bruno_fantin
30/12/2004
Só uma pergunta... Qual banco você vai usar???
GOSTEI 0
Dopi
30/12/2004
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...
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...
GOSTEI 0
Vinicius2k
30/12/2004
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+
GOSTEI 0
Dopi
30/12/2004
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....
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....
GOSTEI 0
Mordred
30/12/2004
Show de bola MESMO! Funciona direitinho! Valeu Vinícius!!! :D :D
GOSTEI 0