Eliminar registro virtual

Firebird

07/11/2005

Como faço para gravar um campo com um flag de eliminado ao invés de apagá-lo fisicamente no banco usando o DBNavigator ou DBGrid (Firebird, DBExpress e ClientDataset) ? não serve tentar substituir o botão Eliminar do Navigator ou dizer para não devo usar DBGrid.


Luizneto

Luizneto

Curtidas 0

Respostas

Afarias

Afarias

07/11/2005

existem muitas formas de fazer isso...

quem usa IBX por exemplo, pode colocar na propriedade DeleteSQL (IBDataset ou IBUpdateSQL) o código:

update tabela set campo_flag = valor_excluido;

(no lugar do tradicional delete from ...)

quem usa ClientDataSet/DataSetProvider pode optar por usar o enento BeforeUpdateRecord do Provider para fazer a a operação de exlusão ´na mão´ (atualizando o campo)

entre outras formas possíveis...


T+


GOSTEI 0
Luizneto

Luizneto

07/11/2005

Mas o DBnavigator nao vai eliminá-lo primeiro ? (Clientdataset/Provider)


GOSTEI 0
Afarias

Afarias

07/11/2005

|Mas o DBnavigator nao vai eliminá-lo primeiro ? (Clientdataset/Provider)

Vai eliminar da memória (buffrer do CDS) mas o comando SQL q será executado no banco de dados vc controla no BeforeUpdateRecord -- sendo assim vc pode executar um UPDATE no lugar de um DELETE


T+


GOSTEI 0
POSTAR