Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Паковка-сжатие файла 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]

В Парадоксе нет особой необходимости это делать, т.к. место удаленных записей затем используется при добавлении новых. А за допустимые пределы выйдет в случае, если там так много действительно нужных записей :-)


Наверх

Титульная страница Поиск, карта сайта Написать письмо