0

我正在尝试从我的 excel 宏连接到 Oracle DB。当我在安装了 Oracle 组件的笔记本电脑上运行此宏时,它运行良好。当我在没有安装 Oracle 组件的笔记本电脑上运行它时,它会抛出一个错误提示Could not connect to the database. Check your username and password. Oracle client and networking components were not found. These components are part of Oracle 7.3.3 or later client software installation

我正在尝试使用以下参数连接到 Oracle:-

Dim dbConnect As ADODB.Connection
Dim strUserName As String
Dim strPassword As String
Dim strDatabase As String

Set dbConnect = New ADODB.Connection

dbConnect.Open ( _
"User ID=" & strUserName & "; Password=" & strPassword & "; Data Source=" & strDatabase & "; Provider=msdaora")

我们的大多数用户没有安装 Oracle。

4

1 回答 1

0

如果没有相应的组件,您将无法访问 Oracle 数据库。

ADO 只是一个访问各种数据提供者的编程接口,因此它依赖于较低级别的组件。

Provider=msdaora参数指定“Microsoft OLE DB Provider for Oracle”并使用 OLE DB 层将数据访问组件表示为面向对象的 API。

反过来,OLE DB 只是一个代表底层数据访问级别的对象模型。在 Oracle 数据库的情况下,此级别由 Oracle 客户端组件表示,因此如果要连接到 Oracle,则需要安装它。

另请注意,用于 Oracle 的 MS OLE DB 提供程序有许多限制,已过时且不受支持,并且使用非常非常旧的 OCI7 调用接口。

为了简化部署,您可以将Oracle 数据访问组件 (ODAC) 与 Xcopy 部署一起使用。它的重量不到 80MB,可以在不运行 Universal Installer 应用程序的情况下进行部署。如 readme.txt 文件中所述,只需 3 个步骤即可安装:

  1. 将 ODAC(xcopy 版本)zip 文件下载到用于暂存 ODAC 产品的目录。

  2. 解压 ODAC(xcopy 版本)zip 文件以展开内容。

  3. 执行 install.bat 安装和配置 ODAC 产品。

该组件替代了 Microsoft OLE DB 提供程序,并且已经包含可以从 Excel VBA 应用程序访问的最新 Oracle 客户端实现(在此处查找连接字符串格式)。

于 2013-10-07T16:02:08.193 回答