Поделиться через


Источник данных. Программная настройка источника данных ODBC

В этом разделе описано, как можно настроить имена источников данных ODBC программными средствами. Это дает возможность получать доступ к данным, не заставляя пользователя напрямую использовать администратор ODBC или другие программы, чтобы указать имена источников данных.

Обычно пользователь запускает администратор ODBC, чтобы создать источник данных, если связанная система управления базами данных (СУБД) поддерживает эту операцию.

При создании источника данных Microsoft Access ODBC с помощью администратора ODBC предлагаются два варианта: можно выбрать существующий файл с расширением MDB или же можно создать новый файл. Нет программного метода для создания MDB-файла из приложения ODBC библиотеки MFC. Поэтому, если приложению требуется размещать данные в источнике данных Microsoft Access (MDB-файле), скорее всего требуется пустой MDB-файл, который можно использовать или копировать при необходимости.

Однако многие СУБД позволяют создавать источник данных программными средствами. Некоторые источники данных поддерживают спецификацию каталогов для баз данных. То есть каталог является источником данных и каждая таблица в нем хранится в отдельном файле (в случае использования dBASE каждая таблица хранится в DBF-файле). Для драйверов других баз данных ODBC, например Microsoft Access и SQL Server, требуется выполнение определенных критериев, чтобы создать источник данных. Например, при использовании драйвера ODBC для SQL Server необходим компьютер с установленным сервером SQL Server.

Пример SQLConfigDataSource

В следующем примере используется функция API ODBC ::SQLConfigDataSource для создания источника данных Excel с именем "New Excel Data Source":

SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)", 
                   "DSN=New Excel Data Source\0" 
                   "Description=New Excel Data Source\0" 
                   "FileType=Excel\0" 
                   "DataDirectory=C:\\EXCELDIR\0" 
                   "MaxScanRows=20\0");

Обратите внимание, что источник данных — это каталог (C:\EXCELDIR), который должен существовать. Драйвер Excel использует каталоги как источники данных, а файлы — как отдельные таблицы (по одной таблице на XLS-файл).

Дополнительные сведения о создании таблиц см. в разделе Источник данных. Программное создание таблице в источнике данных ODBC.

Ниже описываются параметры, которые необходимо передавать функции API ODBC ::SQLConfigDataSource. Чтобы использовать функцию ::SQLConfigDataSource, необходимо включить файл заголовка Odbcinst.h и использовать библиотеку импорта Odbcinst.lib. Также файл Odbccp32.dll должен быть включен в путь поиска во время выполнения (или файл Odbcinst.dll для 16-разрядных приложений).

Можно создать имя источника данных ODBC с помощью администратора ODBC или подобной программы. Однако иногда требуется создать имя источника данных непосредственно из приложения, чтобы получать доступ без необходимости для пользователя запускать отдельную программу.

Администратор ODBC (обычно устанавливается в панель управления) создает новый источник данных, размещая записи в реестре Windows (или, для 16-разрядных приложений, в файле Odbc.ini). Диспетчер драйверов ODBC запрашивает этот файл для получения необходимых сведений об источнике данных. Важно понимать, какие сведения необходимо размещать в реестре, так как их необходимо предоставлять при вызове функции ::SQLConfigDataSource.

Хотя эти сведения можно записать непосредственно в реестр без использования ::SQLConfigDataSource, любое приложение, поступающее таким образом, зависит от конкретного способа, с помощью которого диспетчер драйверов хранит свои данные. Если в более поздней версии диспетчера драйверов ODBC механизм хранения записей об источнике данных реализован по-другому, любое приложение использующее этот способ теряет работоспособность. Рекомендуется использовать функцию API, если она существует. Например, код будет работать на 16-разрядных и на 32-разрядных системах, если использовать функцию ::SQLConfigDataSource, так как она всегда корректно записывает данные в файл Odbc.ini или в реестр.

Параметры SQLConfigDataSource

Ниже описываются параметры функции ::SQLConfigDataSource. Большинство сведений взяты из Справочника программиста API ODBC для Visual C++ версии 1.5 и более поздних версий.

