[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