Консультация № 63773
22.11.2006, 22:16
0.00 руб.
0 2 1
Доброго времени суток, друзья !
Я недавно программирую на Delphi. И наверное исходя из этого и столкнулся с проблемой. Работаю через ADO c базой Access.
Значит есть программа у меня (!) (что-то типа телефоного справочника). В одной ее части я применяю программое сжатие БД используя JRO (CompactDatabase если точнее). Так вот, перед ее применением нужно ведь отключить БД (Листинг 1) ? Все равно ошибка : Операция не может быть выполнена ,т.к. БД открыта в монопольном режиме ..... и т.д. и т.п.
Хотя при отладке проверял вроде файлиk *.ldb , который появляется когда БД Access отрывается , исчезает в каталоге .....
Уважаемые эксперты подскажите что делаю не так ?
Или как нужно правильно ?

Приложение:
Листинг 1 : ADOConnection.Connected:=false; ...... пробовал и так : ADOConnection.Close; ...... всё равно ......

Обсуждение

Неизвестный
22.11.2006, 23:38
общий
это ответ
Здравствуйте, Kotof!

В приложении вариант, который у меня работает.
Если будут проблемы - посмотрите, нет ли у Вас еще одного ADOConnection, которое подключено к той же базе.

Удачи!

P.S. (sBase - глобальная переменная - содержит полный путь к базе).

Приложение:
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);var JroEngine: Variant; sPromBase: string;begin DatabaseConnection.Connected:=false; sPromBase:= ChangeFileExt(sBase, ‘.$$$‘); JroEngine:= CreateOleObject(‘JRO.JetEngine‘); try try JroEngine.CompactDatabase(‘Provider=Microsoft.Jet.OLEDB.4.0;‘+ ‘Data Source=‘+sBase+‘;‘, ‘Provider=Microsoft.Jet.OLEDB.4.0;‘+ ‘Data Source=‘+sPromBase+‘;‘+ ‘Jet OLEDB:Encrypt Database=True‘); DeleteFile(sBase); RenameFile(sPromBase, sBase); except MessageBox(handle,‘Упаковать базу данных не удалось!‘+#10#13+‘Оратитесь к администратору!‘,‘Внимание!‘,48) end; finally JroEngine:= Null; end;end;
Неизвестный
23.11.2006, 10:45
общий
Доброго времени суток !Может я не так осветил проблему. Просто это все происходит после некоего импорта с помощью ADO из Excel: я в цикле от начальной до конечной (вводимых в диалоге) строк выгребаю из Excel из соответствующих столбцов Имя, Адрес , номера тел. и т.д. Так вот МОЯ ПРОБЛЕМКА выскакивает только после этого. Если перезапустить, например, программу, то все ок!Мне очень интересно Ваше мнение .... Жду.
Форма ответа