gpt4 book ai didi

sql-server - 可以将 OleDbConnections 与脚本组件一起使用吗?

转载 作者:行者123 更新时间:2023-12-04 13:16:55 25 4
gpt4 key购买 nike

我正在构建一个 ssis 包,我希望在脚本组件中使用现有的 OleDbConnection。这是我的代码:

public override void AcquireConnections(object Transaction)
{
base.AcquireConnections(Transaction);
cm = this.Connections.Connection;
con = (OleDbConnection)cm.AcquireConnection(Transaction);
MessageBox.Show(con.ToString());

}

当我关闭 BIDS 时,我收到以下消息:
“System.InvalidCastException:无法将“System.__ComObject”类型的 COM 对象转换为“System.Data.OleDb.OleDbConnection”类类型。表示 COM 组件的类型实例无法转换为不表示 COM 组件的类型;但是只要底层 COM 组件支持对接口(interface)的 IID 的 QueryInterface 调用,它们就可以转换为接口(interface)。”

相同的代码适用于 Ado.Net 连接。我可以在这里使用 OleDbConnection 还是脚本组件只支持 Ado.Net?

提前致谢。

最佳答案

MSDN 中所述

You cannot call the AcquireConnection method of connection managers that return unmanaged objects, such as the OLE DB connection manager and the Excel connection manager, in the managed code of a Script task.


您需要使用 ADO.NET连接管理器,如果你想使用 Aquire Connection方法
为了使用 OLEDB 连接,请添加对 Microsoft.SqlServer.DTSRuntimeWrap 的引用并尝试下面的代码
ConnectionManager cm = Dts.Connections["oledb"];
IDTSConnectionManagerDatabaseParameters100 cmParams =
cm.InnerObject as IDTSConnectionManagerDatabaseParameters100;
OleDbConnection conn = cmParams.GetConnectionForSchema() as OleDbConnection;
MSDN Link

关于sql-server - 可以将 OleDbConnections 与脚本组件一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15792632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com