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

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

Упаковка БД [D6, MS Access]


Zlod3y ©   (2004-07-01 01:25:00) 

Упаковывал базу с одной таблицей (эксперимент был), в которой было удалено 65536 записей.......упаковалось нормально как через JRO так и через DAO......только проблема вот в чём: та база, которая была прописана в ODBC не упаковывалась (выдавало ошибку, типа "фаил уже используется" и т. п.), а вот та база, которая в ODBC не фигурирует, нормально упаковалась....!!!!

Почему так? Что я делаю неправильно?


Zlod3y   (2004-07-01 09:47:00) [1]

дельфя закрыта была......:-)

Table1.DataBase.Close и Table1.DataBase.Close работают.....
осталось разобраться с Table1.DataBase.LoginPrompt!!!

да и спасибо за помощь


sniknik   (2004-07-01 09:34:00) [2]

> Я не использую TDataBase.....
тогда он создается по умолчанию (и открывается ес-но)


sniknik   (2004-07-01 09:32:00) [3]

> а если она открывается при запуске,
т.е. в дельфях открыта? (при старте у db компанентов стоит активность в труе?)


Zlod3y   (2004-07-01 09:31:00) [4]

Я не использую TDataBase.....


sniknik   (2004-07-01 09:30:00) [5]

вместо Table1.Close; делай DataBase.Close; (если действительно других коннектов нет)


Zlod3y   (2004-07-01 08:46:00) [6]

я так и делаю:

Table1.Close;
CompactDatabase_JRO(ExtractFilePath(Application.ExeName) + 'db1.mdb',ExtractFilePath(Application.ExeName) + 'db1_pack.mdb','');
Table1.Open;

или

Table1.Close;
CompactAccessDatabase(ExtractFilePath(Application.ExeName) + 'db1.mdb','');
Table1.Open;

Больше коннектов нет!
А ошибку выдаёт такую: "Попытка открыть базу данных, открытую пользователем 'admin' на машине 'такой-то' для монопольного доступа. Повторите попытку, когда база данных освободится"

самое интересно, что когда я запускаю программулю с предварительно закрытой базой, то всё упаковывается, а если она открывается при запуске, то см. выше :-(


sniknik   (2004-07-01 07:54:00) [7]

то что она в DSN ODBC прописана не означает что она открыта (используется), у тебя же явное указание на это. закрой все конекты/проги что ее используют (посмотри при нормально открытой базе рядом создается файл *.ldb, это можеш использовать как признак "открытости", пока он есть база открыта (кроме редких исключений)).


Zlod3y   (2004-07-01 01:28:00) [8]

вот отсюда я брал процедуры:

http://delphibase.endimus.com/?action=viewfunc&topic=baseaccess&id=10303

http://delphibase.endimus.com/?action=viewfunc&topic=baseaccess&id=10165


Наверх

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