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


SQLDriverConnect

Драйвер ODBC для собственного клиента SQL Server определяет атрибуты соединения, которые заменяют или расширяют ключевые слова строки соединения. Некоторые ключевые слова строки соединения имеют значения по умолчанию, заданные в драйвере ODBC для собственного клиента SQL Server.

Список ключевых слов, доступных в драйвере ODBC для собственного клиента SQL Server, см. в разделе Использование ключевых слов строки соединения с собственным клиентом SQL Server.

Дополнительные сведения об атрибутах соединения и поведении драйвера по умолчанию SQL Server см. в разделе SQLSetConnectAttr.

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

Если параметр SQLDriverConnectDriverCompletion принимает значение SQL_DRIVER_PROMPT, SQL_DRIVER_COMPLETE или SQL_DRIVER_COMPLETE_REQUIRED, драйвер ODBC для собственного клиента SQL Server получает значения ключевых слов из отображенного диалогового окна. Если значение ключевого слова передается в строке соединения и пользователь не изменил значение в диалоговом окне, драйвер ODBC для собственного клиента SQL Server использует значение из строки соединения. Если значение не определено в строке соединения, а пользователь не присваивает его в диалоговом окне, драйвер использует значение по умолчанию.

Драйверу SQLDriverConnect должен быть задан допустимый дескриптор WindowHandle, если какое-либо значение DriverCompletion требует (или может потребовать) отображения диалогового окна соединения драйвера. Недопустимый дескриптор возвращает ошибку SQL_ERROR.

Укажите ключевое слово DRIVER или DSN. Драйвер ODBC использует крайнее левое из этих ключевых слов и пропускает другое, если указаны оба. Если задано ключевое слово DRIVER, или если оно крайнее левое, а параметр SQLDriverConnectDriverCompletion имеет значение SQL_DRIVER_NOPROMPT, требуется ключевое слово SERVER и соответствующее значение.

Если задано значение SQL_DRIVER_NOPROMPT, необходимо указать ключевые слова проверки подлинности пользователя вместе с их значениями. Драйвер обеспечивает наличие строки «Trusted_Connection=yes» или обоих ключевых слов UID и PWD.

Если значение параметра DriverCompletion равно SQL_DRIVER_NOPROMPT или SQL_DRIVER_COMPLETE_REQUIRED, а язык или база данных определяется в строке соединения, при этом и то, и другое недопустимы, SQLDriverConnect возвращает ошибку SQL_ERROR.

Если значение параметра DriverCompletion равно SQL_DRIVER_NOPROMPT или SQL_DRIVER_COMPLETE_REQUIRED, а язык или база данных определяется в источнике данных ODBC, при этом и то, и другое недопустимы, SQLDriverConnect использует для заданного идентификатора пользователя язык или базу данных по умолчанию и возвращает значение SQL_SUCCESS_WITH_INFO.

Если параметр DriverCompletion имеет значение SQL_DRIVER_COMPLETE или SQL_DRIVER_PROMPT, а язык или база данных недопустимы, SQLDriverConnect вновь отображает диалоговое окно.

Поддержка SQLDriverConnect для имен участников-служб (SPN)

При включенном приглашении на ввод SQLDriverConnect будет использовать диалоговое окно «Имя входа ODBC». Это позволяет ввести имена участников-служб как для основного сервера, так и для сервера отработки отказа.

SQLDriverConnect принимает новые ключевые слова строки соединения, ServerSPN и FailoverPartnerSPN, а также распознает новые атрибуты соединения SQL_COPT_SS_SERVER_SPN и SQL_COPT_SS_FAILOVER_PARTNER_SPN.

Если значение атрибута соединения задано более одного раза, приоритет получает программно установленное значение, а не значение в DSN или строке соединения. Значение DSN имеет приоритет над значением в строке соединения.

При открытии соединения собственный клиент SQL Server задает SQL_COPT_SS_MUTUALLY_AUTHENTICATED и SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD метод проверки подлинности, используемый для открытия соединения.

Дополнительные сведения об именах участников-служб см. в разделе Имена участников-служб в клиентских запросах на установление соединения (ODBC).

Примеры

В следующем вызове показан минимальный объем необходимых данных для SQLDriverConnect:

SQLDriverConnect(hdbc, hwnd,
    (SQLTCHAR*) TEXT("DRIVER={SQL Server Native Client 10};"), SQL_NTS, szOutConn,
    MAX_CONN_OUT, &cbOutConn, SQL_DRIVER_COMPLETE);

В следующей строке соединения показан минимальный объем необходимых данных, если значение параметра DriverCompletion равно SQL_DRIVER_NOPROMPT:

"DSN=Human Resources;Trusted_Connection=yes"

"FILEDSN=HR_FDSN;Trusted_Connection=yes"

"DRIVER={SQL Server Native Client 10};SERVER=(local);Trusted_Connection=yes"