На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rouse_, jack128, Krid
  
    > Создание файла БД Access?
      через DAO можно примерно так:

      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;


      Однако гораздо проще подшить пустую базу данных в ресурсы и дело с концом...

      Автор: Vit


      const
        CLASS_DBEngine: TGUID = '{00000100-0000-0010-8000-00AA006D2EA4}';
        dbLangCyrillic = ';LANGID=0x0409;CP=1252;COUNTRY=0';
        dbOption       =     0
      //                  or $20 // ? похоже создание в формате Access 97
                      ;

      procedure CreateMSAccessDatabase(FileName :String);
      begin
        Variant(CreateOleObject(ClassIDToProgID(CLASS_DBEngine)))
          .Workspaces[0]
            .CreateDatabase (FileName, dbLangCyrillic, dbOption);
      end;


      Автор: Петрович

      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0138 ]   [ 17 queries used ]   [ Generated: 19.03.24, 06:19 GMT ]