我正在尝试使用ADO(2.8)和没有TNS将各种VBA项目连接到Oracle 10g后端.经过不同的尝试,我们决定了一个干净安装的最简单的步骤包括:
>设置Oracle Instant Client
>安装随附的ODBC驱动程序
>(使用EZCONNECT通过sql Plus测试连接)
>(通过创建Windows DSN测试连接)
一切到这里工作正常.问题是,我无法弄清语法来告诉ADO将我的ODBC驱动程序列表中显示的即时客户端ODBC驱动程序用作“MyTest中的Oracle”(无引号).将EZConnect的MSFT ODBC驱动程序用作this post建议不会比设置即时客户端(也就是说根本没有)更好.但是,this post似乎建议可能,而不说明如何,connectionstrings.com只告诉你字符串的数据源部分是什么样的,即
SomeUser的/ SomePassword @ Aserver的:端口号/实例名
简短版本:引用即时客户端ODBC驱动程序的经典ADO连接字符串的确切语法是什么?
在此先感谢您的帮助.给我一个愚蠢的很长一段时间才能和SO一起去…
解决方法
类似于’user1206604的答案 – 我使用ODBC数据源管理员设置了一个ODBC连接(例如,我们将其命名为“DEMO”),并连接如下:
Dim conn As New adodb.Connection Set conn = New adodb.Connection connStr = "Provider=OraOLEDB.Oracle;Data Source=DEMO;User Id=yourUserID;Password=yourPassword;" conn.Open connStr Dim api As New adodb.Recordset Set api = New adodb.Recordset yourQueryString = "SELECT foo FROM bar" api.Open yourQueryString,conn,adOpenDynamic,adLockReadOnly 'adjust above setting as needed while not api.EOF 'do interesting stuff here wend 'clean up resources api.Close Set api = Nothing conn.Close Set conn = Nothing
在开始菜单>中找到ODBC数据源管理员(在我的机器上)节目> Oracle – oraClient10g>配置和迁移工具> Microsoft ODBC管理员,如下所示: