_
_
Public Class ScriptMain
' The execution engine calls this method when the task executes.
' To access the object model, use the Dts object. Connections, variables, events,
' and logging features are available as static members of the Dts class.
' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
'
' To open Code and Text Editor Help, press F1.
' To open Object Browser, press Ctrl+Alt+J.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub Main()
Dim result As Integer
result = Dts.Results.Success
Try
' Get selected package.
Dim manager As ConnectionManager = Dts.Connections(Me.PackageConnection)
Dim connection As IPackageConnection = CType( _
manager.AcquireConnection(Nothing), _
IPackageConnection)
Dim package As Package = CType(connection.GetPackage(), Package)
' Get selected data flow component.
Dim dataFlowComponent As IDTSComponentMetaData90 = CType( _
connection.GetObjectFromPackage(Me.DataflowDestination), _
IDTSComponentMetaData90)
' Get data reader object.
Dim dataReader As IDataReader
Do
Try
dataReader = CType( _
dataFlowComponent.CustomPropertyCollection("DataReader").Value, _
IDataReader)
Catch ex As Exception
Call Thread.Sleep(1 * 1000) ' Wait one second for object to be setup.
End Try
Loop While dataReader Is Nothing
' Store data reader enumerator in specified package variable.
Dim vars As Variables
Call Dts.VariableDispenser.LockOneForWrite(Me.EnumeratorVariable, vars)
Try
vars(Me.EnumeratorVariable).Value = New DataReaderEnumerator(dataReader)
Finally
Call vars.Unlock()
End Try
Catch ex As Exception
result = Dts.Results.Failure
Dts.Events.FireError(0, String.Empty, ex.Message, String.Empty, 0)
End Try
Dts.TaskResult = result
End Sub ' Main
Public Function Validate(ByRef errMessage As String) As Boolean
Dim result As Boolean
result = False
If String.IsNullOrEmpty(Me.PackageConnection) Then
errMessage = "Please specify package connection."
ElseIf String.IsNullOrEmpty(Me.DataflowDestination) Then
errMessage = "Please specify data flow destination."
ElseIf String.IsNullOrEmpty(Me.EnumeratorVariable) Then
errMessage = "Please specify enumerator variable (Object)."
Else
result = True
End If
Validate = result
End Function ' Validate
#Region "Properties"
_
_
_
Public Property PackageConnection() As String
Get
PackageConnection = m_packageConnection
End Get
Set(ByVal value As String)
m_packageConnection = value
End Set
End Property ' PackageConnection
_
_
_
Public Property DataflowDestination() As String
Get
DataflowDestination = m_destination
End Get
Set(ByVal value As String)
m_destination = value
End Set
End Property ' DataflowDestination
_
_
_
Public Property EnumeratorVariable() As String
Get
EnumeratorVariable = m_enumVar
End Get
Set(ByVal value As String)
m_enumVar = value
End Set
End Property ' EnumeratorVariable
#End Region ' Properties
#Region "Internals"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private ReadOnly Property PackageConnectionType() As String
Get
PackageConnectionType = "PACKAGE"
End Get
End Property ' PackageConnectionType
#End Region ' Internals
#Region "Attributes"
Private m_packageConnection As String
Private m_destination As String
Private m_enumVar As String
#End Region ' Attributes
End Class ' ScriptMain]]>
]]>