[firebase-br] Campos Auto - Incremento

Luís Cosmo jrcosmolui em gmail.com
Dom Abr 16 15:16:01 -03 2006


Amigos,

Tenho os seguintes formulários:

Tabela Órgão

COD_ORGAO,
NOME_ORGAO,

Tabela Setor

COD_SETOR
NOME_SETOR,
COD_ORGAO

E para adicionar mais um número nos campos COD_ORGAO ou COD_SETOR tenho uma
procedure no delphi no botão gravar dos formularios que funciona dessa
forma:

if Novo then
 begin
  with QryConsulta do
   begin
    Close;
    Sql.Clear;
    Sql.Add('Select Max(COD_SETOR) from SETOR'); // busca o último registro
    Open;
     If Fields[0].IsNull = False then
      EdCOD_SETOR.Text := IntToStr(Fields[0].Value+1)// acrescenta mais um
registro automaticamente
   else
     EdCOD_SETOR.Text := '1';
     Close;
     Sql.Clear;
     Sql.Add(SqlInsert);
     Params[0].Value := EdCOD_SETOR.Text;
     Params[1].Value := EdNOME_SETOR.Text;
     Params[2].Value := EdCOD_ORGAO.Text;
     ExecSql;
     DM.TransDecretos.CommitRetaining;
     ShowMessage('REGISTRO GRAVADO');
     LimparControle;
     Novo := False;
     end;
    end
  else
   begin
    with QryConsulta do
     begin
       Close;
       Sql.Clear;
       Sql.Add(SqlUpdate);
       Params[0].Value := EdNOME_SETOR.Text;
       Params[1].Value := EdCOD_ORGAO.Text;
       Params[2].Value := EdCOD_SETOR.Text;
       ExecSql;
       DM.TransDecretos.CommitRetaining;
       ShowMessage('REGISTRO ATUALIZADO');
     end;
   end;
end;
Mas gostaria de ter um outro campo na TABELA SETOR ficando assim:

COD_REGISTRO (CHAVE PRIMÁRIA)
COD_SETOR (INTEGER)
NOME_SETOR (VARCHAR)
COD_ORGAO (CHAVE ESTRANGEIRA)

Dessa forma quando um novo registro fosse gravado o CODIGO_REGISTRO acionava
a procedure acima (como acontece) e o CODIGO_SETOR acrescentasse um próximo
registro (numeração) de acordo com o ORGAO.  Ex:

COD_REGISTRO--COD_SETOR----NOME_SETOR-----COD_ORG
-1---------------1---------PROCURADOR--------1----ORGÃO 1
-2---------------1---------SECRETARIO--------2----ORGAO 2
-3---------------2---------CHEFE PROCU-------1----ORGÃO 1
Obrigado e valeu pela atenção
--
Luis Jr



Mais detalhes sobre a lista de discussão lista