none
.net 执行DTS包的问题 RRS feed

  • 问题

  • 小弟用程序调用DTS后,当ExecuteDts过后,程序使用内存一直在增加,不知该如何及时释放资源了???

    恳请有经验的朋友指点一下。。。

    先行谢过!

     Public Function ExecuteDts(ByVal param As PackageParams) As Boolean
                Dim gopackage As DTS.Package2Class
                gopackage = New DTS.Package2Class
                Try
                    Dim MIA As Object = System.Reflection.Missing.Value
              
                    gopackage.LoadFromStorageFile(param.DtsFile, Nothing, Nothing, Nothing, Nothing, MIA)
                    '修改全局变量
                    With gopackage.GlobalVariables
                        .Item(1).let_Value(param.Source)
                        If param.SSPI Then
                            gopackage.Connections.Item("cn1").ConnectionProperties.Item("Integrated Security").Value = "SSPI"
                            gopackage.Connections.Item("cn1 复制").ConnectionProperties.Item("Integrated Security").Value = "SSPI"
                        Else
                            .Item(2).let_Value(param.User)
                            .Item(3).let_Value(param.Password)
                        End If
                        .Item(4).let_Value(param.Catalog)
                        .Item(5).let_Value(param.PosFile)
                        .Item(6).let_Value(param.M00701)
                        .Item(7).let_Value(param.M00701)
                    End With

                    gopackage.Execute()
                    'Dim DTSStr As String = "DTSRUN /F" & param.DtsFile & " /A@Source:8=" & param.Source & " /A@User:8=" & param.User & " /A@Password:8=" & param.Password & " /A@Catalog:8=" & param.Catalog & " /A@PosFile:8=" & param.PosFile & " /A@M00701:3=" & param.M00701

                    Return True
                Catch ex As Exception
                    Throw ex
                Finally
                    gopackage.UnInitialize()
                End Try
            End Function

    2011年1月11日 7:52

全部回复

  • 你好

    我便用的 DTS 方法和你有小小不同 以下是我的CODE

     

      Dim oPKG As New DTS.Package

     

                oPKG.LoadFromSQLServer("ServerName", "Username", "Password", DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, _

                        Nothing, Nothing, Nothing, "DTS Name")

     

                oPKG.GlobalVariables.AddGlobalVariable("VariableName", "Variable Value")

                oPKG.Execute()

    oPKG = Nothing

     

    Please correct me if my concept is wrong

    不知道有沒有幫助


    Chi
    2011年1月12日 7:04
    版主
  • 先谢谢ChiYau 版主

    你用的方法我也试过,内存也是释放不掉。。。

    • 已标记为答案 渔2010 2011年1月12日 7:46
    • 取消答案标记 渔2010 2011年1月12日 7:47
    2011年1月12日 7:37
  • Dim oPKG As New DTS.Package

    Dim oPKG As New DTS.Package2

    oPKG.LoadFromSQLServer

    LoadFromStorageFile

    这几种方法都试过。。

    EXECUTE过后。。内存会升上去。。

    不知道改如何去释放。。

    2011年1月12日 7:45