Recursividade de campo de autoincremento.
Pessoal tenho o código :
var proxNum : integer;
begin
DmSL.QryFinanceiro.Last;
proxNum := DmSL.QryFinanceiro.FieldByName(´Cod´).asinteger + 1;
DmSL.QryFinanceiro.Append;
DmSL.QryFinanceiro.FieldByName(´Cod´).asinteger := proxNum;
end;
Gostaria ordernar os valores do registro o valor da chaveprimária ´COD´, para o seguinte exemplo :
se eu tiver registros com COD := 1..10 se eu deletar o registro de valor COD := 7 ele diminiu o restante chegando o ultimo registro recebendo ´9´.
Sendo que estarei atualizando os valores anteriores e posteriores.
ESTOU USANDO BASE ACCESS 2000.
Com faço isso ?
var proxNum : integer;
begin
DmSL.QryFinanceiro.Last;
proxNum := DmSL.QryFinanceiro.FieldByName(´Cod´).asinteger + 1;
DmSL.QryFinanceiro.Append;
DmSL.QryFinanceiro.FieldByName(´Cod´).asinteger := proxNum;
end;
Gostaria ordernar os valores do registro o valor da chaveprimária ´COD´, para o seguinte exemplo :
se eu tiver registros com COD := 1..10 se eu deletar o registro de valor COD := 7 ele diminiu o restante chegando o ultimo registro recebendo ´9´.
Sendo que estarei atualizando os valores anteriores e posteriores.
ESTOU USANDO BASE ACCESS 2000.
Com faço isso ?
Jonasaf
Curtidas 0
Respostas
Wtjunior
21/04/2004
Olá Jonas,
Qual a finalidade disso?
Vc não tem nenhuma referência a este campo (COD) dentro do sistema? pois se tiver não poderá fazer isso.
wilson
Qual a finalidade disso?
Vc não tem nenhuma referência a este campo (COD) dentro do sistema? pois se tiver não poderá fazer isso.
wilson
GOSTEI 0
Beppe
21/04/2004
Eu não entendo muito de SQL mas acho que seria +/- assim:
O param CodDeletado deve receber o Cod do item deletado
UPDATE Tabela SET (Cod) VALUES (Cod - 1) WHERE Cod > :CodDeletado
O param CodDeletado deve receber o Cod do item deletado
GOSTEI 0
Einstein
21/04/2004
pra facilitar a sua vida vc pode criar uma função que busque o maior código e some 1 a ele.
exemplo: SELEC max ( cod ) from tabela;
espero ter ajudado....
exemplo: SELEC max ( cod ) from tabela;
espero ter ajudado....
GOSTEI 0
Aroldo Zanela
21/04/2004
Colega,
Não faça isto, pois irá acarretar vários problemas de integridade referencial em seu sistema.
Não faça isto, pois irá acarretar vários problemas de integridade referencial em seu sistema.
GOSTEI 0
Einstein
21/04/2004
Colega,
Não faça isto, pois irá acarretar vários problemas de integridade referencial em seu sistema.
se vc se refere a dica que eu dei. bem gostaria de lhe informar que ela foi extraida de uma das edicoes da Revista Clube Delphi da serie que desenvolveu o sistema DataCar nao lembro bem se foi a edicao 31 ou a 32.
atenciosamente, Einstein Xavier
GOSTEI 0
Beppe
21/04/2004
[quote:5afc671c31]Colega,
Não faça isto, pois irá acarretar vários problemas de integridade referencial em seu sistema.
se vc se refere a dica que eu dei. bem gostaria de lhe informar que ela foi extraida de uma das edicoes da Revista Clube Delphi da serie que desenvolveu o sistema DataCar nao lembro bem se foi a edicao 31 ou a 32.
atenciosamente, Einstein Xavier[/quote:5afc671c31]
Einsten, acho q o Zanela respondia ao que postou o tópico, sobre modificar os ids.
GOSTEI 0