首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

实在没办法了,大家来帮帮忙,一个关于SSIS的有关问题,大家来看一下.

2013-06-26 
实在没办法了,大家来帮帮忙,一个关于SSIS的问题,大家来看一下.......在SSIS中写了一个vb script,功能是把

实在没办法了,大家来帮帮忙,一个关于SSIS的问题,大家来看一下.......
在SSIS中写了一个vb script,功能是把一个特定的值赋给EXCEL的一个特定的格子,测试OK,单独运行SSISok.


但当我把这个task放到SQL Server Job Agent中去跑的时候,得到如下BUG:

System.Exception: Cannot create ActiveX component.     at Microsoft.VisualBasic.Interaction.GetObject(String PathName, String Class) 


我查过了,不是什么用户权限的问题,其他的SSIS job都可以正常地在SQL Server Job Agent下运行.以往也遇到过单独运行ok,一放到sqlserver agent就报错的情况,但这个问题已经修复,我还试过通过在agent中调用sqlserver store的方式调用ssis,依旧报错.

下面是我的vb代码


' Microsoft SQL Server Integration Services Script Task
' Write scripts using Microsoft Visual Basic 2008.
' The ScriptMain is the entry point class of the script.

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
Imports Excel = Microsoft.office.interop.excel

<System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="", Description:="")> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

Enum ScriptResults
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum


' The execution engine calls this method when the task executes.
' To access the object model, use the Dts property. Connections, variables, events,
' and logging features are available as members of the Dts property as shown in the following examples.
'
' To reference a variable, call Dts.Variables("MyCaseSensitiveVariableName").Value
' To post a log entry, call Dts.Log("This is my log text", 999, Nothing)
' To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, True)
'
' To use the connections collection use something like the following:
' ConnectionManager cm = Dts.Connections.Add("OLEDB")
' cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;"
'
' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.

' To open Help, press F1.

Public Sub Main()
        Dim mybook As Excel.Workbook
        Dim mysheet As Excel.Worksheet
        'Dim Excel As Microsoft.Office.Interop.Excel.Application()

        Dim batch_no As Integer = Val(Dts.Variables("batch_no").Value)

        Dim new_batch_no As String = "00000" + Str(batch_no + 1)


        mybook = GetObject("\\sydnas1\schenkeredi\Transport\SapphireAU\ExternalCarrier\RossFreight\EDIOUT\test.xls")


        'Excel = GetObject(, "Microsoft.Office.Interop.Excel.Application")
        mysheet = mybook.Sheets(1)

        mysheet.Cells(1, 3).Value = Right(Replace(new_batch_no, " ", ""), 5)

        mybook.Save()
        mybook.Windows(1).Visible = True
        mybook.Close(True)
        mysheet = Nothing
        mybook = Nothing
Dts.TaskResult = ScriptResults.Success
End Sub

End Class


[解决办法]
参考http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/7fcbfc4b-2211-47b0-9e17-60266d5923b4,是否是类似的问题

热点排行