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]

Responder a