![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Востановление ранее удаленных записей [D6, dBase, FoxPro]
sterran © (2003-03-20 10:19:00)Здравствуйте Мастаки. Нашел в Helpe следующий пример по востановлению помеченных на удаления записей, пытаюсь применить к своей базе выдает ошибку "Soft deletes is not on", почему не знаю, чисто теоретически все должно работать в базах нет ничего осебенного.
procedure fDbiUndeleteRecord(dBASETbl: TTable);
var
CProps: CurProps;
begin
Check(DbiGetCursorProps(dBASETbl.Handle, CProps));
if (StrIComp(CProps.szTableType, szDBASE) <> 0) then
raise EDBEngineError.Create(DBIERR_NOTSUPPORTED);
if (CProps.bDeletedOn = False) then
raise EDatabaseError.Create("Soft deletes is not on");
Check(DbiUndeleteRecord(dBASETbl.Handle));
end;
Anatoly Podgoretsky (2003-03-20 12:41:00) [1]if not CProps.bDeletedOn then
sterran (2003-03-20 11:38:00) [2]bDeletedOn - BOOL - This value is set to TRUE if the curSOFTDELETEON property is TRUE. This field makes sense only if the cursor supports the soft delete concept. If TRUE, deleted records can be seen while using this cursor (dBASE and FoxPro only).
т.е. если ключ стоит True то удаление разрешено, в противном запрещено, поэтому представленный мною код правильный.
Mike Kouzmine (2003-03-20 11:32:00) [3]Может быть надо установить bDeletedOn в True?