Gerar Código (ultimo 1)
Olá pessoal..
Preciso q vc´s me ajudem a resolver essa função, ou me sugiram outra. A função é a seguinte:
-----------------------------------------------------------------------------
Function TDmBaseDados.GERA_NUM2(tabela:TIBTable;campo:string):string;
var {Novo_Num,}N:string ;
{Tamanho,}x:Integer;
begin
tabela.Last;
if tabela.RecordCount=0 then
begin
X:=tabela.FieldByName(Campo).AsInteger;
x:=0+1;
N:=inttostr(x);
GERA_NUM2:=N;
end
else
begin
X:=tabela.FieldByName(Campo).AsInteger;
x:=X+1;
N:=inttostr(x);
GERA_NUM2:=N;
end;
End;
-------------------------------------------------------------------------------
soh q qndo é o primeiro código, ela dah erro de ´´ is not valid integer value...
Conto com vc´s.
Valew.
Preciso q vc´s me ajudem a resolver essa função, ou me sugiram outra. A função é a seguinte:
-----------------------------------------------------------------------------
Function TDmBaseDados.GERA_NUM2(tabela:TIBTable;campo:string):string;
var {Novo_Num,}N:string ;
{Tamanho,}x:Integer;
begin
tabela.Last;
if tabela.RecordCount=0 then
begin
X:=tabela.FieldByName(Campo).AsInteger;
x:=0+1;
N:=inttostr(x);
GERA_NUM2:=N;
end
else
begin
X:=tabela.FieldByName(Campo).AsInteger;
x:=X+1;
N:=inttostr(x);
GERA_NUM2:=N;
end;
End;
-------------------------------------------------------------------------------
soh q qndo é o primeiro código, ela dah erro de ´´ is not valid integer value...
Conto com vc´s.
Valew.
Marrecotk
Curtidas 0
Respostas
Gandalf.nho
04/05/2005
Se a idéia é incrementar o campo chave não seria melhor usar generator?
GOSTEI 0
Vitorbrando
04/05/2005
Cara você pode usar uma query também, nela você busca o MAX (maior registro daquele campo), e depois é só acresentar mais um.
Assim
with query1 do
begin
if active then close;
SQL.clear;
SQL.Add(´select max(campo)´);
SQL.Add(´from tabela´);
open;
end;
Esse código vai retornar o registro com maior valor do seu campo código.
Ai é só você acrescentar 1.
novo_cod := query1.fieldbyname(´max(campo)´).AsInteger + 1;
Flw!!!!!
Assim
with query1 do
begin
if active then close;
SQL.clear;
SQL.Add(´select max(campo)´);
SQL.Add(´from tabela´);
open;
end;
Esse código vai retornar o registro com maior valor do seu campo código.
Ai é só você acrescentar 1.
novo_cod := query1.fieldbyname(´max(campo)´).AsInteger + 1;
Flw!!!!!
GOSTEI 0