Программное сжатие базы данных Access используя DAODelphi , Базы данных , Access
Автор: Savva { **** UBPFD *********** by delphibase.endimus.com **** >> Процедура позволяет сжать базу данных в формате Access, используя DAO. Действие аналогичное пункту меню в Access "Сервис -> Служебные программы -> Сжать и восстановить базу данных". Параметры: * DatabaseName - путь к базе данных * Password - пароль базы данных Зависимости: windows,SysUtils,Dialogs,DAO2000,ComObj (Dialogs можно исключить используя MessageBox для вывода сообщения исключительной ситуации) Автор: savva, savva@nm.ru, ICQ:126578975, Орел Copyright: Сапронов Алексей (Savva) Дата: 31 мая 2002 г. ***************************************************** } //перед вызовом процедуры базу надо закрыть, а после - открыть procedure TData.CompactAccessDatabase(DatabaseName, Password: string); var TempName: array[0..MAX_PATH] of Char; // имя временного файла TempPath: string; // путь Name: string; tmpDAO: _DBEngine; ClassID: TGUID; V35, V36: string; // версия DAO begin V35 := 'DAO.DBEngine.35'; V36 := 'DAO.DBEngine.36'; try // получим ClassID try ClassID := ProgIDToClassID(v35); except try ClassID := ProgIDToClassID(v36); except raise; // что то нам неизвестное end; end; // получаем путь для временного файла TempPath := ExtractFilePath(DatabaseName); if TempPath = '' then TempPath := GetCurrentDir; //получаем имя временного файла GetTempFileName(PChar(TempPath), 'mdb', 0, TempName); Name := StrPas(TempName); DeleteFile(PChar(Name)); // этого файла не должно существовать :)) if Password <> '' then Password := ';pwd=' + Password; tmpDAO := CreateComObject(ClassID) as _DBEngine; tmpDAO.CompactDatabase(DatabaseName, Name, 0, 0, Password); DeleteFile(PChar(DatabaseName)); // удаляем не упакованную базу RenameFile(Name, DatabaseName); // переименовываем упакованную базу except // выдаем сообщение об исключительной ситуации on E: Exception do ShowMessage(e.message); end; еnd; Пример использования: ... db.Close; CompactAccessDatabase('database.mdb', 'password'); db.open; ... Программный процессор Delphi, использующий DAO (Data Access Objects) для компрессии базы данных Microsoft Access программно. Процедура принимает два параметра: Вот разбивка кода:
Наконец, пример использования показывает, как вызывать эту процедуру на открытом объекте базы данных Access ( Программное сжатие базы данных Access может быть выполнено с помощью DAO, позволяя уменьшить размер файла и улучшить производительность при работе с базой. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |