Bom dia! Eu trabalho da seguinte forma:
1. Para cada alteração de DDL no banco de dados eu crio um script 2. Coloco o nome do script como número de versão do sistema, exemplo 1.7.72.0. 3. Altero a versão do executável para 1.7.72.0, combinando desda forma com a última atualização. 4. Guardo no banco de dados em um registro o número da versão do sistema, no último comando do arquivo de script, exemplo update empresa set nuversao = '1.7.72.0'; commit work; Desda forma tenho trabalhado tranquilamente mas ainda tenho um problema. Criei um executor do script que pega cada comando sql e então executa no banco de dados com o comando "ExecuteDirect" do sqlconnection. E quando ele encontra uma situação como a debaixo SET TERM ^ ; ALTER TRIGGER pedido_before_delete active before delete position 0 AS BEGIN DELETE FROM ITPEDIDO WHERE ITPEDIDO.CDPEDIDO = OLD.CDPEDIDO; delete from aprovacao where aprovacao.cdpedido = old.cdpedido; END ^ SET TERM ; ^ dá o seguinte erro: Project Atualizador.exe raised exception class EDatabaseError with message 'Token unknown - line 1, char 5 TERM Alguém poderia me ajudar? Lembrando que um cliente pode ficar muito tempo sem atualizar o sistema e então ter que rodar vários scripts. Desde já agradeço. Em 9 de março de 2010 11:08, Nazareno Neto <nazareno.nobr...@gmail.com>escreveu: > Se vc for direto no cliente, tu pode levar uma copia do banco mais atual e > usar um comparador de banco, tipo o DataBaseComparer, lembrando q este nao > eh free para uso comercial! > > Em 9 de março de 2010 09:23, Dirlei <dir...@gmail.com> escreveu: > > > > > > > Eu resolvo esta questão "versionando" os databases. À cada alteração no > > Database, incremento a versão e gero um script de upgrade, que é > > executado automaticamente pelo sistema nos clientes quando libero uma > > atualização de versão. > > > > Há um email onde expliquei mais detalhadamente como faço isso, procure > > pelo assunto "Atualização de software". > > > > Dirlei. > > > > Felipe Lopes escreveu: > > > > > > > > > > > Gostaria muito de sugestões ao assunto relacionado > > > > > > Alguém possui? > > > > > > De: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > > > <mailto:delphi-br%40yahoogrupos.com.br<delphi-br%2540yahoogrupos.com.br> > <delphi-br%2540yahoogrupos.com.br>> > > > > > [mailto:delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > > > <mailto:delphi-br%40yahoogrupos.com.br<delphi-br%2540yahoogrupos.com.br> > <delphi-br%2540yahoogrupos.com.br>>] > > Em > > > > > nome de Fellipe Henrique > > > Enviada em: terça-feira, 2 de março de 2010 11:41 > > > Assunto: [delphi-br] Como vocês comparam o banco de dados oficial com > > > os dos > > > seus clientes? > > > > > > Amigos, aqui nós usávamos o Clever Components DBComparer.... onde ele > > > comparava o script da versão oficial do sistema, com a que o cliente > > > tem, e > > > fazia as modificações necessárias... o problema é que este componente > > está > > > parado desde 2006, ou seja, com o firebird novo, muita coisa está de > > > fora.. > > > o que vez e outra, está trazendo problemas nas atualizações... > > > > > > Então venho perguntar aos amigos.. como vocês realizam os updates dos > > > bancos > > > nos clientes? como controlam isso? > > > > > > Att. > > > > > > -- > > > _________________________________ > > > T.·.F.·.A.·. > > > Fellipe Henrique > > > > > > > > > > > -- > Nazareno Neto > Desenvolvedor Delphi e Firebird > > http://www.delphisistemas.com.br > nazarenon...@delphisistemas.com.br > nazareno.nobr...@gmail.com > > > [As partes desta mensagem que não continham texto foram removidas] > > > > ------------------------------------ > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > [As partes desta mensagem que não continham texto foram removidas]