ATULIZACAO DE BANCO DE DADOS ACCES 97

MITO 07/02/2013 09:42:13
#418935
Boa dia pessoal

Seguinte: todas vez que faço uma alteração em um banco de dados acces 97, crio tabelas novas, crio campos em tabelas existentes, mas para atualizar um banco de um cliente, tenho que fazer tudo isso de novo no banco dele, existe algum meio de fazer isto automaticamente, com o proprio acces ?

Se alguem souber por favor me passe as dicas !

Sds,

Mito
LUIS.HERRERA 07/02/2013 09:55:35
#418937
Eu criei um pequeno aplicativo de migração de dados.
Ao fazer a atualização do sistema, envio somente os bancos que sofreram alterações (tenho 11) e oriento o cliente no procedimento.
- criar uma pasta no micro local
- tirar o sistema do [Ô]AR[Ô]
- mover somente os bancos afetados na atualização para esta pasta
- colocar nela os bancos limpos enviados e o aplicativo de migração
- rodar o aplicativo que migra os dados em alguns segundos

O funcionamento do prgrama é simples, você carrega todos os dados de uma tabela (por ordem claro para não se perder e cobrindo também os relacionamento entre elas, ou seja da principal para as secundárias.
Depois faz um loop para gravar os dados no novo banco. isso para todas as tabelas.

Funciona perfeitamente.
MITO 07/02/2013 10:27:07
#418939
Luiz e como faço para ter este aplicativo ?

Sds,

Ademilço
FEDERHEN 07/02/2013 11:02:25
#418943
Resposta escolhida
Crie um campo de controle de versão em uma tabela do banco de dados
Ao entrar no projeto, teste se a versão do projeto é maior que a versão do banco e quando for, chame uma rotina para atualização de banco.

Na rotina para atualização de banco,...
1) você pode criar tabela
SQL = [Ô]CREATE TABLE Tabela1([Ô] & _
[Ô]Docum Text(10) Not Null, [Ô] & _
[Ô]Seq Integer Not Null, [Ô] & _
[Ô]Valor Double Default 0,[Ô] & _
[Ô]PRIMARY KEY (Docum,Seq))[Ô]
Conexao.Execute SQL

2) você pode alterar tabela
Conexao.Execute [Ô]Alter Table Tabela Add Column Campo1 Integer Default 0[Ô]
Conexao.Execute [Ô]Update Tabela Set Campo1 = 0 Where Campo1 is Null[Ô]

3) você pode excluir campos da tabela
Conexao.Execute [Ô]Alter Table Tabela2 Drop Column Campo1[Ô]

4) você atualiza a versão do projeto no campo de controle de versão do banco
Tópico encerrado , respostas não são mais permitidas