Fórum Zeos Autoincremento #287737
12/07/2005
0
Bom dia,
Estou testando o componente de acesso à BD ZEOS (Delphi 6 + Interbase 6). Tenho uma trigger utilizada para incrementar um campo código (new.campo = gen_id(generator,1)).
Acontece que a trigger executa mas o código não é atualizado automaticamente! Se fecho e abro o programa novamente, o código aparece atualizado.
Alguém já trabalhou com zeos e tem uma solução para isso?
[color=green:0a3c2b7785]Título editado por gandalf.nho. Favor não postar em maiúsculas.[/color:0a3c2b7785]
Estou testando o componente de acesso à BD ZEOS (Delphi 6 + Interbase 6). Tenho uma trigger utilizada para incrementar um campo código (new.campo = gen_id(generator,1)).
Acontece que a trigger executa mas o código não é atualizado automaticamente! Se fecho e abro o programa novamente, o código aparece atualizado.
Alguém já trabalhou com zeos e tem uma solução para isso?
[color=green:0a3c2b7785]Título editado por gandalf.nho. Favor não postar em maiúsculas.[/color:0a3c2b7785]
Outl@w
Curtir tópico
+ 0
Responder
Posts
12/07/2005
Outl@w
sobe
Responder
Gostei + 0
13/07/2005
Jener
Colega, primeiramente gostaria de lhe passar uma dica que recebi qdo comecei a trabalhar com Delphi (ainda na versão 3). No que se trata de acesso a dados use sempre os componentes nativos da IDE. No entanto uma tangente seria fazer o auto-incremento em sua própia aplicação (É o que sempre faço).
Ex.:
Try
Begin
With QryCentroCusto do
Begin
Active:=False;
SQL.Clear;
SQL.Add(´Select * From CENTROCUSTO´);
Active:=True;
If IsEmpty then
Codigo:=1
Else
Begin
Active:=False;
SQL.Clear;
SQL.Add(´Select Max(Cast(Codigo as Integer))´);
SQL.Add(´From CENTROCUSTO´);
Active:=True;
Codigo:=FieldByName(´Max´).AsInteger+1;
End;
End;
TxtCodigo.Text:=FormatFloat(´000000´,Codigo);
End
Except
Begin
Application.MessageBox(´Não foi possível iniciar um novo registro. A operação será cancelada.´,´Novo´,MB_OK+MB_ICONWARNING);
BtnCancelar.Click;
End;
End;
Ex.:
Try
Begin
With QryCentroCusto do
Begin
Active:=False;
SQL.Clear;
SQL.Add(´Select * From CENTROCUSTO´);
Active:=True;
If IsEmpty then
Codigo:=1
Else
Begin
Active:=False;
SQL.Clear;
SQL.Add(´Select Max(Cast(Codigo as Integer))´);
SQL.Add(´From CENTROCUSTO´);
Active:=True;
Codigo:=FieldByName(´Max´).AsInteger+1;
End;
End;
TxtCodigo.Text:=FormatFloat(´000000´,Codigo);
End
Except
Begin
Application.MessageBox(´Não foi possível iniciar um novo registro. A operação será cancelada.´,´Novo´,MB_OK+MB_ICONWARNING);
BtnCancelar.Click;
End;
End;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)