![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Паковка-сжатие файла db [D5, Paradox]
sapsi © (2003-09-30 08:54:00)
Добрый день.
Как после удаления записей из БД сжать эту базу, очистить от временных записей.
Необходимо, чтоб не вышел за допустимые размеры.
Спасибо.
Andriano (2003-09-30 09:24:00) [1]
Странно...когда же умрет файл-серверная технология?
JK (2003-09-30 09:22:00) [2]Извини, что на Си. Просто я на нем пишу. Надеюсь, поможет:
void __fastcall TArch::fDbiDoRestructure2(char *TblName)
{
CRTblDesc TblDesc;
memset((void *) &TblDesc, 0, sizeof(CRTblDesc));
lstrcpy(TblDesc.szTblName, TblName);
lstrcpy(TblDesc.szTblType, szPARADOX);
TblDesc.bPack = TRUE;
DbiDoRestructure(DataModule3->Database1->Handle, 1, &TblDesc, NULL, NULL,NULL, FALSE);//);
}
Во главе всего стоит функция из API BDE DbiDoRestructure.
Ей передается хэндл на базу данных и адрес структуры, в которую записывается тип и имя таблицы. Собственно, все. Для того, чтобы при реструктуризации база упаковалась, добавлена строчка
TblDesc.bPack = TRUE;
Вообще, поищи на DelphiKingdom.ru строчку DbiDoRestructure.
Помнится, были там примеры на эту тему...
ЮЮ (2003-09-30 09:02:00) [3]
В Парадоксе нет особой необходимости это делать, т.к. место удаленных записей затем используется при добавлении новых. А за допустимые пределы выйдет в случае, если там так много действительно нужных записей :-)