Ошибка служб SSIS 2005 при использовании конструктора компонента сценария: "Невозможно извлечь строку из поставщика OLE DB"BULK"для связанного сервера"(null)"
Я пытаюсь отладить пакет dts в SSIS. У меня есть конструктор компонентов скрипта, где я передаю входные переменные для увеличения счетчика. Когда я пытаюсь установить msgbox значение счетчика, я получаю следующую ошибку.
Ошибка: 0xC0202009 от STAGING1 до STAGING2, STAGING2 Назначение [1056]: Произошла ошибка OLE DB. Код ошибки: 0x80040E14. Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL". Hresult: 0x80040E14 Описание: "Невозможно получить строку из поставщика OLE DB"BULK"для связанного сервера"(null)".". Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL". Результат: 0x80040E14 Описание: "Поставщик OLE DB"BULK"для связанного сервера" (null) "сообщил об ошибке. Поставщик не предоставил никакой информации об ошибке.". Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL". Результат: 0x80040E14 Описание: "Тайм-аут чтения из буфера DTS".
Ниже приведена часть кода в конструкторе компонентов скрипта:
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.
1 ответ
Это действительно задача DTS в SSIS? Просто убеждаюсь.
Если да, рассматривали ли вы возможность переписывания в сценарии SSIS и использования точек останова в BIDS?
Возможно, вам следует попробовать перейти к пакету DTS через SSMS > Управление> Устаревший и устранить неполадки оттуда - по возможности уберите BIDS из картины.