Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maneju

Trigger via Delphi

Recommended Posts

Olá amigos!O comando SQL utilizado diretamente no FireBird para gerar Triggers, pode ser executado por uma SQL pelo Delphi?Grato!Manoel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase todos os comandos usandos diretamente nos bancos podem ser executados diretamente pelo delphi.A maneira mais simples é colocar o comando na propriedade SQL de uma TQuery e chamar o método "ExecSQL".ex.: Query1.ExecSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase todos os comandos usandos diretamente nos bancos podem ser executados diretamente pelo delphi.

A maneira mais simples é colocar o comando na propriedade SQL de uma TQuery e chamar o método "ExecSQL".

 

ex.: Query1.ExecSQL;

<{POST_SNAPBACK}>

Olá Savionet!

 

Exatamente, estou usando da forma como você mencionou, veja abaixo:

 

StrSQL:= 'create trigger Manoel for MCC' + copy('000' + Edit7.Text,length('000'+ Edit7.Text)-2,3) + ' active before insert position 0 as begin new.CP000 = gen_id(GeraCodigo' + copy('000' + Edit7.Text,length('000'+ Edit7.Text)-2,3) + ',1); end';

ibdataset1.SelectSQL.Add (StrSQL);

ibdataset1.ExecSQL;

 

Meu problema é que, se não executar esta SQL, eu consigo criar tabelas e generators por programação. Se a uso, não ocorre mensagem de erro mas, não são criados tabelas, generators e triggers. Há algum motivo aparente pata isto?

Grato!

 

 

Manoel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase todos os comandos usandos diretamente nos bancos podem ser executados diretamente pelo delphi.

A maneira mais simples é colocar o comando na propriedade SQL de uma TQuery e chamar o método "ExecSQL".

 

ex.: Query1.ExecSQL;

<{POST_SNAPBACK}>

Olá Savionet!

 

Exatamente, estou usando da forma como você mencionou, veja abaixo:

 

StrSQL:= 'create trigger Manoel for MCC' + copy('000' + Edit7.Text,length('000'+ Edit7.Text)-2,3) + ' active before insert position 0 as begin new.CP000 = gen_id(GeraCodigo' + copy('000' + Edit7.Text,length('000'+ Edit7.Text)-2,3) + ',1); end';

ibdataset1.SelectSQL.Add (StrSQL);

ibdataset1.ExecSQL;

 

 

 

 

StrSQL:= 'create trigger Manoel for MCC' + copy('000' + Edit7.Text,length('000'+ Edit7.Text)-2,3) + ' active before insert position 0 as begin new.CP000 = gen_id(GeraCodigo' + copy('000' + Edit7.Text,length('000'+ Edit7.Text)-2,3) + ',1); end';

ibdataset1.SelectSQL.Add (StrSQL);

ibdataset1.ExecSQL;

 

 

Meu problema é que, se não executar esta SQL, eu consigo criar tabelas e generators por programação. Se a uso, não ocorre mensagem de erro mas, não são criados tabelas, generators e triggers. Há algum motivo aparente pata isto?

Grato!

 

 

Manoel

<{POST_SNAPBACK}>

 

Já descobri, era Manoel qu estava errado, deveria ser GeraCodigo' + copy('000' + Edit7.Text,length('000'+ Edit7.Text)-2,3)

 

Mesmo assim, obrigado!

 

Manoel

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.