SQLDriverConnect

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

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

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

Если параметр 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)

При включенном приглашении на ввод SQLDDriverConnect будет использовать диалоговое окно «Имя входа 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"