Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
ВнизКак не убрать помеченые на удаление записи ? Найти похожие ветки
← →
SergeyI (2003-07-10 09:53) [0]Уважаемые ALL подскажите, работаю с таблицами формата дбф через ADO, после выполнения операций delete в таблице записи остаются. Как
их убрать совсем ?
← →
Соловьев (2003-07-10 10:11) [1]Deleted Двоичный индикатор, определяющий обработку ядром Microsoft Jet записей, отмеченных как удаленные. Значение 01 соответствует команде dBASE SET DELETED ON и отключает загрузку или позиционирование удаленных записей. Значение 00 соответствует команде dBASE SET DELETED OFF и указывает, что удаленные записи обрабатываются так же, как все остальные. По умолчанию задается значение 00. Значения имеют тип Binary в Windows 95 и Windows NT 4.0 или тип REG_BINARY в Windows NT 3.51
← →
Соловьев (2003-07-10 10:12) [2]Или паковать.
← →
SergeyI (2003-07-10 10:25) [3]а если паковать то как ? (не нашёл я команду, может плохо искал)
← →
Соловьев (2003-07-10 10:52) [4]
> не нашёл я команду, может плохо искал
с ADO не работаю, не знаю как там пакуют... что-то слышал про pack table, но не уверен.
← →
sniknik (2003-07-10 11:11) [5]не там искал. у Jet нет такой команды, во всяком случае в SQL, в драйвере то есть
исам дбейса
используемая dll D:\WINNT\System32\msxbde40.dll
экспортируемые процедуры ..... DbiRegenIndex DbiPackTable DbiEmptyTable ......
но вот как к ним доступится... попроще? если выясниш свисти :о)).
для себя нашол гораздо более простой выход, т.к. нет постоянных упаковок после каждого удаления, а только по требованию, пункт типа "рапайр & реиндекс" то делаю так
подключаю драйвер Visual FoxPro
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={Microsoft Visual FoxPro Driver};UID=;SourceDB=d:\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=RUSSIAN;Null=Yes;Deleted=Yes;"
и делаю команду
PACK TABLE Xxxxxx1
для каждой таблици, не знаю будут ли проблемы с индексами (вроде должны) но мне без разницы "реиндекс" делается удалением и пересозданием индеков.
(удаляя индексный файл можно не озабачиватся 28-м байтом(признак индекса) драйвер FoxPro снимает его автоматически при отсутствии индексного файла. естественно для упаковки требуется монопольный доступ(общепринято), т.е. нужно закрыть таблицу везде перед операцией PACK)
← →
SergeyI (2003-07-10 12:34) [6]то sniknik те в commandtext загоняешь строку PACK TABLE Xxxxxx1
и всё ?
← →
SergeyI (2003-07-10 12:40) [7]то sniknik Спасибо
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c