Array
(
)

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

Daniel Martins
   - 01 mar 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?


Gandalf.nho
   - 01 mar 2006

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


Daniel Martins
   - 01 mar 2006

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?


Gandalf.nho
   - 01 mar 2006

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.


Daniel Martins
   - 01 mar 2006

tem esse componente para delphi 6?


Gandalf.nho
   - 01 mar 2006

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


Michael
   - 02 mar 2006

Embora entre os componentes dbExpress não exista um específico para a execução de comandos SQL no banco, como o TIBSQL, vc pode usar os métodos Execute e ExecuteDirect da classe TSQLConnection, 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


Daniel Martins
   - 02 mar 2006

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.
#Código


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:
#Código

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!