[firebase-br] Dúvida referente a Delete

Paulo Portella pportellaa.firebase em gmail.com
Ter Jan 4 01:30:48 -03 2011


Cada caso um caso, então dou-lhe 2 saídas:

1o.) no BeforePost da sua tabela dentro do Delphi vc faz o seguinte:

if dm.Tabela.State in [dsInsert] then
dm.TabelaCAMPO.AsInteger := FuncaoProximoCodigo(Tabela, Campo, Condição);

function FuncaoProximoCodigo(Tabela, Campo, Condicao : String): Integer;
begin
  // sqlProximoCodigo é uma TSqlQuery
  if sqlProximoCodigo.Active then sqlProximoCodigo.Close;
  sqlProximoCodigo.SQL.Clear;
  sqlProximoCodigo.SQL.Add('SELECT MAX('+Campo+') AS VALOR FROM '+Tabela+'
'+Condicao);
  sqlProximoCodigo.Open;
  if sqlProximoCodigo.FieldByName('VALOR').IsNull then Result:=1 else
  Result:=StrToInt(sqlProximoCodigo.FieldByName('VALOR').Value)+1;
end;

ou então :

2o.) Você pode deixar com que a própria base de dados seja responsável pela
numeração/sequenciamento....
Como? Fiz uma rápida pesquisada no Google e encontrei::

http://www.firebase.com.br/fb/artigo.php?id=1017
http://www.devmedia.com.br/post-2233-Campo-Auto-incremento-Firebird-Interbase.html
http://preclog.blogspot.com/2007/11/autoincrement-no-firebird.html

Aproveite pra estudar/conhecer melhor como se utiliza, vlw?

Qualquer coisa é só gritar.

Um abraço.


Em 3 de janeiro de 2011 22:37, Leonardo Terrão
<leonardoterrao em gmail.com>escreveu:

> Olha sou meio novo na area também, mas se o ID que vc quer q atualize venha
> de um auto incremento e seja a chave primária ele nao poderá alterar o
> valor, mesmo q voce delete todos, o proximo q voce adicionar será ID 6 na
> primeira linha da tabela.
>
> Em 3 de janeiro de 2011 19:56, rdaguiar <rdaguiar.dantas em gmail.com
> >escreveu:
>
> > Olá pessoal
> >
> > Eu sou iniciante com programação em geral.
> >
> > Estou usando o Lazarus (primo do Delphi) no Linux Ubuntu e o Firebird 2.5
> >
> > Minha dúvida é a seguinte:
> >
> > No botão Deletar faço:
> >
> > DM1.DataSource1.DataSet.Delete;
> >
> > O registro corrente é deletado, até aí tudo bem. Só que, digamos que
> tenho
> > 5 registros na tabela e deletei o registro 3, então, o registro seguinte
> > (que era o registro 5) passou a ser o registro 4, mas meu ID continuou
> sendo
> > 5. Como fazer para o ID atualizar automaticamente?
> >
> > Agradeço a ajuda.
> >
> >
> > Robson
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
>
> --
> Leonardo Terrão
>
> leonardoterrao em hotmail.com
>
> Análise e Desenvolvimento de Sistemas
>  ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista