ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Atualização Automática (dbExpress)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rogerio.ap.soares
Novato
Novato


Registrado: Sexta-Feira, 6 de Março de 2009
Mensagens: 2

MensagemEnviada: Qui Nov 17, 2011 1:25 pm    Assunto: Atualização Automática (dbExpress) Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Nov 17, 2011 1:45 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB