SQLDriverConnect

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

SQL Server Native Client ODBC 驱动程序定义替换或增强连接字符串关键字的连接属性。 多个连接字符串关键字具有 SQL Server Native Client ODBC 驱动程序指定的默认值。

有关 SQL Server Native Client ODBC 驱动程序中可用的关键字的列表,请参阅 将连接字符串关键字与 SQL Server Native Client 配合使用。

有关 SQL Server 连接属性和驱动程序默认行为的详细信息,请参阅 SQLSetConnectAttr

有关对 SQL Server Native Client 有效的连接字符串关键字的讨论,请参阅将连接字符串关键字与 SQL Server Native Client 配合使用。

当 SQLDriverConnectDriverCompletion 参数值SQL_DRIVER_PROMPT、SQL_DRIVER_COMPLETE或SQL_DRIVER_COMPLETE_REQUIRED时,SQL Server Native Client ODBC 驱动程序将从显示的对话框中检索关键字值。 如果在连接字符串中传递关键字值,并且用户不会更改对话框中关键字的值,则 SQL Server Native Client ODBC 驱动程序使用连接字符串中的值。 如果在连接字符串中未设置值,并且用户在对话框中未指定任何值,则驱动程序将使用默认值。

如果任何 DriverCompletion 值需要(或可能需要)显示驱动程序的连接对话框,则必须为 SQLDriverConnect 提供有效的 WindowHandle 无效句柄将返回 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 将使用默认语言或数据库用于指定的用户 ID 并返回SQL_SUCCESS_WITH_INFO。

如果 DriverCompletion 参数值SQL_DRIVER_COMPLETE或SQL_DRIVER_PROMPT并且语言或数据库无效,SQLDriverConnect 将重新显示对话框。

对高可用性、灾难恢复的 SQLDriverConnect 支持

有关使用 SQLDriverConnect 连接到 AlwaysOn 可用性组群集的详细信息,请参阅 SQL Server Native Client Support for High Availability, Disaster Recovery

对服务主体名称 (SPN) 的 SQLDriverConnect 支持

启用提示时,SQLDDriverConnect 将使用 ODBC 登录对话框。 这允许为主体服务器及其故障转移伙伴输入 SPN。

SQLDriverConnect 将接受新的 连接字符串 关键字 ServerSPN 和 FailoverPartnerSPN,并将识别新的连接属性SQL_COPT_SS_SERVER_SPN和SQL_COPT_SS_FAILOVER_PARTNER_SPN。

当多次指定某个连接属性值时,以编程方式设置的值优先于 DSN 中的值和连接字符串中的值。 DSN 中的值优先于连接字符串中的值。

打开连接后,SQL Server Native Client 将SQL_COPT_SS_MUTUALLY_AUTHENTICATED并SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD用于打开连接的身份验证方法。

有关 SPN 的详细信息,请参阅 客户端连接(ODBC)中的服务主体名称(SPN)。

示例

以下调用说明了 SQLDriverConnect 所需的最少数据量:

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

以下连接字符串演示驱动程序完成参数值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"  

另请参阅

SQLDriverConnect 函数
ODBC API 实现细节
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)