Fórum Como fazer um auto inclemento no delphi. #353393
09/02/2008
0
Tenho um programa que utiliza o interbase 6.5.
E quero que quando o usuario der um clique no botão de inserir, o delphi verifica qual o último cod_cliente cadastrado no banco e inclemente mais 1.
Teste: Já utilizei o generator do Interbase e depois o geratorField do IBDataSet, mas se caso vc cancelar o cadastro, ele não desfaz este inclemento.
Tem como esta contornando isto? Tem alguma outra maneira facil que fazer este auto inclemento?
Obrigado.
Uelinton
Uelinton_reis
Curtir tópico
+ 0Posts
09/02/2008
Edilcimar
SQL.Add(´Set generator Tabela_Campo_GEN to ´ + NumeroDesejado)
isto vc pode utilizar pegando o número que foi gerado no cancelamento e decrescer 1 unidade
Gostei + 0
10/02/2008
Ulisses.lima
Bom dia, Cebolinha!
O que você está querendo é um INCREMENTO.
Pode fazer isso, criando um gatilho (trigger) na sua tabela.
Crie um novo Trigger na tabela e adapte o código abaixo:
if (NEW.Seu_Campo is Null) then
begin
Select Coalesce(Max(Seu_Campo ),0)+1 from Sua_Tabela
into NEW.Seu_Campo ;
end
Boa sorte.
Ulisses
Gostei + 0
11/02/2008
Gandalf.nho
Gostei + 0
11/02/2008
Edilcimar
Gostei + 0
12/02/2008
Fonsecd
If DataMod.DsCliente.State = DsInsert Then
Begin
DataMod.QueryContCli.Active := False;
DataMod.QueryContCli.Active := True;
With DataMod.QuerContCli.Fields[0] do
If IsNull Then
TabClientesCli_Codigo.Value:= 1
Else
TabClientesCli_Codigo.Value := AsInteger + 1;
End;
Então toda vez que vou inserir um registro nessa tabela, o código que recebo no campo código do cliente é sempre o maior mais um!
Abraço!
Gostei + 0
13/02/2008
Paullsoftware
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)