我正在用 VB.NET 编写一个应用程序,它要求我使用 Oracle 数据访问客户端查询一个 Oracle 数据库。然后,我使用称为 SCAPI 接口的东西来访问我们用于数据建模的应用程序的元数据。
我已将问题简化为仅通过单击表单上的按钮执行的两个功能。
当我单击表单上的按钮时执行此功能。它创建了一个 oracle 连接,但实际上并不执行任何查询(因为我已将其余部分注释掉,但仍然出现错误):
Private Sub btnDisplayDirectories_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplayDirectories.Click
Dim ModelMart As String = "Data Source=...;User Id=...;Password=...;"
Dim OraConn As New OracleConnection(ModelMart)
OraConn.Open()
OraConn.Close()
OraConn.Dispose()
End Function
此函数只是使用 SCAPI 接口创建应用程序对象:
Private Sub btnOpenModel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenModel.Click
Dim oAPI As New SCAPI.Application
End Sub
如果我启动应用程序没有问题,首先单击 btnOpenModel,然后单击 btnDisplayDirectories。如果我单击 btnDisplayDirectories,然后单击 btnOpenModel,我会在 btnOpenModel 的第一行收到一条错误消息:
Retrieving the COM class factory for component with CLSID {2B2219EB-EDE7-49EE-BB89-5A0B4A398A63} failed due to the following error: 80004005.
我实际上已经尝试过了,我什至不必打开 Oracle 连接来得到这个错误,只需定义 Oracle 连接就会导致错误。