0

使用标准的 Delphi dbexpress dbexpora.dll + oci.dll (10g)(安装了 oracle 即时客户端)。

当直接在 Oracle 数据库上时,我们可以很好地运行 dbexpress 应用程序。在这种情况下使用的本地 dbxconnections.ini 别名只是将我们的数据库服务名称 ORCL 指定为“数据库”参数。

我们正在尝试从客户端计算机连接到同一个数据库并收到一系列错误。

自然,我们在数据库参数中尝试各种字符串。使用像 MOHAWK2:1521:ORCL 这样的字符串,我们至少可以得到一个监听器错误:

连接失败:ORA-12514 TNS:监听器当前不知道连接描述符中请求的服务。

我想有一些工具可以测试命名可用性......

4

4 回答 4

2

在服务器上使用 TNSPING 来查看它是如何解析服务名称的。各种配置选项和文件可以将一个简单的名称映射到一个完整的服务器/端口/服务。

C:>TNSPING ORCL

使用 TNSNAMES 适配器解析别名尝试联系 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE))) OK (0 毫秒)

提取服务器/端口/服务并以您使用的组件或连接方法所需的任何格式构造连接字符串。

于 2009-05-13T18:55:21.353 回答
1

侦听器是否在 oracle 服务器上设置并运行?它是否接受您要连接的数据库的实例/服务的连接?你检查过 lsnrctl 状态吗?您是否尝试打开 sqlnet 日志记录和侦听器日志记录,以查看您是否甚至从远程站点连接到数据库,以及在 listner 日志中记录了哪些错误以说明其拒绝服务的原因?监听器是接受 tcp 连接还是监听器只接受 IPC 连接?如果不监听 tcp 连接,它将不接受远程连接。

于 2009-05-13T19:47:18.273 回答
1

首先使用 tnsping 检查连接性。如果正常,请尝试使用 sqlplus 连接。如果 tnsping 失败,您使用的服务名称不正确,或者您没有正确配置客户端。如果您依赖本地配置,则要编辑的文件是 ORAHOME\NETWORK\ADMIN 中的 tnsnames.ora,需要配置设置才能定位服务器,其中包括主机、端口和服务名称。

于 2009-05-13T19:48:46.057 回答
1

抱歉,关于 CAPS,这对我来说是全新的。我没有任何声誉,我所做的现在已经被降低到这个问题标题是大写的。我不知道如何对所有回答的人发表评论......因为它不会让我......我没有足够的声誉。我想我需要移动到另一个论坛....

反正,

解决了!

我设置了一个新的 vmware 克隆——在一个目录中安装了 oracle 客户端和我们的几个 dll 和 exe,它可以工作。

所以我删除了我正在使用的盒子和宾果游戏中所有无关的东西。

我认为那台机器上已经存在来自delphi 2007的干扰......尽管试图绕过它周围的一切。

于 2009-05-14T14:15:07.783 回答