Como não? Esse é um problema barra pesada.
Então vamos a um exemplo pratico para analisarmos o problema do colega. O cara leva o note pra casa com a base toda sincronizada e tudo igual ao servidor. Chega em casa ou no cliente e começa a cadastrar digamos um PEDIDO gerando com isso um novo código auto-incremento para este pedido. Começa a incluir itens nesse pedido (gerando códigos auto-incremento para cada item) e pendurando esses itens no pedido. Ai ele nota que esta faltando um produto no cadastro dele e cadastra esse produto. Enquanto isso, na empresa o pessoal também esta lançando PEDIDOS e cadastrando outros produtos. Quando ele voltar como vocês acham que vão conciliar isso tudo? Pela chave primaria (auto-incremento)? Quando for jogar isso tudo no servidor, primeiro vai precisar incluir o produto que provavelmente vai ganhar um código diferente, depois incluir o pedido que também vai ter um código diferente e depois disso tudo inserir os itens e desse pedido apontando para o produto correto. Ou seja, ClientDataSet não vai resolver. Ele não faz milagres. Isso requer uma ótima lógica, e muito trabalho. [ ] s De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Ricardo César Cardoso Enviada em: segunda-feira, 5 de maio de 2008 17:27 Para: delphi-br@yahoogrupos.com.br Assunto: RE: [delphi-br] Sistema on-line X off-line Tb não consigo enxergar essa dificuldade de sincronização. Vc iria trabalhar com o Delta que é a grosso modo o conjunto de alterações que os dados receberam. Não há muito motivo pra preocupação com isso. Atte, Ricardo. Rubem Nascimento da Rocha <[EMAIL PROTECTED] <mailto:djpardalrocha%40hotmail.com> > escreveu: Particularmente, num vejo problema em codificar uma rotina que copie os dados de um clientdataset local para um clientdataset com um provider para um banco de dados ou aplicação servidora e, neste ultimo, executar um ApplyUpdates. Que tipo de dificuldade vc vê na sincronização? Poderia enumerá-las para discutirmos no grupo? Sds. ________________________________ To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> From: [EMAIL PROTECTED] <mailto:rafael.jorge%40gmail.com> Date: Mon, 5 May 2008 17:06:14 -0300 Subject: Re: [delphi-br] Sistema on-line X off-line primeiro respondendo a sugestao da conexao via internet.. nao é viavel pois é justamente nao ter internet e um requisito dessa estrututra de off-line. ja sobre quardar os arquivos em XML eu ja tinha pensado.. mas ai nao resolve o problema de sincronismo. pq minha principal duvida e como eu vou sincronizar a base sem ser uma rotina trabalhosa e demorada. valeu pela atencao. t+ 2008/5/5 Rubem Nascimento da Rocha <[EMAIL PROTECTED] <mailto:djpardalrocha%40hotmail.com> >: > > De prima, uma alternativa seria fazer as manutenções com ClientDataSet, > mantendo os dados salvos localmente em um arquivo binário ou XML. Soh teria > que ver a questão de segurança pra esses dados não serem corrompidos ou > sofrerem intervenção externa(proteção dos dados). > > Usaria um ClientDataSet pra editar os dados localmente, e quando fosse > aplicar isso em um banco de dados, copiaria os dados deste ClientDataSet > para um outro devidamente ligado ao provider de dados e neste ultimo > aplicaria tudo no banco de dados. Obviamente q os dois ClientDataSets > deveriam ter a mesma estrutura. > > Esta eh a minha humilde sugestao. Se alguem tiver ideia melhor, eh sempre > bom compartilhar e discutir, principalmente aqui no grupo! > Sds. > > ________________________________ > > To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> > From: [EMAIL PROTECTED] <mailto:rafael.jorge%40gmail.com> > Date: Mon, 5 May 2008 16:49:20 -0300 > Subject: [delphi-br] Sistema on-line X off-line > > > Vamos lá... > > Tenho uma aplicação que roda numa rede.. ai um cliente meu quer que ele > possa pegar o note book dele por exemplo, com o sistema instalado nele > sair > mexendo a vontade no sistema na rede.. Incluindo, excluindo e alteando > registros, ate ai tudo bem.. o trivial. Só que ele quer de vez em quando > levar o note book pra casa e ainda assim trabalhar no sistema. E depois > quando voltar sincronizar as informações. > > Minha pergunta é qual o melhor jeito de fazer isso? > > Tive a idéia de colocar uma tela de sincronização de dados. Onde eu digo o > banco de origem e o destino.. Ai o sistema sai tabela por tabela, registro > por registro vendo o que foi esta cadastrado no banco de origem que não > tem > no de destino e colocar ele la.. > > Bem não to louco de fazer isso via programação, se eu abrir tabela por > tabela (são 326) e registro por registro de cada uma procurando pra ver se > já ta cadastrado alem de ser um trabalho gigante vai demorar muito. Então > como faço isso via SQL? Como eu consulto em dois bancos ao mesmo tempo? > Estou usando firebird 1.5. > > Outra coisa, como deve proceder de uma forma pra saber qual os registros > foram inseridos em off-line (o PC fora da rede)? Pensei em colocar um > campo > pra servir como flag e quando o sistema tiver off line todo registro > alterado ou incluído ficaria com essa flag. Ai quando a maquina voltasse > pra > rede ele sincronizava. > > Alguém já teve que fazer isso? Outra coisa... não vai ser apenas um pc que > vai ficar off line não. Vai ser vários. E entre esse meio tempo os pc´s on > line serão alimentados e tal. > > Obrigado. > > T+ > > ---------------------------------------------------------- > Rafael jorge alves (Analista/desenvolvedor) > > www.sistemafocus.com.br > sistema focus de gestão comercial e serviços em informatica. > ---------------------------------------------------------- > > [As partes desta mensagem que não continham texto foram removidas] > > __________________________________________________________ > Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! > http://www.amigosdomessenger.com.br/ > > -- ---------------------------------------------------------- Rafael jorge alves (Analista/desenvolvedor) www.sistemafocus.com.br sistema focus de gestão comercial e serviços em informatica. ---------------------------------------------------------- [As partes desta mensagem que não continham texto foram removidas] __________________________________________________________ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/ _ --------------------------------- Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]