Fórum Gerar Código (ultimo 1) #280123

04/05/2005

0

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.


Marrecotk

Marrecotk

Responder

Posts

04/05/2005

Gandalf.nho

Se a idéia é incrementar o campo chave não seria melhor usar generator?


Responder

Gostei + 0

04/05/2005

Vitorbrando

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!!!!!


Responder

Gostei + 0

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

Aceitar