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

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

Размер базы Access


arhis ©   (2008-06-25 17:29:00) 

Получаю данные в программу через ADO и заметил что через некторое время база через которую идет обмен (Access) пухнет просто в разы. Кто-нибудь знает что это такое и как привести базу в начальное состояние?


azamatufa   (2008-07-07 16:45:00) [1]

http://www.exit.times.lv/download/delphi/ADO/ADO.html

см. в конце про JRO.


Alex7   (2008-06-30 14:40:00) [2]

Если речь идет о редко выполняемой операции, то проще всего будет открывать базу самим Access и выполнять команду "Сжать и восстановить".
Можно также настроить автоматическое сжатие и восстановление, которое будет происходить каждый раз при закрытии Access-а.


Сашик   (2008-06-29 22:18:00) [3]

Попробуйте следующую функцию:
(на всякий случай предварительно сохраните оригиналный *.mdb)


resourcestring
 SJETENGINE = 'JRO.JetEngine';
SQLCOMPACTSRC = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
 SQLCOMPACTSRC1 = 'x;Jet OLEDB:Engine type=5';

function CompactAndRepair(const DB: String) : boolean;
 var V: OLEvariant;
begin
  Result := True;
  try
    V:= CreateOLEObject(SJETENGINE);
    try
      V.CompactDatabase(SQLCOMPACTSRC + DB, SQLCOMPACTSRC + DB + SQLCOMPACTSRC1);
      DeleteFile(Pchar(DB));
      MoveFile(Pchar(DB + 'x'), Pchar(DB))
     finally
      v:= Unassigned
    end;
   except
    Result := False
  end;
end;


Правильный-Вася   (2008-06-27 17:08:00) [4]


>  в конце каждой сессии

это занятие для админа базы, а не пользователя, особенно если он не один


Johnmen   (2008-06-27 16:57:00) [5]


> как мне это 1сделать через TADOTable?

Никак.


arhis   (2008-06-27 16:55:00) [6]

Ок, я хочу очистить все буферы и корзины в конце каждой сессии, как мне это 1сделать через TADOTable?


Правильный-Вася   (2008-06-25 19:34:00) [7]


>  как до нее добраться?

с какой целью?
если чистить - есть упаковка
для других целей - не стоит оно того


arhis   (2008-06-25 17:36:00) [8]

То есть в базе данных Access есть "корзина"? И как до нее добраться?


Правильный-Вася   (2008-06-25 17:34:00) [9]


>  база через которую идет обмен

если данные при обмене удаляются, потом на их место появляются новые и сначала, то размер со времемен стабилизируется, т.к. место в корзине начинает использоваться повторно


Ega23   (2008-06-25 17:31:00) [10]

удалённые записи помещаются в "Корзину", а не удаляются вообще.
Была там какая-то опция, то-ли упаковать базу, то-ли как-то ещё...


Наверх

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