 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
rogerio.ap.soares Novato

Registrado: Sexta-Feira, 6 de Março de 2009 Mensagens: 2
|
Enviada: Qui Nov 17, 2011 1:25 pm Assunto: Atualização Automática (dbExpress) |
|
|
Utilizando o Delphi XE com Firebird e MSSQL, decidimos embutir o script de criação e atualização do banco de dados no executável da aplicação, e frente a isso, fazer isso das classes DBX Metadata.
Acontece que não encontramos um modo de atualizar tabelas já existentes na base de dados, apenas criar novas. Nos testes que realizamos, o comando CreateTable do provider apenas (e realmente) cria a tabela, não conseguindo nós criar novas colunas em tabelas existentes.
Existe o comando AddColumn, mas este cria o vínculo da coluna apenas em memória, cabendo ao provider (TDBXMetadataProvider) aplicar essas atualizações ao BD.
Mas quando temos uma tabela já existente na base de dados, e precisamos adicionar uma nova coluna, índice, chaves, etc., temos que no final, aplicar essa atualização com o comando CreateTable, presente no provider, mas que é gerada uma exceção se a tabela já existe...
Precisaria de algo como ALTER TABLE, ou falando em método, algo como UpdateTable, para aplicar as mudanças.
Acreditem, já procuramos bastante, mas os exemplos demonstram apenas a criação do banco de dados, mas não apresentam a devida manutenção do dia-a-dia...
Penso que, se não há um modo de fazer isso, se ninguém faz essas atualizações COM O FRAMEWORK, de nada vale o recurso de metadata, se foge as situações reais e necessárias do dia-a-dia. O que acham?
Alguém utiliza DBX metadata no dia-a-dia? Alguém passou por isso, ou tem essa experência?
Obrigado! |
|
| Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qui Nov 17, 2011 1:45 pm Assunto: |
|
|
Rodrigo isto é possivel sim, visto que vc pode fazer pelo ibexpert, ousar a ferramenta comparer e pegar os scripts para gerar as modificações do novo banco.
Neste caso tem as insturçao alter table, drop table e etc, alter table add campo varchar(60) e etc. e etc.
http://www.comunidade-firebird.org/cflp/downloads/CFLP_O012.PDF
Isto para outros bancos nao será tao diferente.
O melhor para vc gerar estas modificações é vc comparar o banco novo com o antigo e gerar as devidas instruções sqls, nõa faça isto manualmente, demora demais.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|