Eliminar registro virtual
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
Curtidas 0
Respostas
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+
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
07/11/2005
Mas o DBnavigator nao vai eliminá-lo primeiro ? (Clientdataset/Provider)
GOSTEI 0
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+
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