Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Внизбаза DBase Найти похожие ветки
← →
alexela (2002-08-03 21:10) [0]Привет, всем! Может я чего пропустил, но вопрос таков. У меня в таблице (типа
DBase IV)есть удаленные записи.На самом деле они только помечены на удаленияе,т.
е. не видны в DBGreed, хотя в физической таблице присутствуют и поэтому путают
прогу, например, при подсчете количества записей. Можно ли программно выловить
эти записи, а потом вернуть им исходный атрибут ( снять метку на удаление)? Или
удалить конкретную, имеющую метку на удаление, запись, не трогая другие "удален
-ные"? Метод PakTable грохает все удаленные записи.
Иначе : можно ли в таблице программно восстановить удаленные записи?
С уважением.
← →
Anatoly Podgoretsky (2002-08-03 21:35) [1]Они не путают, так как учитываются при подсчете. Выловить можно, но идея с аттрибутом дикая.
← →
Jeer (2002-08-03 22:02) [2]DbiUndeleteRecord поищи ссылки
← →
ValWhite (2002-08-04 14:19) [3]В компоненте THalcyonDataSet (работет с таблицами DBASE напрямую без BDE) есть метод Recall. Восстанавливает запись, помеченную как удаленная. Также есть свойство UseDeleted определяет показывать ли записи, помеченные как удаленные.
← →
ValWhite (2002-08-04 14:28) [4]Либо, если все-таки с 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;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c