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


Выбор источника данных или драйвера

Источник данных или драйвер, используемый приложением, иногда жестко закодирован в приложении. Например, пользовательское приложение, написанное отделом MIS для передачи данных из одного источника данных в другой, будет содержать имена этих источников данных, приложение просто не будет работать с другими источниками данных. Другим примером является вертикальное приложение, например одно, используемое для записи заказа. Такое приложение всегда использует тот же источник данных, который имеет предопределенную схему, известную приложением.

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

Для драйверов на основе СУБД обычно требуется сложный набор сведений о подключении, например сетевой адрес, сетевой протокол, имя базы данных и т. д. Цель источника данных заключается в скрытии всех этих сведений. Поэтому парадигма источника данных позволяет использовать драйверы на основе СУБД. Приложение может отобразить список источников данных пользователю одним из двух способов. Он может вызывать SQLDriverConnect с ключевым словом DSN (имя источника данных) без связанного значения; диспетчер драйверов отобразит список имен источников данных. Если приложение хочет контролировать внешний вид списка, он вызывает SQLDataSources для получения списка доступных источников данных и создает собственное диалоговое окно. Эта функция реализуется диспетчером драйверов и может вызываться перед загрузкой драйверов. Затем приложение вызывает функцию подключения и передает ей имя выбранного источника данных.

Если источник данных не указан, используется источник данных по умолчанию, указанный системной информацией. (Дополнительные сведения см. в подразделе по умолчанию.) Если SQLConnect вызывается с помощью аргумента ServerName , который не удается найти, является пустым указателем или имеет значение DEFAULT, диспетчер драйверов подключается к источнику данных по умолчанию. Источник данных по умолчанию также используется, если строка подключения, используемая в вызове SQLDriverConnect или SQLBrowseConnect , содержит ключевое слово DSN , равное DEFAULT, или если указанный источник данных не найден. Кроме того, источник данных по умолчанию используется, если строка подключения, используемая в вызове SQLDriverConnect , не содержит ключевое слово DSN .

С помощью файловых драйверов можно использовать парадигму файлов. Для данных, хранящихся на локальном компьютере, пользователи часто знают, что их данные хранятся в определенном файле, например Employee.dbf. Вместо выбора неизвестного источника данных такие пользователи могут выбрать файл, который они знают. Чтобы реализовать это, приложение сначала вызывает SQLDrivers. Эта функция реализуется диспетчером драйверов и может вызываться перед загрузкой драйверов. SQLDrivers возвращает список доступных драйверов; он также возвращает значения для ключевых слов FileUsage и FileExtns . Ключевое слово FileUsage объясняет, рассматриваются ли драйверы на основе файлов как таблицы, как и Xbase или базы данных, как и Microsoft Access. Ключевое слово FileExtns содержит расширения имени файла, распознаваемого драйвером, например DBF для драйвера Xbase. Используя эти сведения, приложение создает диалоговое окно, с помощью которого пользователь выбирает файл. На основе расширения выбранного файла приложение затем подключается к драйверу, вызвав SQLDriverConnect с ключевым словом DRIVER .

Ничто не мешает приложению использовать источник данных с файловым драйвером или вызывать SQLDriverConnect с ключевым словом DRIVER для подключения к драйверу СУБД. Ниже приведено несколько распространенных способов использования ключевого слова DRIVER для драйверов на основе СУБД:

  • Не создавайте источники данных. Например, пользовательское приложение может использовать конкретный драйвер и базу данных. Если имя драйвера и все сведения, необходимые для подключения к базе данных, жестко закодированы в приложении, пользователям не нужно создавать источник данных на своем компьютере для запуска приложения. Все, что необходимо сделать, — установить приложение и драйвер.

    Недостатком этого метода является то, что приложение должно быть перекомпилировано и перераспространяется, если сведения о подключении изменяются. Если имя источника данных жестко закодировано в приложении, а не полные сведения о подключении, каждый пользователь должен изменить только сведения в источнике данных.

  • Доступ к определенной СУБД за один раз. Например, электронная таблица, извлекающая данные путем вызова функций ODBC, может содержать ключевое слово DRIVER для идентификации конкретного драйвера. Так как имя драйвера имеет смысл для всех пользователей, имеющих этот драйвер, электронная таблица может быть передана среди этих пользователей. Если электронная таблица содержит имя источника данных, каждому пользователю придется создать один источник данных для использования электронной таблицы.

  • Просмотр системы для всех баз данных, доступных конкретному драйверу. Дополнительные сведения см. в разделе "Подключение с помощью SQLBrowseConnect" далее в этом разделе.