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"
См. также