SQLDriverConnect

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 驱动程序将从显示的对话框中检索关键字 (keyword) 值。 如果关键字 (keyword) 值在连接字符串中传递,并且用户不更改对话框中关键字 (keyword) 的值,则SQL Server Native Client ODBC 驱动程序将使用连接字符串中的值。 如果在连接字符串中未设置值,并且用户在对话框中未指定任何值,则驱动程序将使用默认值。

SQLDriverConnect当任何 DriverCompletion 值需要 (或可能需要) 驱动程序的连接对话框的显示时,必须为其提供有效的 WindowHandle。 无效句柄将返回 SQL_ERROR。

指定 DRIVER 或 DSN 关键字。 ODBC 规定,如果同时指定了这两个关键字,驱动程序将使用左边的关键字,而忽略另一个关键字。 如果指定了 DRIVER,或是两者中最左侧的,并且 SQLDriverConnectDriverCompletion 参数值SQL_DRIVER_NOPROMPT,则需要 SERVER 关键字 (keyword) 和适当的值。

当指定 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 连接到Always On可用性组群集的详细信息,请参阅SQL Server Native Client高可用性和灾难恢复支持

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

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

SQLDriverConnect 将接受新的连接字符串关键字 ServerSPNFailoverPartnerSPN,并将识别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);  

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"  

另请参阅

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