VB6连接到Oracle DB的依赖关系

时间:2013-10-07 15:34:41

标签: vb6 oracle11g windows-xp ado windows-2000

我有一个旧的VB6应用程序,它使用ADO连接到SQL服务器数据库,如:

Dim cnServer As New ADODB.Connection
cnServer.Provider = "sqloledb"
sConnectString = "Server=" & txtServer.Text & ";" & _
                 "Database=" & txtDatabase.Text & ";" & _
                 "User ID=" & txtUserID.Text & ";" & _
                 "Password=" & txtPassword.Text & ";" & _
                 "Connect timeout=10"
cnServer.Open sConnectString

......一直有效。但现在我需要修改它以连接到Oracle 11g数据库。我找到this article并将代码修改为:

Dim cnServer As New ADODB.Connection
cnVLServer.Provider = "OraOLEDB.Oracle"
sConnectString = "Server=" & txtServer.Text & ";" & _
                 "Data Source=" & txtDatabase.Text & ";" & _
                 "User ID=" & txtUserID.Text & ";" & _
                 "Password=" & txtPassword.Text & ";" & _
                 "Connect timeout=10"
cnVLServer.Open sConnectString

...但是当我运行它时,我收到一条错误,内容为3706, Provider cannot be found. It may not be properly installed.这种情况发生在我的开发虚拟机上(不要笑 - 仍然在Win2K Pro上),也在我的测试机器(使用Win XP)。

进一步的搜索表明oracore11.dll是一个依赖项,所以我去了Oracle的下载站点,并将这个DLL作为.zip文件的一部分下拉,该文件包含了我所需要的全套Windows相关编码工具。但是,即使我将此DLL放在与我的VB6可执行文件相同的文件夹中,仍会出现错误。当我尝试注册DLL时,尝试只会生成另一个错误:The specified module could not be found.

在开始对可能是错误的路径或无法解决的问题进行进一步的颠簸之前,我想我应该检查一下,看看最好/最简单的方法,让VB6应用程序首先连接到Oracle。我的目标是让这个VB6应用程序尽可能便携,不需要任何预安装的软件包,并且使用.exe本身可以轻松传递最少的依赖项。 (作为参考,这个VB6应用程序不是商业上分布的产品,只是我工作中自己部门内部使用的测试工具。它采用平面文件固定宽度数据,解析它,然后生成SQL代码将其插入到DB。)

1 个答案:

答案 0 :(得分:1)

要配置Oracle Database Instant,您必须:

  1. 在您的系统上安装Oracle Database Instant Client及其ODBC驱动程序;
  2. 设置TNS_ADMIN环境变量;
  3. 为您的客户端配置tnsnames.ora配置文件。
  4. 有关详细信息,请参阅此link