65.9K
CodeProject 正在变化。 阅读更多。
Home

SSIS 基本 OLEDB / ODBC 目标脚本

starIconstarIconstarIconemptyStarIconemptyStarIcon

3.00/5 (1投票)

2008 年 5 月 30 日

CPOL

1分钟阅读

viewsIcon

52143

downloadIcon

164

一个简单的目标脚本,用于使用子查询执行更新。

引言

这是一个用于 SSIS 数据流脚本组件的基本脚本,可以修改以使用 OLEDB 或 ODBC 驱动程序执行 SQL 命令。 我创建这个的原因是我的 OLEDB 命令组件不允许我执行带有子选择的 Update 子句。

背景

我搜索了很长时间,希望能找到一个简单的 VBScript 示例,只需在 SSIS 中执行数据库查询。 我找不到,所以不得不修改 MSDN 示例以适应我的目的。

Using the Code

您需要做的就是使用派生列组件或变量创建您的 SQL 命令。 然后,将其作为输入列(此处命名为“SQL_UPDATE”)添加到脚本组件,并通过连接管理器选项卡添加您的连接(此处命名为 MyConnection)。

现在,脚本应该可以使用了。

这是最基本的脚本

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '
        Dim Dest As DBDestination = New DBDestination()
        Dest.Save(Row.SQLUPDATE, Me.Connections.MyConnection.ConnectionString)

    End Sub
End Class

Public Class DBDestination

    Public Sub Save(ByVal command As String, ByVal connection As String)
        'Using cn As System.Data.Odbc.OdbcConnection = _
        '    New System.Data.Odbc.OdbcConnection(_connection)
        Using cn As System.Data.OleDb.OleDbConnection = _
                 New System.Data.OleDb.OleDbConnection(connection)
            cn.Open()
            'Dim cmd As System.Data.Odbc.OdbcCommand = cn.CreateCommand()
            Dim cmd As System.Data.OleDb.OleDbCommand = cn.CreateCommand()

            cmd.CommandType = CommandType.Text
            cmd.CommandText = command
            cmd.ExecuteNonQuery()
        End Using
    End Sub

End Class

关注点

这里没有什么特别的。 只是一个解决令人烦恼问题的基本方案。 但由于 SSIS 易于使用,我不想编写大量的代码来维护 SSIS 提供的易于维护性。 请随意使用和修改代码。

© . All rights reserved.