Código
1º) Você deve inserir uma QUERY no seu form de cadastro que servira para selecionar o valor maximo Dê o nome de Qrymaximo;
2º) O campo que receberá o valor da chave de sua tabela pode ser um EDIT normal. }
Private
function gera_incremento(Query : Tquery) : string; // Query secundária Public //que trará o valor da chave
{Public Declarations}
Implementation
Function Tform1.gera_incremento(Query : Tquery) : string;
begin
queryactive := false;
query.sql.clear;
with query.sql do
begin
Add('SELECT MAX(chave) +1 AS Maximo FROM tabela');
end;
if (query.fieldbyname('maximo').asstring = '0')
then begin
query.fieldbyname('maximo').asstring := 1;
end;
result := query.fieldbyname('Maximo').asstring;
end;
{ Aí no evento BEFOREPOST da sua tabela ou query que grava as informações coloca o seguinte código: }
if (edit1.text = '')
then begin
dataset.fieldbyname('Chave').asstring := gera_incremento(qrymaximo);
end else begin
dataset.fieldbyname('Chave').asstring := edit1.text;
end;
{OBS: A chave da sua tabela é o primary key que vc definiu... nele vc não coloca auto_inc.
o campo que vai receber o cód e um edit normal.
DICA: Marcio Junior - Uberaba - MG}
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009