SQLDriverConnect

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

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

有关 SQL Server Native Client ODBC 驱动程序中可用的关键字 (keyword)列表,请参阅将 连接ion String Keywords 与 SQL Server Native Client 配合使用。

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

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

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

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

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

当指定 SQL_DRIVER_NOPROMPT 时,用户身份验证关键字必须具有值。 驱动程序确保字符串“Trusted_Connection=yes”或 UID 和 PWD 关键字存在。

如果 DriverCompletion 参数值SQL_DRIVER_NOPROMPT或SQL_DRIVER_COMPLETE_REQUIRED并且语言或数据库来自连接字符串并且两者都无效,则 SQLDriver连接返回SQL_ERROR。

如果 DriverCompletion 参数值SQL_DRIVER_NOPROMPT或SQL_DRIVER_COMPLETE_REQUIRED,并且语言或数据库来自 ODBC 数据源定义,则 SQLDriver连接使用默认语言或数据库进行指定的用户 ID 并返回SQL_SUCCESS_WITH_INFO。

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

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

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

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

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

SQLDriver连接将接受新的 连接字符串 关键字 (keyword) ServerSPN 和 FailoverPartnerSPN,并将识别新的连接属性SQL_COPT_SS_标准版RVER_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 的详细信息,请参阅客户端连接ions (ODBC)中的服务主体名称(SPN)。

示例

以下调用说明了 SQLDriver 所需的最少数据量连接

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)