Criar Trigger via TXT, alguem tem alguma sugestão?

01/03/2006

ola amigos.

Criei um rotina para atualizar o programa dos meus clientes, sem precisar sair de casa, qdo preciso fazer qualquer atualização no banco de dados do cliente eu mando um arquivo .txt e ele importa no sistema.

Commandos como CREATE, DROP, DELETE , ALTER, dão certo, só que nao consigo criar um TRIGGER pelo txt, eu faço assim

query1.sql.loadfromfile(´arquivo.txt´);
query1.ExecSql;

alguem tem alguma sugestão de como posso fazer para criar um trigger, via arquivo?


Daniel Martins

Respostas

01/03/2006

Gandalf.nho

Qual o banco de dados e componente de acesso que vc usa?


Responder Citar

01/03/2006

Daniel Martins

oi,
utilizo Interbase com conexões DBXpress, tbm já tentei com o IBSQL1 para fazer. e nao deu.
será que tem como fazer um trigger no IB pelo delphi?


Responder Citar

01/03/2006

Gandalf.nho

O DBExpress não tem componente para isso. Vc pode ou usar o IBScript da paleta IBX ou usar diretamente o utilitário de linha de comando Isql.


Responder Citar

01/03/2006

Daniel Martins

tem esse componente para delphi 6?


Responder Citar

01/03/2006

Gandalf.nho

Sim, mas vc precisa atualizar seu IBX para conseguir o IBScript


Responder Citar

02/03/2006

Michael

Embora entre os componentes [b:267d3332eb]dbExpress [/b:267d3332eb]não exista um específico para a execução de comandos SQL no banco, como o [b:267d3332eb]TIBSQL[/b:267d3332eb], vc pode usar os métodos [b:267d3332eb]Execute [/b:267d3332eb]e [b:267d3332eb]ExecuteDirect [/b:267d3332eb]da classe [b:267d3332eb]TSQLConnection[/b:267d3332eb], obtendo o mesmo resultado.

A diferença entre os dois métodos é que o primeiro aceita parâmetros no comando SQL, e o segundo não.

Ah, estas rotinas não geram overhead no banco.

[]´s


Responder Citar

02/03/2006

Daniel Martins

Valeu Galera!

Consegui Resolver o meu problema, utilizei o IbScript para rodar os commandos na maquina do cliente.
RelaCionado ao Trigger aconteceu o Seguinte:
eu estava utiliando este comando no txt para criar um trigger no banco de dados, mas ele apresentava erro.
SET TERM !! ;
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
BEFORE INSERT AS
BEGIN
NEW.CUST_NO = GEN_ID(CUST_NO_GEN, 1);
END !!

SET TERM ; !!


dai eu tirei os SETs e ficou assim:
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
BEFORE INSERT AS
BEGIN
NEW.CUST_NO = GEN_ID(CUST_NO_GEN, 1);
END 


Dai Funcionou direitinho, criou o trigger corretamente. solucionando assim o meu pobrema!

Agradeço a todos que postaram e ajudaram valeus msm!


Responder Citar