InstallShield 2012:什么是连接到Oracle数据库的正确方法
问题描述:
我有一个InstallScript MSI项目,我需要连接到Oracle数据库。InstallShield 2012:什么是连接到Oracle数据库的正确方法
我配置了tnsnames.ora文件并安装了Oracle客户端。以下代码是从OnSQLLogin功能:
SQLRTInitialize2();
...
nResult = SQLServerSelectLogin2(szConnection, szServer, szUser, szPassword, bWinLogin, szDB, TRUE, TRUE);
if (nResult = NEXT) then
SQLRTPutConnectionInfor2(szConnection, szServer, szDB, szUser, szPassword);
SQLRTPutConnectionAuthentication (szConnection, bWinLogin);
nResult = SQLRTTestConnection2(szConnection, szServer, szDB, szUser, szPassword, bWinLogin);
...
endif;
即后显示的下一个被按下该错误消息是这样的:
Error 27502. Could not connect to Oracle '192.168.10.150'.
[Microsoft][ODBC driver for Oracle]
[Oracle]ORA=12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA(12504)
szServer = IP地址 深发展被设定为从TNSNAMES的SERVICE_NAME。 ora
我还需要做些什么才能让IS与Oracle合作?
一个例子会很棒。
答
它总是很简单的事情。事实证明,当文件被保存时,它被命名为tnsnames.ora.ora
更改为tnsnames.ora并遵循用户指南中的说明并且所有工作。
进一步检查日志文件时,它看起来像我有一个TNS问题。我有一个位于Oracle .. \ network \ admin文件夹中的tnsnames.ora文件。我添加了一个TNS_ADMIN env变量。此链接表示IS在tnsnames.ora文件中查找:http://community.flexerasoftware.com/showthread.php?t=171543&page=2&highlight=tnsnames.ora但日志中另有说明。 – 2012-04-09 15:59:23
1:CSQLServerBrowse :: GetServerList()开始。 1:CSQLServerBrowse :: GetServerList:试图检索Oracle的服务器名称。 1:CSQLServerBrowse :: GetServerList:Retriving在本地机器上注册的Oracle TNS服务名称。 1:CSQLServerBrowse :: GetServerList()结束。 1:CSQLServerList :: PopulateListBoxOrComboBox:填充IS_SQLSERVER_LIST列表框。 (1):2262 2:ListBox 3:-2147287038 1:CSQLServerList :: DoSQLServerList()结束。MSI(c)(E8:14)[10:48:05:120] – 2012-04-09 16:02:16