2012-04-06 64 views
0

我有一个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合作?

一个例子会很棒。

+0

进一步检查日志文件时,它看起来像我有一个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

+0

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

回答

0

它总是很简单的事情。事实证明,当文件被保存时,它被命名为tnsnames.ora.ora

更改为tnsnames.ora并遵循用户指南中的说明并且所有工作。

相关问题