2016-06-29 4 views
0

Контрольный поток ssis состоит из задачи сценария, которая пытается открыть файл n excel и сохранять его как файл txt с помощью метода workbookopen и метода saveas. Это показывает ошибку при подножке PKGssis Ошибка: исключение было выбрано целью вызова

The file path is of the format \\11.111.111.1\folder1\folder2\file.xlsx 


at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
     at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
     at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
     at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) 
     at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 

Сценария который используется в

Public Sub Main() 



     Dim WScript As Object         '''= Nothing '' with out nothing it was showing an error 
     Dim oExcel As Object 
     Dim oBook As Object 



     Dim varoroviderFileLocation_script As String 
     Dim varFileName_script As String 
     Dim FullPath_script As String 

     Dim v_Reversestring As String 
     Dim v_ReplaceString As String 




     varoroviderFileLocation_script = Dts.Variables("User::varoroviderFileLocation").Value.ToString() 
     varFileName_script = Dts.Variables("User::varFileName").Value.ToString() 
     FullPath_script = Dts.Variables("User::varoroviderFileLocation").Value.ToString() + "\" + Dts.Variables("User::varFileName").Value.ToString() 

     MessageBox.Show(varoroviderFileLocation_script) 
     MessageBox.Show(varFileName_script) 
     MessageBox.Show(FullPath_script) 


     oExcel = CreateObject("Excel.Application") 

     oBook = oExcel.Workbooks.Open(FullPath_script) 

     MessageBox.Show("FullPath_script " + FullPath_script) 




     v_Reversestring = StrReverse(FullPath_script) 
     v_Reversestring = v_Reversestring.Substring(5, Len(v_Reversestring) - 5) 
     MessageBox.Show(v_Reversestring) 
     v_Reversestring = StrReverse(v_Reversestring) 



     v_ReplaceString = v_Reversestring + ".txt" 

     MessageBox.Show("v_ReplaceString " + v_ReplaceString) 

     oBook.SaveAs(v_ReplaceString, -4158) 




     oBook.Close(False) 
     oExcel.Quit() 
     WScript.Echo("Done") 


     Dts.TaskResult = ScriptResults.Success 
    End Sub 
+1

Можете ли вы вставить фактическую (соответствующую часть) кода компонента скрипта в вопрос? – steenbergh

+0

Также: ошибки по умолчанию при доступе к файлам Excel: открыт ли файл в другом процессе? Вы должны проверить Монитор задач, чтобы увидеть, существуют ли затяжные экземпляры EXCEL, используемые системой. И имеет ли учетная запись, используемая для запуска этого пакета, R/W доступ к местоположению файла? – steenbergh

+1

Можете ли вы пройти через код с помощью отладчика и сообщить нам, в какой строке возникает ошибка? – steenbergh

ответ

0

По моему опыту, при работе с Office, эта ошибка связана с 64-битной средой выполнения. В свойствах проекта при конфигурации вы должны иметь этот набор равным false. В других случаях я вижу, что эта ошибка связана с тем, что связанная DLL не находится в GAC или ссылка на которую указана неправильно.

+0

64 время выполнения - false. Показывает ошибку. Он показывает имя файла как ~ $ File.xlsx, в отладке – user1254579