Я пытаюсь отладить пакет dts в SSIS. У меня есть конструктор компонентов скрипта, где я передаю входные переменные для увеличения счетчика. Когда я пытаюсь установить 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.".
Ниже приведена часть кода в конструкторе компонентов скрипта:
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
Обратите внимание, что приведенная выше часть кода прекрасно работает, если я закомментирую строки с Msgbox.