Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como Chamar Trigger pelo Delphi 7 Para Fazer o Autoincreme


Ricardo25

Pergunta

Olá! Gostaria de saber como chamar pelo Delphi um Trigger que tem a função de gerar um código automaticamente para inserir numa tabela que criei em Firebird.

Eu criei um generator chamado gen1 e criei um Trigger:

CREATE trigger TRIG1 for CLIENTE

active before insert position 0

As

BEGIN

if (NEW.CODIGO IS NULL) then

NEW.CODIGO = GEN_ID (TRIG1, 1);

END

No programa que eu criei em Delphi, tem a tela de cadastro normal, mas eu quero que não seja necessário digitar nenhum código no DBEdit1. Quero chamar essa trigger pra ela adcionar o código automaticamente quando eu clicar em "Novo Cadastro".

Eu utilizo um ClientDataSet pra fazer conexão com o Firebird.

É possível chamar esse Trigger usando ClientDataSet?

Minha conexão do Delphi com Firebird é feita usando um SQLConection, SQLDataSet, DataSetProvider, ClientDataSet, DataSource.

Eu estou perguntando porque quando eu faço um cadastro, sempre da a mensagem de erro dizendo que precisa inserir o campo código no banco. Me disseram que era só fazer esse trigger, um generator, e quando eu fosse adcionar um novo registro não precisaria digitar valor nenhum no DBEdit. Mas não está dando certo.

Como ficaria isso? Alguém poderia me ajudar? Estou quebrando cabeça a um tempão pra tentar inserir o código automaticamente.

Obrigado!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Esta duvida já foi discutida aqui a 1 mes atras!

Seu dia de sorte!

Problemas com ID Firebird

falou e ate mais!

Bom dia!

Pelo que eu entendi, tem que desativar algo no Delphi, não é?

Você disse:

No component CLIENDDATASET

adicione todos os campos

depois va na propriedade "ProviderFlags" e desmarque pfInUpdate

e na propriedade "Required" deixe em false;

dai quando você for salvar seus dados o campo ID não sera mais obrigatorio!

Mas onde fica esse "ProviderFlags"??? Eu não encontrei isso no Delphi. Teria como explicar melhor?

E o Ronaldo do outro post disse que teve que fazer isso no SQLDataSet também, é isso mesmo? Tem como me explicar melhor onde encontro essas propriedades para modificá-las? Obrigado!

Se alguém mais souber e puder ajudar, eu agradeço também!

Link para o comentário
Compartilhar em outros sites

  • 0
a Propriedade ProviderFlags fica no campo, você tem que clicar no campo que você adicionou e nele você terá essa opção.

Abraços

Ah tá, consegui encontrar o ProviderFlags e alterei a opção de required para false. Mas ainda tava dando erro no ApplyUpdate do Insert. Tava dando erro de código duplicado.

Aí eu fui lá no generator do banco de dados e zerei ele.

Testei o programa de novo e agora tá perfeito. Inserindo códigos automaticamente usando o Trigger! :lol:

Vlw aê a ajuda galera!!! Abraço!!!

Editado por Ricardo25
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...