Прототип функции

BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);

Примечания

Параметры и использование

  • hwndParent
    Окно, являющееся владельцем всех диалоговых окон, которые создает диспетчер драйверов ODBC или конкретный драйвер ODBC для получения дополнительных сведений о новом источнике данных от пользователя. Если в параметре lpszAttributes сведений недостаточно, то открывается диалоговое окно. Параметр hwndParent может иметь значение NULL.

  • lpszDriver
    Описание драйвера. Это имя, представляемое пользователям вместо имени физического драйвера (библиотеки DLL).

  • lpszAttributes
    Список атрибутов в формате "имя_параметра=значение". Строки разделены символами конца строки, а в конце списка расположены еще два символа конца строки. Эти атрибуты, в основном, составляют записи отдельного драйвера, которые записываются в реестре для нового источника данных. Важный параметр, не упомянутый в справочнике API ODBC для этой функции — "DSN" (имя источника данных), в котором указывается имя нового источника данных. Остальные записи зависят от драйвера для нового источника данных. Часто нет необходимости предоставлять все записи, так как драйвер может запросить у пользователя новые значения с помощью диалоговых окон. (Для этого параметру hwndParent нужно присвоить значение NULL.) Возможно предоставлять непосредственно значения по умолчанию, чтобы не запрашивать значения у пользователя.

Чтобы определить описание драйвера для параметра lpszDriver с помощью администратора ODBC, выполните следующие действия.

  1. Запустите администратор ODBC.

  2. Нажмите кнопку Добавить.

Отобразится список установленных драйверов и их описание. Используйте описание в качестве значения параметра lpszDriver. Следует использовать описание полностью, например "Файлы Excel(*.xls)", включая расширение файла и скобки, если они есть в описании.

Также можно просмотреть реестр (или, для 16-разрядных систем, файл Odbcinst.ini), в котором содержится список всех драйверов и их описание в разделе "Драйверы ODBC" (или раздел [ODBC Drivers] файла Odbcinst.ini).

Найти имена параметров и их значения для параметра lpszAttributes можно, просмотрев файл Odbc.ini на наличие уже настроенного источника данных (возможно, настроенного администратором ODBC).

Чтобы найти имена параметров и их значения для параметра lpszAttributes, выполните следующие действия.

  1. Откройте редактор реестра Windows (или, для 16-разрядных систем, откройте файл Odbc.ini).

  2. Найдите сведения об источниках данных ODBC одним из следующих способов.

    • В 32-разрядных системах найдите раздел реестра HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources в левой части редактора.

      В правой области перечислены записи вида "pub: REG_SZ:<имя источника данных>", где <имя источника данных> — это источник данных, уже настроенный с требуемыми параметрами для драйвера, который предполагается использовать. Выберите нужный источник данных, например SQL Server. Элементы за строкой "pub:" — это имя параметра и значение для использования в параметре lpszAttributes соответственно.

    • В 16-разрядных системах найдите в файле Odbc.ini раздел, отмеченный строкой [<имя источника данных>].

      Строки, следующие за этой строкой, представлены в формате "имя_параметра=значение". Это соответствует формату записей, которые следует использовать в параметре lpszAttributes.

Также можно изучить документацию по отдельному драйверу, который будет использоваться в приложении. Полезные сведения можно найти в справке в Интернете, доступ к которой можно получить после запуска администратора ODBC. Эти файлы справки обычно размещены в каталоге WINDOWS\SYSTEM для Windows NT, Windows 3.1 и Windows 95.

Чтобы получить справку в Интернете по драйверу ODBC, выполните следующие действия.

  1. Запустите администратор ODBC.

  2. Нажмите кнопку Добавить.

  3. Выберите имя драйвера.

  4. Нажмите кнопку ОК.

Администратор ODBC отобразит сведения для создания нового источника данных для этого драйвера, после чего щелкните Справка. Откроется файл справки для этого драйвера, в котором содержатся важные сведения по использованию данного драйвера.

См. также

Основные понятия

Источник данных (ODBC)