Buscar

Gerar autoincremento por funcão_sql

Código

Para auto-incrementar seus registros você pode criar uma procedure no Delphi ou uma procedure no seu banco de dados( se este suportar). Então mãos á obra:

) Você deve inserir uma QUERY no seu form de cadastro que servira para selecionar o valor maximo Dê o nome de Qrymaximo;
) 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}

 
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 05/09/06
Por: Marcio Junior
Visualizada: 4981 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009