Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
После выделения среды и подключения и настройки любых атрибутов подключения приложение подключается к источнику данных или драйверу. Для подключения можно использовать три функции:
SQLConnect
SQLDriverConnect
SQLBrowseConnect
Дополнительные сведения о подключении к источнику данных, включая различные доступные параметры строки подключения, см. в разделе "Использование ключевых слов строки подключения" с собственным клиентом SQL Server.
SQLConnect
SQLConnect — это простейшая функция подключения. Он принимает три параметра: имя источника данных, идентификатор пользователя и пароль. Используйте SQLConnect , если эти три параметра содержат все сведения, необходимые для подключения к базе данных. Для этого создайте список источников данных с помощью SQLDataSources; запрос пользователя для источника данных, идентификатора пользователя и пароля; и вызовите SQLConnect.
SQLConnect предполагает, что имя источника данных, идентификатор пользователя и пароль достаточно для подключения к источнику данных и что источник данных ODBC содержит все остальные сведения, необходимые драйверу ODBC для подключения. В отличие от SQLDriverConnect и SQLBrowseConnect, SQLConnect не использует строку подключения.
SQLDriverConnect
SQLDriverConnect используется, если требуется больше сведений, чем имя источника данных, идентификатор пользователя и пароль. Одним из параметров SQLDriverConnect является строка подключения, содержащая сведения о драйвере. Вы можете использовать SQLDriverConnect вместо SQLConnect по следующим причинам:
Чтобы указать сведения о драйвере во время подключения.
Чтобы запросить, что драйвер предложит пользователю получить сведения о подключении.
Подключение без использования источника данных ODBC.
Строка подключения SQLDriverConnect содержит ряд пар "ключевое слово-значение", которые указывают все сведения о подключении, поддерживаемые драйвером ODBC. Каждый драйвер поддерживает стандартные ключевые слова ODBC (DSN, FILEDSN, DRIVER, UID, PWD и SAVEFILE) помимо ключевых слов, относящихся к драйверу, для всех сведений о подключении, поддерживаемых драйвером. SQLDriverConnect можно использовать для подключения без источника данных. Например, приложение, которое предназначено для подключения dsN-less к экземпляру SQL Server, может вызывать SQLDriverConnect со строкой подключения, которая определяет идентификатор входа, пароль, сетевую библиотеку, имя сервера для подключения и базу данных по умолчанию.
При использовании SQLDriverConnect существует два варианта запроса пользователя для получения необходимых сведений о подключении:
Диалоговое окно "Приложение"
Вы можете создать диалоговое окно приложения, которое запрашивает сведения о подключении, а затем вызывает SQLDriverConnect с дескриптором окна NULL и набором DriverCompletion для SQL_DRIVER_NOPROMPT. Эти параметры параметра не позволяют драйверу ODBC открывать собственное диалоговое окно. Этот метод используется, когда важно управлять пользовательским интерфейсом приложения.
Диалоговое окно "Драйвер"
Вы можете закодировать приложение для передачи допустимого дескриптора окна в SQLDriverConnect и задать для параметра DriverCompletion значение SQL_DRIVER_COMPLETE, SQL_DRIVER_PROMPT или SQL_DRIVER_COMPLETE_REQUIRED. Затем драйвер создает диалоговое окно, чтобы запросить пользователю сведения о подключении. Этот метод упрощает код приложения.
SQLBrowseConnect (СКЛБроузКоннект)
SQLBrowseConnect, например SQLDriverConnect, использует строку подключения. Однако с помощью SQLBrowseConnect приложение может создавать полную строку подключения итеративно с источником данных во время выполнения. Это позволяет приложению выполнять две действия:
Создайте собственные диалоговые окна, чтобы запрашивать эту информацию, тем самым сохраняя контроль над пользовательским интерфейсом.
Просмотрите систему для источников данных, которые могут использоваться определенным драйвером, возможно, на нескольких шагах.
Например, пользователь может сначала просмотреть сеть для серверов и, выбрав сервер, найдите сервер для баз данных, доступных драйвером.
Когда SQLBrowseConnect завершает успешное подключение, он возвращает строку подключения, которую можно использовать при последующих вызовах SQLDriverConnect.
Драйвер ODBC собственного клиента SQL Server всегда возвращает SQL_SUCCESS_WITH_INFO в успешном sqlConnect, SQLDriverConnect или SQLBrowseConnect. Когда приложение ODBC вызывает SQLGetDiagRec после получения SQL_SUCCESS_WITH_INFO, оно может получать следующие сообщения:
5701
Указывает, что SQL Server помещает контекст пользователя в базу данных по умолчанию, определенную в источнике данных, или в базу данных по умолчанию, определенную для идентификатора входа, используемого в соединении, если источник данных не имеет базы данных по умолчанию.
5703
Указывает язык, используемый на сервере.
В следующем примере показано сообщение, возвращенное при успешном подключении системным администратором:
szSqlState = "01000", *pfNativeError = 5701,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
Changed database context to 'pubs'."
szSqlState = "01000", *pfNativeError = 5703,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
Changed language setting to 'us_english'."
Вы можете игнорировать сообщения 5701 и 5703; они являются только информационными. Однако не следует игнорировать код возврата SQL_SUCCESS_WITH_INFO, так как сообщения, отличные от 5701 или 5703, могут быть возвращены. Например, если драйвер подключается к серверу под управлением экземпляра SQL Server с устаревшими хранимыми процедурами каталога, одна из ошибок, возвращаемых через SQLGetDiagRec после SQL_SUCCESS_WITH_INFO:
SqlState: 01000
pfNative: 0
szErrorMsg: "[Microsoft][SQL Server Native Client]The ODBC
catalog stored procedures installed on server
my65server are version 06.50.0193; version 07.00.0205
or later is required to ensure proper operation.
Please contact your system administrator."
Функция обработки ошибок приложения для подключений SQL Server должна вызывать SQLGetDiagRec , пока она не возвращает SQL_NO_DATA. Затем он должен действовать на любых сообщениях, отличных от тех, с кодом pfNative 5701 или 5703.