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

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

Как можно упаковать таблицу Paradox


yaric ©   (2003-08-09 13:24:00) 

Подскажите как можно упаковать таблицу Paradox в своей проге, как это делает DatabaseDesktop когда ставиш галку Pack table
:-)При интенсивной работе таблица страшно разростается, хотя данные удаляются, а размер базы все растет и растет ...
Помогает только в DatabaseDesktop Pack table.


yaric   (2003-08-09 21:17:00) [1]

Первичный ключ у меня есть (тип автоинкримент)
В размере растет *.db файл
Попробую то что посоветовал Семен Сорокин, т.к. кроме непомерного роста, таблицы работают нормально
Пробовал даже создавать таблицу заново - тот же эффект, кстати такое творится со всеми таблицами в базе.


Семен Сорокин   (2003-08-09 16:14:00) [2]

function ReindexBase(aDB: TDatabase): boolean;
var
_i : integer;
_list: tStrings;
begin
Result := true;
aDB.CloseDataSets;
_list := tStringList.Create;
try
Session.GetTableNames(aDB.DatabaseName, "*.db", false, false, _list);
for _i := 0 to _list.Count - 1 do
with TTable.Create(nil) do
try
DatabaseName := aDB.DatabaseName;
TableType := ttParadox;
Exclusive := true;
TableName := _list[_i];
try
Active := true;
Check(dbiRegenIndexes(Handle));
except
on E: Exception do begin
MessageDlg("


Anatoly Podgoretsky   (2003-08-09 15:15:00) [3]

Насчет индекма, работать с Парадоксом без первичного ключа конечно можно, но сильно не рекомендуется.


Anatoly Podgoretsky   (2003-08-09 15:13:00) [4]

Глюк или поврежления таблиц конечно могут объяснить подобное поведение, я надеюсь он про .db файл говорит. Но вообще то я думаю, что реструктиризация устраняет большинство ошибок этого рода. Я как то спрашивал, относится ли повторное использование к .mb файлу или нет, но точного ответа не получил, сам я не использую Парадокс из за его недостатков и по ряду других причин.


sniknik   (2003-08-09 14:35:00) [5]

Anatoly Podgoretsky © (09.08.03 14:13)
> Хотя для Парадокс это лишнее и даже вредное. Место используется повторно.
бывают исключения. один раз сталкивался, типа говорит таблица переполнена (мах 128мг) но через раз, т.е. ошибка а при повторной записи проходит. сначала думал действительно переполнение, структуру поменять (на 256 или даже больше, очень уж быстро переполнилась). а как то на автомате сделал упаковку осталось гдето 4-8мг(!!!), т.е. явно глюк какойто был место не использовалось. (не BDE, это на обменном файле кассовой программы супермаг DOS)
почти сразу пожалел, что не сохранил глючный файл, больше не встречалось.

yaric (09.08.03 14:24)
может ты таблици без ключа(главный индекс) используеш? в этом случае может быть.


yaric   (2003-08-09 14:24:00) [6]

dbiDoRestructure - это где и откуда
Я использую Delphi и BDE
>А насчет "Место используется повторно", я что-то сомневаюсь что у меня так это работает - записи удаляются и добавляю примерно такоеже количество как было удалено, а база увеличивается в два раза и так пока не сделаеш Pack table.


Anatoly Podgoretsky   (2003-08-09 14:13:00) [7]

dbiDoRestructure
Хотя для Парадокс это лишнее и даже вредное. Место используется повторно.


Наверх

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