![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
база DBase [D5, dBase, FoxPro]
alexela © (2002-08-03 21:10:00)Привет, всем! Может я чего пропустил, но вопрос таков. У меня в таблице (типа
DBase IV)есть удаленные записи.На самом деле они только помечены на удаленияе,т.
е. не видны в DBGreed, хотя в физической таблице присутствуют и поэтому путают
прогу, например, при подсчете количества записей. Можно ли программно выловить
эти записи, а потом вернуть им исходный атрибут ( снять метку на удаление)? Или
удалить конкретную, имеющую метку на удаление, запись, не трогая другие "удален
-ные"? Метод PakTable грохает все удаленные записи.
Иначе : можно ли в таблице программно восстановить удаленные записи?
С уважением.
ValWhite (2002-08-04 14:28:00) [1]Либо, если все-таки с BDE, делай как советует Jeer- DbiUndeleteRecord
Пример из хэлпа:
procedure fDbiUndeleteRecord(dBASETbl: TTable);
var
CProps: CurProps;
begin
Check(DbiGetCursorProps(dBASETbl.Handle, CProps));
// Raise an EDBEngineError exception if the table is not dBASE
if (StrIComp(CProps.szTableType, szDBASE) <> 0) then
raise EDBEngineError.Create(DBIERR_NOTSUPPORTED);
// Raise an EDatabaseError exception if the cursor does not have soft deletes on
if (CProps.bDeletedOn = False) then
raise EDatabaseError.Create("Soft deletes is not on");
Check(DbiUndeleteRecord(dBASETbl.Handle));
end;
ValWhite (2002-08-04 14:19:00) [2]В компоненте THalcyonDataSet(работет с таблицами DBASE напрямую без BDE) есть метод Recall. Восстанавливает запись, помеченную как удаленная. Также есть свойство UseDeletedопределяет показывать ли записи, помеченные как удаленные.
Jeer (2002-08-03 22:02:00) [3]DbiUndeleteRecord поищи ссылки
Anatoly Podgoretsky (2002-08-03 21:35:00) [4]Они не путают, так как учитываются при подсчете. Выловить можно, но идея с аттрибутом дикая.