2012-10-09 39 views
0

我遇到了一個錯誤,我無法弄清楚代碼有什麼問題。它發生在我嘗試創建一個對象時(objbl = CreateObject(「SQLXMLBulkLoad.SQLXMLBulkload.4.0」))。無法創建Active X對象

我錯過了什麼?

Try 
      objbl = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0") // error happens on this line. 
      objbl.ConnectionString = ReadVariables("ConnectionString") 

      Console.WriteLine(objbl.connectionstring.ToString) 

      objbl.ErrorLogFile = workingdirectory & "\error.log" 
      objbl.TempFilePath = workingdirectory & "" 'workingdirectory 
      objbl.CheckConstraints = True 
      objbl.KeepIdentity = False 
      objbl.Transaction = True 

      'objbl() 

     Catch ex As System.Exception 
      Console.WriteLine("Error initializing SQL Bulk load object." & Chr(13) & Chr(10) & ex.ToString) 
      WritetxtToLog("Error initializing SQL Bulk load object." & Chr(13) & Chr(10) & ex.ToString, 1) 
      Exit Sub 
     End Try 

這裏的異常錯誤:

System.Exception的被抓 消息= 「無法創建ActiveX組件。」 源= 「Microsoft.VisualBasic程序」 堆棧跟蹤: 在Microsoft.VisualBasic.Interaction.CreateObject(字符串的ProgID字符串服務器名稱) 在XMLshredapp.XMLShredApp.InitBulkLoad()在C:\ ShredApp \ XMLshredapp \ XMLShredApp.vb:線460 InnerException:

回答

0

這些錯誤「ActiveX無法創建對象」通常表示您提供給CreateObject的ProgID未知。

換句話說,你得到這個錯誤,如果進程id(SQLXMLBulkLoad.SQLXMLBulkload.4.0)的錯誤或屬於未在註冊表中註冊的DLL。

您可以搜索運行此應用程序的計算機上的註冊表,並查看註冊表中是否存在SQLXMLBulkLoad?如果沒有,你需要找到該DLL並註冊它(使用regsvr32

+0

我該如何檢查註冊表? – Testifier

+0

打開程序regedit,Ctrl-F,然後搜索SQLXMLBulkLoad。如果它沒有找到任何東西,那麼它沒有註冊。如果你什麼也沒找到,那麼你需要得到包含SqlXmlBulkLoad定義的DLL並註冊它。 –

+0

找到了。在那。怎麼辦?它被稱爲「SQLXMLBulkLoad類」 – Testifier