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;