AutoIncrement na inserção do registro.

Delphi

07/06/2004

Com um campo autoincrement, posso fazer a inserção de novos registros sem problema, mas o número sequente só aparece quando o registro é salvo. Existe alguma maneira de número aparecer na inserção do registro?


Lira

Lira

Curtidas 0

Respostas

Poeta Noturno

Poeta Noturno

07/06/2004

Se você estiver usando interbase/firebird para essa tarefa, faça o seguinte: crie uma função para ler o generator que guarda o valor do seu campo código (por exemplo). Para ler, faça o seguinte:

function CodigoCliente(Novo: Boolean) then
var
ResultSet: TCustomSQLDataSet;
SQLStmt: string;
begin
if Novo then
SQLStmt := ´select gen_id(CRIAR_COD_CLI, 1) as VALOR from RDB$DATABASE;´
else
SQLStmt := ´select gen_id(CRIAR_COD_CLI, 0) + 1 as VALOR from RDB$DATABASE;´;
ResultSet := nil;
try
tbls.Impress.Execute(SQLStmt, nil, @ResultSet);
if Assigned(ResultSet) then
Result := ResultSet.fieldByName(´Valor´).AsInteger;
Finally
ResultSet.Free;
end;

Aqui novo representa se você está apenas lendo ou incrementando o generator.

OBS: Não esqueça de declarar SQLExpr para esse função rodar legal ok?

Espero ter ajudado.

Um abraço

Poeta Noturno


GOSTEI 0
POSTAR