GARANTIR DESCONTO

Fórum trigger não funciona #46207

22/08/2004

0

Pessoal criei um banco de dados em firebird 1.5 e dentro criei triggers para funcionar como autoincremento mas não consigo que funcione.

Estou usando o delphi 7 com dbexpress e o componente tsimpledataset montei um formulario simples com um dbdgrid um dbnavigator e um buttom para chamar o appyupdates mas não funciona tentei usar os metodos padroes com um sqlconnetion um tsqlquery, tdatasetprovider, um tclientdatase e um datasource no mesmo formulario mas tb não funcionou. ele gera a mensagem de que o campo não pode estar vazio já que ele é um campo indice

Por Favor me Ajudem estou disesperado :cry:


Mhdragon-rs

Mhdragon-rs

Responder

Posts

22/08/2004

Vinicius2k

Colega,

Como vc está usando trigger + generator para auto-incrementar, o campo só irá receber o valor quando na inserção efetiva no banco, por este motivo, vc precisa setar a propriedade [b:83cdda0282]Required[/b:83cdda0282] do TField em questão para [b:83cdda0282]False[/b:83cdda0282]...

Espero ter ajudado...
T+


Responder

Gostei + 0

22/08/2004

Mhdragon-rs

vinicius como eu faço isso?
eu coloquei false como vc disse no campo dentro simpledataset mas não funcionou usando a mesma dinamica de formluario simples que passei


Responder

Gostei + 0

22/08/2004

Gandalf.nho

Tente pôr False no campo no SQLQuery.


Responder

Gostei + 0

22/08/2004

Vinicius2k

À princípio (pq não trabalho SampleDataSet) é só isso que precisa ser feito... Se fosse numa arquitetura convencional com DataSet+Provider+ClientDataSet vc precisaria setar a propriedade do TField do DataSet e no ClientDataSet, mas no caso no SimpleDataSet não vejo onde mais poderia estar o problema...

Outra possibilidade é de que sua trigger não esteja funcionando realmente, ou seja, não esteja sendo disparada, o que é muito difícil, mas vc poderia colocar aqui o código dela ?

Esta seria uma trigger simples usada para auto-incremento :
CREATE TRIGGER TRG_CLIENTES_ID FOR CLIENTES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.IDCLIENTE IS NULL) THEN
    NEW.IDCLIENTE = GEN_ID(GEN_CLIENTES_ID,1);
END
^


Veja se percebe alguma diferença para a sua...

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar