我可以通过本机驱动程序成功地连接到Oracle,但无法使用ODBC连接。Oracle 11g客户端软件安装在我的Windows 7 64位计算机上,以及从
Instant Client Downloads for Microsoft Windows 32-bit
.
首先让我描述一下成功的连接:
TNSNames.ORA
包含Oracle 10安装的数据:
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
VS2003-2005-10.TimeTellBV.nl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = VS2003-2005-10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = Orclvs10)
)
)
我设置了
TFDConnection
具有
DriverName := S_FD_OraId;
Params.Database := 'VS2003-2005-10';
或者,我可以绕过
TNSNAMES.ORA
直接指定:
DriverName := S_FD_OraId;
Params.Database := '(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = VS2012-2012.timetellbv.nl)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl12.timetellbv.nl) ))';
(如您所见,这是另一个不在
特恩斯纳姆斯·奥拉
)
现在通过odbc的失败尝试
安装了两个32位Oracle ODBC驱动程序:
Microsoft ODBC for Oracle版本6.01.7601.19135-我想这是Win7操作系统附带的
instantclient_11_2版本11.02.00.04中的oracle-我从上面提到的源手动安装了它(按照
Oracle Instant Client ODBC Release Notes
)中。
我已经通过这些驱动程序设置了两个系统DSN,但都不起作用。
版本6 ODBC驱动程序,为其提供“server”的tsnames.ora条目名:
以及版本11 Oracle驱动程序idem:
对于第二个,我添加了另一个条目到
特恩斯纳姆斯·奥拉
,因为那个对话框显然建议我必须浏览那个文件:
VS2012-2012.TimetellBV.nl =
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = VS2012-2012)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl12.timetellbv.nl)
)
)
我设置了
TFD-连接
具有
DriverName := S_FD_ODBCId;
Params.Add('DataSource=' + lODBCName); // The ODBC DSN Name
Params.Database := lDataSection.Values[INISTRING_DATABASENAME];
此代码和de 32位odbc管理中的“测试”按钮都失败,错误为:
Unable to connect
SQLState IM003
The specified driver could not be loaded due to system error 127: cannot find procedure
(Oracle in instantclient_11_2; D:\app\jan\product\11.2.0\client_1\SQORA32.dll)
该文件夹是安装Oracle客户端软件的位置,它包含
SQORA32.DLL
(和其他人)在我的系统路径中。
我已经尝试了各种各样的变化,包括/不包括域名,数据库名称等,没有成功。
如何正确设置ODBC连接以连接到Oracle,以便通过FireDAC在Delphi东京32位应用程序中使用?
同样没有帮助的是:
重新安装Visual Studio 2013 32位可再发行版本
将sqora32.dll复制到windows syswow64文件夹
将ORACLE_HOME环境变量设置为D:\ app\jan\product\11.2.0\client_1\
将TNS U ADMIN环境变量设置为D:\ app\jan\product\11.2.0\client U 1\
将Quala32.DLL改名为SqORA32.DLL
将日期为2011年3月11日的c:\windows\syswow64\mfc42.dll替换为日期为2011年4月27日的Oracle主文件夹中的新的