AJUDA COM ATUALIZACAO DE BANCO DE DADOS

 Tópico anterior Próximo tópico Novo tópico

AJUDA COM ATUALIZACAO DE BANCO DE DADOS

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#281152 - 11/09/2008 22:34:09

CARINHENA
SOROCABA
Cadast. em:Junho/2004


Pessoal, eu tinha um sistema em vb6 e migrei totalmente para .net, até ai, tudo bem.
Porem, a base antiga eram 5 bancos mdb, que agora, transformei em apenas 2.

Porem no banco novo, tem alguns itens a mais.

Então minha duvida é:

Qual a maneira mais fácil de importar os registros de uma tabela de um banco para outro?

Por exemplo, no banco A tenho a tabela  CadastroDeClientes , e no banco  B  tenho uma tabela igual, só que com alguns campos a mais, então, como passar todos os registros do tabela  CadastroDeClientes  do banco A para a tabela  CadastroDeClientes  do Banco B?

O banco é Acces 2000.


Carinhena

A melhor forma de aprender e ensinando!


#281160 - 12/09/2008 00:21:06

USUARIO.EXCLUIDOS

Cadast. em:


Se nao for mais do que 65000 vc poderia utilizar o excel para copiar os dados e deixá-los no mesmo formato da tabela nova.

Obviamente que os campos novos vc precisa permitir que aceitem nulo.

Após isto pode simplesmente copiar e colar do excel para o access.

Não é o único meio, mas é o que vc pode ajeitar com mais facilidade as colunas antes de importar.

Atraves de comandos SQL direto de uma base para a outra precisa estar muito ciente do que faz, pois apertou enter vai tudo sem perdão.

Agora não entendo ao certo por que vc precisa utilizar 2 arquivos .mdb no seu sistema, se for uma questão de limite de 2GB do tamanho da base em access ou por segurança dos dados um SGBD free tal qual SQL Server 200X Express seria mais recomendável.

Não trabalho a algum tempo com access em produção, mas acredito que ele tenha alguma opção do tipo obter dados externos ou coisa do tipo, mas isto nao sei usar.




#281169 - 12/09/2008 08:11:46

THIAGO_CC
CAMPINAS
Cadast. em:Novembro/2005


CARINHENA,

Faça a consulta no access com todos os campos que vc ira utilizar e peça para criar uma nova tabela com os dados, é mais rápido,e fácil de utilizar.

Thiago




#281196 - 12/09/2008 10:24:45

CARINHENA
SOROCABA
Cadast. em:Junho/2004


Emerson, ele acabou de ser migrado.
O próximo passo, depois, é migrar para firebird.

Thiago
É justamente o que estou pensando em fazer.
Mas, não sei ainda como jogar via sql tudo de uma tabela de um banco para a tabela de outro...

tem algum exemplo?


Carinhena

A melhor forma de aprender e ensinando!


#281268 - 12/09/2008 17:02:10

USUARIO.EXCLUIDOS

Cadast. em:


Carinhena, através do Acess, abre o BD para o qual queres transportar os dados.
Vai em Importar Dados Externos, e aponta o BD  Tabela de onde queres importar os dados.

Para maior segurança, faz antes uma cópia dos dois BD e trabalha com eles.

Espero ter ajudado




#281269 - 12/09/2008 17:06:47

CARINHENA
SOROCABA
Cadast. em:Junho/2004


O problema é que gostaria de fazer isso de forma automática e não via Acces.

Que o sistema mesmo, fizesse esse upgrade, sem que o usuário faça alguma coisa.

Mas... pelo jeito... não vai rolar =(



Carinhena

A melhor forma de aprender e ensinando!


#281271 - 12/09/2008 17:15:10

USUARIO.EXCLUIDOS

Cadast. em:


Última edição em Editado em 12/09/2008 17:18:08 por POGGETTI por

Bom, tem a forma SQL   INSERT (descrição dos campos) INTO (nome da tabelaNOVA) FROM (nome da tabela antiga)

O problema é que são BD diferentes. Teria que testar se funcionaria colocando o nome do BD.NOmeTabela.Campo.



Resposta escolhida #281326 - 13/09/2008 11:29:25

ROBIU
CANDEIAS
Cadast. em:Julho/2004


É possível sim. O processo é o seguinte:

1 - Monta a Sql com os campos na ordem que esta na tabela do banco novo(B). Ex: Sql= Select Campo1, campo2,etc...

2-Abre o banco Antigo (A) - Ex: Rs.Open Sql ...
3- Ativa a conexão com o banco Novo (B) (Cnn)
4- Monta a sql2. Note que devemos observar os tipos de campos para inserir os caracteres adequados na sql ([ô],#,etc).Quando não houver campos correspondentes no rs, coloca o valor 0 ou   .Observe que como não definimos os campos da tabela B, devemos colocar os valores de todos os campos e na ordem que os campos se encontram na tabela:
Sql2=  Insert Into Tabela Values([ô]
sql2=sql2 & Rs(0) &  [ô],[ô]  
sql2=sql2 & Rs(1) &  [ô],[ô]
sql2..
.
.
.
  

Usa o metódo execute do cnn do banco B

Cnn.Execute Sql2

Pronto.


Roberto Martins

#281441 - 14/09/2008 23:21:46

LCSD
SAO PAULO
Cadast. em:Janeiro/2001


Sugiro que faça um Select Into... É mais fácil e mais rápido... A sintaxe seria essa:
Select A,B,C,D,E,F
Into TabelaDestino
From TabelaOrigem

Para se conectar com a base antiga, use um método chamado  Anexar base de dados externa . Há um tempo atrás colokei uma forma de criar uma conexão  ponte  com dois MDB[ô]s... É só dar uma lida por aí!


  
Quando precisar, pode contar comigo....
E quando precisar, não esqueça de agradecer, pois a educação é a ALMA DO NEGÓCIO...


Obrigado.

Luiz Cesar

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por WEBMASTER em 18/08/2009 10:03:45