REVELAR

Fórum Campos Auto - Incremento #319237

16/04/2006

0

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 [color=white:37eb73aaf1]--[/color:37eb73aaf1]begin [color=white:37eb73aaf1]----[/color:37eb73aaf1]with QryConsulta do [color=white:37eb73aaf1]------[/color:37eb73aaf1]begin [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Close; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Sql.Clear; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Sql.Add(´Select Max(COD_SETOR) from SETOR´); // busca o último registro [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Open; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]If Fields[0].IsNull = False then [color=white:37eb73aaf1]----------[/color:37eb73aaf1]EdCOD_SETOR.Text := IntToStr(Fields[0].Value+1)// acrescenta mais um registro automaticamente [color=white:37eb73aaf1]------[/color:37eb73aaf1]else [color=white:37eb73aaf1]-------[/color:37eb73aaf1]EdCOD_SETOR.Text := ´1´; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Close; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Sql.Clear; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Sql.Add(SqlInsert); [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Params[0].Value := EdCOD_SETOR.Text; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Params[1].Value := EdNOME_SETOR.Text; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Params[2].Value := EdCOD_ORGAO.Text; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]ExecSql; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]DM.TransDecretos.CommitRetaining; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]ShowMessage(´REGISTRO GRAVADO´); [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Novo := False; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]end; [color=white:37eb73aaf1]---[/color:37eb73aaf1]end [color=white:37eb73aaf1]--[/color:37eb73aaf1]else [color=white:37eb73aaf1]---[/color:37eb73aaf1]begin [color=white:37eb73aaf1]----[/color:37eb73aaf1]with QryConsulta do [color=white:37eb73aaf1]-----[/color:37eb73aaf1]begin [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Close; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Sql.Clear; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Sql.Add(SqlUpdate); [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Params[0].Value := EdNOME_SETOR.Text; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Params[1].Value := EdCOD_ORGAO.Text; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]Params[2].Value := EdCOD_SETOR.Text; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]ExecSql; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]DM.TransDecretos.CommitRetaining; [color=white:37eb73aaf1]-------[/color:37eb73aaf1]ShowMessage(´REGISTRO ATUALIZADO´); [color=white:37eb73aaf1]-------[/color:37eb73aaf1]end; [color=white:37eb73aaf1]--[/color:37eb73aaf1]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 [color=white:37eb73aaf1]-[/color:37eb73aaf1]1[color=white:37eb73aaf1]------------------------[/color:37eb73aaf1][color=red:37eb73aaf1][b:37eb73aaf1]1[/b:37eb73aaf1][/color:37eb73aaf1][color=white:37eb73aaf1]------------[/color:37eb73aaf1]PROCURADOR[color=white:37eb73aaf1]---------[/color:37eb73aaf1]1[color=white:37eb73aaf1]--------[/color:37eb73aaf1]ORGÃO [color=red:37eb73aaf1][b:37eb73aaf1]1[/b:37eb73aaf1][/color:37eb73aaf1] [color=white:37eb73aaf1]-[/color:37eb73aaf1]2[color=white:37eb73aaf1]------------------------[/color:37eb73aaf1]1[color=white:37eb73aaf1]------------[/color:37eb73aaf1]SECRETARIO[color=white:37eb73aaf1]-----------[/color:37eb73aaf1]2[color=white:37eb73aaf1]-------[/color:37eb73aaf1]ORGAO 2 [color=white:37eb73aaf1]-[/color:37eb73aaf1]3[color=white:37eb73aaf1]------------------------[/color:37eb73aaf1][color=red:37eb73aaf1][b:37eb73aaf1]2[/b:37eb73aaf1][/color:37eb73aaf1][color=white:37eb73aaf1]------------[/color:37eb73aaf1]CHEFE PROCU[color=white:37eb73aaf1]----------[/color:37eb73aaf1]1[color=white:37eb73aaf1]-------[/color:37eb73aaf1]ORGÃO [color=red:37eb73aaf1][b:37eb73aaf1]1[/b:37eb73aaf1][/color:37eb73aaf1]


Obrigado e valeu pela atenção


Luis Jr


Jrcosmoluis

Jrcosmoluis

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar