Skip to main content
 首页 » 编程设计

sql-server之包部署错误之将连接字符串更改为 SQLNCLI10 或查找并安装对 SQLNCLI.1 的支持

2024年06月20日51kuangbin

我尝试在 SQL Server 代理下运行包。我的大多数错误消息表明我必须 - 将连接字符串更改为 SQLNCLI10 或查找并安装对 SQLNCLI.1 的支持。

我需要知道这个错误的含义。是否像安装驱动程序并注册一样简单,或者不仅仅是驱动程序。此问题是否存在与驱动程序无关的原因?我按照错误中提到的方式更改了提供程序,现在我收到了新的错误,这些错误是在第一个错误之后给出的。

谢谢。

完全错误 -

Code: 0xC0209302     Source: MyPackage Connection manager "MyOleDBConnection"     Description: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR.  The requested OLE DB provider SQLNCLI.1 is not registered.  
Error code: 0x00000000.  An OLE DB record is available.  Source: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  Description: "Class not registered".   
End Error   
 
Code: 0xC020F42A     Source: MyPackage Connection manager "MyOleDBConnection"     Description: Consider changing the PROVIDER in the connection string to SQLNCLI10 or  
visit http://www.microsoft.com/downloads to find and install support for SQLNCLI.1.   
End Error   
 
Code: 0xC020801C     Source: MyPackage Log provider "SSIS log provider for SQL Server"     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.   
The AcquireConnection method call to the connection manager "MyOleDBConnection" failed with error code 0xC0209302.   
There may be error messages posted before this with more information on why the AcquireConnection method call failed.   
COM error object information is available.  Source: "MyPackage"  error code: 0xC0209302   
Description: "Consider changing the PROVIDER in the connection string to SQLNCLI10 or  
visit http://www.microsoft.com/downloads to find and install support for SQLNCLI.1.  ".   
End Error   
 
Code: 0xC0209302     Source: MyPackage Connection manager "MyOleDBConnection"     Description: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR.   
The requested OLE DB provider SQLNCLI.1 is not registered. Error code: 0x00000000.   
An OLE DB record is available.  Source: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  Description: "Class not registered".   
End Error   
 
Code: 0xC020F42A     Source: MyPackage Connection manager "MyOleDBConnection"     Description: Consider changing the PROVIDER in the connection string to SQLNCLI10 or  
visit http://www.microsoft.com/downloads to find and install support for SQLNCLI.1.   
End Error   
 
Code: 0xC020801C     Source: DFT Insert Execution Log OLE_DST Insert SSIS Execution Log [25]     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.   
The AcquireConnection method call to the connection manager "MyOleDBConnection" failed with error code 0xC0209302.   
There may be error messages posted before this with more information on why the AcquireConnection method call failed.   
End Error   
 
Code: 0xC0047017     Source: DFT Insert Execution Log SSIS.Pipeline     Description: component "OLE_DST Insert SSIS Execution Log" (25) failed validation and returned error code 0xC020801C.   
End Error   
 
Code: 0xC004700C     Source: DFT Insert Execution Log SSIS.Pipeline     Description: One or more component failed validation.   
End Error   
 
Code: 0xC0024107     Source: DFT Insert Execution Log      Description: There were errors during task validation.   
End Error   
 
DTExec: The package execution returned DTSER_FAILURE (1).  

还有一个错误 -

Code: 0xC0202009     Source: MyPackage Connection manager "MyOLEDBConnection"     Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.   
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E4D  Description: "Login failed for user 'MyUser'.".   
End Error   
 
Code: 0xC020801C     Source: MyPackage Log provider "SSIS log provider for SQL Server"     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection  
method call to the connection manager "MyOLEDBConnection" failed with error code 0xC0202009.  There may be error messages posted before this with more information on why the AcquireConnection method  
call failed.  COM error object information is available.  Source: "MyPackage"  error code: 0xC0202009  Description: "SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.   
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E4D  Description: "Login failed for user 'MyUser'.".  ".   
End Error   
 
Code: 0xC0202009     Source: MyPackage Connection manager "MyOLEDBConnection"     Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.   
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E4D  Description: "Login failed for user 'MyUser'.".   
End Error   
 
Code: 0xC020801C     Source: DFT Insert Execution Log OLE_DST Insert SSIS Execution Log [25]     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.   
The AcquireConnection method call to the connection manager "MyOLEDBConnection" failed with error code 0xC0202009.  There may be error messages posted before this with more information  
on why the AcquireConnection method call failed.   
End Error   
 
Code: 0xC0047017     Source: DFT Insert Execution Log SSIS.Pipeline     Description: component "OLE_DST Insert SSIS Execution Log" (25) failed validation and returned error code 0xC020801C.   
End Error   
 
Code: 0xC004700C     Source: DFT Insert Execution Log SSIS.Pipeline     Description: One or more component failed validation.   
End Error   
 
Code: 0xC0024107     Source: DFT Insert Execution Log      Description: There were errors during task validation.   
End Error   

请您参考如下方法:

理解问题

SQL Server Native Client 提供程序是 OLE DB 连接字符串中的 SQLNCLI*。

截至本文发布时,SQL Server 2014 的 CTP2 版本中尚未包含 SQLNCLI12。

这些提供程序通常可以与 SQL Server 的早期版本通信,但版本转发的可能性较小(与 2014 通信的 SQLNCLI11 除外)。

根本原因

您有一个使用该计算机上不存在的提供程序的 OLE DB 连接字符串。也许您以 2005 格式构建了程序包,但在 2008 实例上运行它。无论如何,您的连接字符串的格式为

Provider=SQLNCLI.1;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; 

需要更新以匹配计算机上的提供程序

Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; 

这通常可以通过明智地使用 Configurations 来解决