UNIR BANCO DE DADOS - HELP!

MHDSERAFS 25/10/2011 02:05:15
#387653
Galera... - help!!
Possuo 2 notbooks e em cada um deles esta o sistema, eles não estão em rede
tambem tenho um servidor local

no servidor tambem possui o sistema...
simplificando: o mesmo sistema esta em 3 lugares diferentes com cada banco = 3 bancos diferentes

gostaria de criar uma função onde ao clicar no botão [Ô]enviar servidor[Ô] os dados do banco que esta no notebbok vão para o servidor, mas neste caso eu quero adicionar os dados do banco do notebook no banco no servidor
acho que para melhor entender eu quero unir dois bancos

precuso disto por que os notebooks vão estar na rua e sem internet e quando o funcionario voltar para a empresa ele conecta a rede via wi-fi e ai transere os dados dos sistema do notebook para o servidor

banco access ou sql

grato

NICKOSOFT 25/10/2011 06:58:12
#387656
pq nao faz a leitura de registro por registro do bd do note e vai inserindo registro por registro no bd do servidor
bem primitivo e pratico
RXGOMES 25/10/2011 10:32:12
#387675
Bom, não sabendo do é a regra de negócio e a estrutura do banco, fica um pouco complica, a solução data pelo NICKOSOFT é válida sim, se você conseguir filtrar os registros novos, senão você pode implementar uma rotina na aplicação e gera os script de manipulação de dados em txt, depois so executa os scripts no servidor da empresa.

Um ponto de atenção como tem mais de um usuário offline pode existe a possibilidade cada usuário poder alterar um determinado registro com informações diferente, ai temos que defini qual será a informação correta.
NICKOSOFT 25/10/2011 12:04:19
#387697
se for levar tudo ao pe da letra, teria q ter um campo chave c dados sobre o instante da gravacao, alteracao do registro, pra servir até como criterio de busca se os registros foram alterados em relacao ao q tem no bd do servidor...
tem toda uma grande logica nessa atualizacao dos dados, assim como teria q ver se algum dos dados q tem nos notes, foi alterado posterior a criacao e no servidor, pra serem retornados as estacoes...
sincronizar isso tudo nao é facil, mas nada de outro mundo tmb...
seria fundamental ter um campo com as informacoes sobre o instante da criacao do registro pra comparacao sobre qual é mais atual e atualizar ao inves de ficar criando registros repetidos...
AJSO 25/10/2011 12:43:30
#387705
Se for SQL server faça um JOB;

Se For Oracle Faça DBLink;

Já MySql, FireBird e PostGreSql faça uma replicação

Nestes modelos acima vc garante a integridade de cada banco.

E ainda uma terceira opção seria se teu servidor for 2008 pode sincronizar Server com Client para replicação de dados de seus terminais........


Boa Sorte.
PROFESSOR 25/10/2011 12:49:07
#387708
Resposta escolhida
Em Access, você terá um trabalho um pouco maior.

De qualquer modo, neste tópico, uma coisa parece ter sido esquecida:

Os bancos de dados dos notebooks, após os notebooks atualizarem o central, vão precisar ser atualizados com todos os dados do central. Em outras palavras, a sincronização é uma rua de mão-dupla.

O Visual Studio tem ferramentas permitem lidar com bases de dados locais DE ESPELHAMENTO (Local Database Cache), ou seja, uma base SQL Server CE replicada á partir de um servidor SQL, e essas ferramentas incluem a sincronização de catálogos á um servidor central. No conjunto, não é nada de outro mundo, mas é sempre bom dar uma estudada antes. A maior parte do trabalho é feita sem o programador nem participar, mas como sempre, nem tudo são flores.

Veja este tópico no MSDN.
MHDSERAFS 25/10/2011 13:24:20
#387712
professor falou tudo...
isso mesmo que preciso
VELDRAME 25/10/2011 13:41:13
#387713
O sistema de captura de senha funciona igual.
A policia pegou diversos NETBOOK instalados em caixas eletronicos que quando o cara chegava procimo ele atualizava a base sem precisar chegar proximo ao netboook instalado ao caixa.
Não estou acusando ninguém, só recordando o fato.

Mas vamos lá...

1) Leia o registro que você ira transmitir (ele deve ter um campo ID)
2) Na base do Server deve haver um campo que você possa gravar o ID do Cliente e a identificação do Notebook origem
3) O sistema ira fazer um filtro:
rs.open [Ô]Select NB,ID_Origem from base where NB = [ô]Cliente_01[ô] and ID_Origem = 100[Ô]
if rs.oef then
Grava a nova informação no server
rs.move.next
end if
rs.close
Ai é só você implementar um loop para rodar a base.
O ideal é você fazer com que o Cliente armazene qual o último ID que ele gravou para não tem te rodar as duas bases inteiras, ou seja, começar de onde parou.
Você poderá tem um gasto de tem consideravél, dependendo dos equipamentos.
Você pode fazer o inferso também.
Tópico encerrado , respostas não são mais permitidas