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

В этом разделе объясняется, как настроить имена источников данных open Database Подключение ivity (ODBC) программным способом. Это обеспечивает гибкость доступа к данным, не заставляя пользователя явно использовать odBC Администратор istrator или другие программы, чтобы указать имена источников данных.

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

При создании источника данных ODBC Microsoft Access с помощью ODBC Администратор istrator вы можете выбрать существующий MDB-файл или создать новый 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.

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

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

ODBC Администратор istrator (обычно установленный в панель управления) создает новый источник данных, помещая записи в реестр 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
Список атрибутов в форме "keyname=value". Эти строки разделяются концами NULL с двумя последовательными концами null в конце списка. Эти атрибуты в основном относятся к записям драйвера по умолчанию, которые входят в реестр для нового источника данных. Один из важных ключей, которые не упоминание в справочнике по API ODBC для этой функции, — DSN ("имя источника данных"), который указывает имя нового источника данных. Остальные записи относятся к драйверу для нового источника данных. Часто не нужно предоставлять все записи, так как драйвер может запрашивать пользователя с диалоговым окнами для новых значений. (Задайте для hwndParent значение NULL, чтобы вызвать это.) Возможно, вы хотите явно указать значения по умолчанию, чтобы пользователь не запрашивал.

Определение описания драйвера для параметра lpszDriver с помощью ODBC Администратор istrator

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

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

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

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

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

Поиск имен ключей и значений для параметра lpszAttributes

  1. Запустите редактор реестра Windows (или 16-разрядный файл Odbc.ini).

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

    • Для 32-разрядной версии найдите ключ HKEY_CURRENT_USER\Software\ODBC\ODBC. Источники данных INI\ODBC в левой области.

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

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

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

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

Получение справки по сети для драйвера ODBC

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

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

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

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

Когда odBC Администратор istrator отображает сведения о создании нового источника данных для этого конкретного драйвера, нажмите кнопку "Справка". Откроется файл справки для конкретного драйвера, который обычно содержит важные сведения об использовании драйвера.

См. также

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