Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用脚本组件设计器时出现SSIS 2005错误:“无法从链接服务器的OLE DB提供程序“大容量”中获取行”(null)_Ssis_Ssis 2005 - Fatal编程技术网

使用脚本组件设计器时出现SSIS 2005错误:“无法从链接服务器的OLE DB提供程序“大容量”中获取行”(null)

使用脚本组件设计器时出现SSIS 2005错误:“无法从链接服务器的OLE DB提供程序“大容量”中获取行”(null),ssis,ssis-2005,Ssis,Ssis 2005,我正在尝试调试SSIS中的dts包。我有一个脚本组件设计器,在其中传入输入变量以递增计数器。当我尝试msgbox计数器值时,我得到以下错误 Error: 0xC0202009 at STAGING1 to STAGING2, STAGING2 Destination [1056]: An OLE DB error has occurred. Error code: 0x80040E14. An OLE DB record is available. Source: "Microsoft SQL

我正在尝试调试SSIS中的dts包。我有一个脚本组件设计器,在其中传入输入变量以递增计数器。当我尝试msgbox计数器值时,我得到以下错误

Error: 0xC0202009 at STAGING1 to STAGING2, STAGING2 Destination [1056]: An OLE DB error has occurred. Error code: 0x80040E14. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Reading from DTS buffer timed out.".
请注意,如果我注释掉包含Msgbox的行,上面的代码部分工作得非常好。

这实际上是SSIS中的DTS任务?请确保

如果是这样,您是否考虑过在SSIS脚本任务中重写并利用BIDS中的断点


也许您应该尝试通过SSMS>管理>遗留和故障排除转到DTS包,如果可能的话,从图片中删除出价。

是的,Sam,这是一项从ADABAS文件到Oracle的DTS任务,同时在SSIS中维护暂存表和映射环境。我对SSIS比较陌生。我已经提到了断点w我在脚本中还添加了“watch”,包在断点处暂停,但不知怎么的,它似乎没有击中设计脚本。也许我可以检查是否执行您的后一个建议,但我确实需要能够通过应用程序进行调试。
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

Public Class ScriptMain
    Inherits UserComponent

    Dim iCounter As Integer
    Dim iCurrentVal As Integer
    Dim sCurrentOracleSeq As String
    Dim sSeqName As String
    Dim sSeqAltProcName As String

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '
        ' Add your code here
        '
        Row.SEQIDNCASE = iCounter + iCurrentVal
        iCounter += 1
        MsgBox(iCounter + iCurrentVal, MsgBoxStyle.Information, "Input0")
    End Sub

    Public Overrides Sub PreExecute()
        sCurrentOracleSeq = Me.Variables.VSEQIDCurVal

        iCurrentVal = CInt(sCurrentOracleSeq)
        MsgBox(iCurrentVal, MsgBoxStyle.Information, "No Title")
        iCounter = 0
        sSeqName = Me.Variables.VSEQIDName
        sSeqAltProcName = Me.Variables.VSEQIDAlterProc
    End Sub

    Public Overrides Sub PostExecute()
        Me.Variables.VSEQIDUpdateSQL = "Begin " & sSeqAltProcName & "('" & sSeqName & "'," & (iCounter + iCurrentVal) & "); End;"
    End Sub
End Class