[firebase-br] Dúvida referente a Delete

Eduardo Bahiense eduardo em icontroller.com.br
Ter Jan 4 14:01:54 -03 2011


CODIGO=ID

Quanto ao resto, seu estado leigo não nos deixa prossseguir, mas se você 
só tem essa tabela, só uma pessoa vai usar e não possui demanda para uma 
chave primária, ao invés de usar generator, use
SELECT MAX(ID)+1 AS ID FROM TABELA. Isso é melhor que ficar voltando 
generator.

Eduardo


Em 04/01/2011 10:02, rdaguiar escreveu:
> Desculpa Eduardo, eu sou leigo. Não entendi essa parte:
> "Esse campo não se presta à PK, ainda que hoje você só tenha uma tabela,
> pelo menos um campo dela deve garantir a unicidade de um registro por
> todo o ciclo de vida da informação."
>
> E outra, essa tabela vai ser única para sempre e não vou utilizar
> servidor, é um aplicativo simples e Desktop. Apenas uma pessoa ira
> manusear.
>
> E quanto ao Generator? tem como fazer com que ele venha a diminuir -1?
>
> Abaixo, você colocou "codigo = codigo -1" esse código seria o meu campo
> ID? "ID = ID -1"
>
> Grato pela colaboração
>
>
> Robson
>
>
> Em 04-01-2011 08:25, Eduardo Bahiense escreveu:
>> Bem, se você tirar o 5, 6 passa a ser 5, então,
>>
>> em uma trigger afterdelete ficaria assim (pseudo código):
>>
>> update tabela set codigo=codigo -1 where codigo > old.codigo;
>>
>> O problema disso é a concorrência, se dois usuários excluirem
>> registros ao mesmo tempo pode haver inconsistência.
>> Outra coisa: Esse campo não se presta à PK, ainda que hoje você só
>> tenha uma tabela, pelo menos um campo dela deve garantir a unicidade
>> de um registro por todo o ciclo de vida da informação.
>>
>> Eduardo
>>
>> Em 03/01/2011 19:56, rdaguiar 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
>






Mais detalhes sobre a lista de discussão lista