How to view dBase records which are marked for deletion (Views: 701)
Problem/Question/Abstract: How to view dBase records which are marked for deletion Answer: Call the following function on the AfterOpen event of the table. You must include DBITYPES, DBIERRS, DBIPROCS in the uses clause. To call, send as arguments name of TTable and True / False depending to show / not show deleted records. Example: procedure TForm1.Table1AfterOpen(DataSet: TDataset); begin SetDelete(Table1, TRUE); end; procedure SetDelete(oTable: TTable; Value: Boolean); var rslt: DBIResult; szErrMsg: DBIMSG; begin try oTable.DisableControls; try rslt := DbiSetProp(hDBIObj(oTable.Handle), curSOFTDELETEON, LongInt(Value)); if rslt <> DBIERR_NONE then begin DbiGetErrorString(rslt, szErrMsg); raise Exception.Create(StrPas(szErrMsg)); end; except on E: EDBEngineError do ShowMessage(E.Message); on E: Exception do ShowMessage(E.Message); end; finally oTable.Refresh; oTable.EnableControls; end; end; |