【发布时间】:2011-03-24 19:39:55
【问题描述】:
我正在尝试使用 ADO (2.8) 而没有 TNS 将各种 VBA 项目连接到 Oracle 10g 后端。经过各种尝试,我们决定干净安装的最简单的一系列步骤包括:
- 设置 Oracle Instant Client
- 安装随附的 ODBC 驱动程序
- (通过 SQL Plus 使用 EZCONNECT 测试连接)
- (通过创建 Windows DSN 测试连接)
到目前为止一切正常。问题是,我无法弄清楚告诉 ADO 使用 instant client ODBC 驱动程序的语法,该驱动程序在我的 ODBC 驱动程序列表中显示为“Oracle in MyTest”(无引号)。使用带有 EZConnect 的 MSFT ODBC 驱动程序作为this post 建议不会比设置即时客户端之前更好(也就是说,根本没有)。但this post 似乎暗示这是可能的,但没有具体说明如何,connectionstrings.com 只告诉你字符串的数据源部分是什么样的,即 SomeUser/SomePassword@AServer:PortNumber/InstanceName
短版:引用即时客户端 ODBC 驱动程序的经典 ADO 连接字符串的确切语法是什么?
提前感谢您的帮助。我花了很长时间才开始使用 SO...
【问题讨论】:
-
这篇文章forums.oracle.com/forums/… 似乎解释了为什么 MSFT 的 ODBC 驱动程序不喜欢 ORCL 即时客户端——它提供不支持 ODBC 的 dll,但不包括它们的依赖项。不幸的是,即使我将它们复制到 IC 文件夹中,我也无法让 MSFT 的驱动程序看到这些依赖项。
-
在工作中(我现在在家,我的时区是 CET),我们一直这样做。有(现有的)Access DB,有时当添加新的 Oracle DB 时,我基本上会在控制中心添加一个 ODBC 连接(就像这里描述的 support.microsoft.com/kb/303968),然后我去复制 Access DB 中的 passthru 对象,然后在这个无限长的字符串中更改数据库名称。我猜你正在寻找这个长字符串。好吧,如果明天您的问题仍未得到解答,我可能需要粘贴该字符串,这可能会有所帮助。
-
感谢您的帮助,但我实际上希望以“最本机”的语法直接连接到 Oracle 服务器,这要么是 EZ Connect,要么是一种像这样的连接字符串嵌入式 TNS文章描述了使用codeproject.com/KB/vbscript/connection_string.aspx,但正如我在第一条评论中所描述的那样失败了。
-
我们的想法是让应用程序的 Oracle 和配置占用空间尽可能小。当然,必须安装应用程序文件,但客户端应该很轻(在 Oracleland 中这可不是什么壮举,我正在学习——即使是“即时”客户端 +“即时”ODBC 驱动程序也几乎达到 100MB)和所有指向服务器、实例和登录名必须位于应用程序文件中。没有 TNS,没有 DSN(比如说快 10 倍!)等。如果可能的话。
标签: excel vba oracle ms-access ado