1
在SSIS 05(VB.NET)脚本中,发生了一个有趣的异常。开发环境不会显示有关脚本的任何错误。如何避免/删除invalidcastexception
以下错误消息显示在ETL过程的脚本组件中。
Unable To Cast COM Object Of Type 'System.__ComObject' To Class Type 'System.Data.SqlClient.SqlConnection
连接管理器正在使用中。
Dim connMgr As IDTSConnectionManager90
这里应用CType
命令。
公共覆盖子AcquireConnections(BYVAL交易为对象)
connMgr = Me.Connections.Connection sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection) End Sub
任何经验如何避免这个问题?任何帮助将不胜感激。
btw 2012版本(在C#中)没有任何问题。 2005版本被手动降级/重写。
public override void AcquireConnections(object Transaction)
{
connMgr = this.Connections.Connection;
sqlConn = (SqlConnection)connMgr.AcquireConnection(null);
}
附录: 这是行不通的。
sqlConn =新的SqlConnection(connMgr.ConnectionString)
有一点要注意的,如果你正在使用显式事务,这将不会在现有的连接管理器的事务中登记 – billinkc
是,对于暗示的感谢。 – mnemonic