Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание новой MS Access базы данных

Delphi , Базы данных , Access



Автор: Vit
WEB-сайт: http://forum.vingrad.ru

Приведенная ниже процедура создает пустую базу данных MS Access

procedure CreateMSAccessDatabase(filename: string);
var
  DAO: Variant;
  i: integer;
const
  Engines: array[0..2] of string = ('DAO.DBEngine.36', 'DAO.DBEngine.35',
    'DAO.DBEngine');

  function CheckClass(OLEClassName: string): boolean;
  var
    Res: HResult;
  begin
    Result := CoCreateInstance(ProgIDToClassID(OLEClassName), nil,
      CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IDispatch, Res) = S_OK;
  end;
begin
  for i := 0 to 2 do
    if CheckClass(Engines[i]) then
    begin
      DAO := CreateOleObject(Engines[i]);
      DAO.Workspaces[0].CreateDatabase(filename,
        ';LANGID=0x0409;CP=1252;COUNTRY=0', 32);
      exit;
    end;
  raise Exception.Create('DAO engine could not be initialized');
end;

Программный процесс CreateMSAccessDatabase объявлен с параметром filename, который представляет имя файла базы данных, которую нужно создать. Процедура использует библиотеку DAO (Data Access Objects) для создания новой базы данных Microsoft Access.

В разбивке кода:

  1. Процедура CreateMSAccessDatabase объявлена с параметром filename, который представляет имя файла базы данных, которую нужно создать.
  2. Переменная DAO объявлена как тип варианта, которая будет содержать ссылку на движок DAO для базы данных.
  3. Массив Engines содержит три строки, которые представляют различные версии движка DAO:
    • 'DAO.DBEngine.36': Это последняя доступная в Delphi версия DAO.
    • 'DAO.DBEngine.35': Это старая версия DAO, доступная в ранних версиях Delphi.
    • 'DAO.DBEngine': Это общий ссылка на любой движок DAO.
  4. Функция CheckClass принимает имя класса OLE в качестве входного параметра и возвращает булевое значение, указывающее, может ли класс быть создан успешно с помощью CoCreateInstance. Если класс не может быть создан, функция возвращает False.
  5. Основная часть процедуры проходит по массиву Engines и пытается создать каждый движок с помощью CheckClass. Если движок найден, который может быть создан успешно, он используется для создания новой базы данных с указанным именем файла.
  6. Если не может быть создан ни один движок, исключение поднимается, указывая, что движок DAO не может быть инициализирован.

Обратите внимание, что эта процедура использует функцию CreateOleObject для создания экземпляра движка DAO, который может не работать, если библиотека DAO не установлена или не настроена правильно на системе. Кроме того, процедура не проверяет, существует ли файл с указанным именем перед попыткой создать новую базу данных с этим именем.

В предложениях для улучшения:

  1. Рассмотрите использование более robust механизма обработки ошибок для случаев, когда движок DAO не может быть инициализирован.
  2. Добавьте проверки, чтобы убедиться, что указанное имя файла не существует перед попыткой создать новую базу данных с этим именем.
  3. Если возможно, добавьте дополнительные настройки конфигурации, чтобы пользователь мог выбрать язык, кодовую страницу и региональные параметры для новой базы данных.

В целом, это простая процедура, которая демонстрирует использование DAO для создания новой базы данных Microsoft Access в Delphi. С некоторыми изменениями она могла быть сделана более robust и пользовательской.

Процедура CreateMSAccessDatabase создает пустую базу данных MS Access, используя различные движки DAO для инициализации и создания базы данных.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Access ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 23:37:00/0.0035169124603271/0