delph7Midas+Oracle8i三层的部署问题,急,在线等~~

neo3456 2004-11-16 11:56:59
机器上装了Oracle8i服务器版,无Delphi7(部署嘛)。
客户端注册了midas.dll
中间层应用服务器(DbExpress开发)的winnt\system32中放了oci.dll、dbexpora.dll
开了scktsrvr.exe

可是运行客户端,中间层都没有弹出来(自动激活运行)就报错:
---------------------------
DAX Error
---------------------------
ORA-12154: TNS: 无法处理服务名.
---------------------------
确定
---------------------------

请问是问题出在哪里:
少了.dll?
中间层配置错了数据库服务名?
还是其他
...全文
236 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
neo3456 2004-11-18
  • 打赏
  • 举报
回复
问题基本确认:
中间层的SocketConnetion.Connected属性开发时(在Object Inspector中)无意中设置成了True,SocketConnection的ConnectString属性中将DataBase、User_Name、Password设死了。

这样的好处是在用TSQLStoredProc控件关联存储过程时,可以直接在(Object Inspector)中选择数据库的存储过程。

可我万万没想到,中间层被客户端激活(调用)的时候,写死的SocketConnetion.Connected为True就会报
---------------------------
DAX Error
---------------------------
ORA-12154: TNS: 无法处理服务名.
---------------------------
确定
---------------------------


关键是:
这个在客户端激活中间层时,也就是调用中间层方法连接数据库之前发生。所以我的Net8Assitant配置好了,中间层本地配置参数设置对了也总是报错。

世上无难事,只怕人唉痴。
人蠢了,没办法,希望大家引以为戒。
neo3456 2004-11-18
  • 打赏
  • 举报
回复
问题好像在中间层上,除了开发的机器我部署时另外用了3台机器。
第一台(装了Oracle8i服务器版,上面新建了数据库),新旧中间层都不能运行,无论我怎么配置Net8Assitant;
另外两台装了oracle8i客户端,旧中间层可以运行,新的不行。

可我在升级中间层的时候,没有对中间层连接和配置的代码作修改,主要改了中间层的界面。为什么会这样??????
neo3456 2004-11-17
  • 打赏
  • 举报
回复
我在中间层本机ora8i的net8assitant上配置了一下,
“新中间层”还是有错误:
---------------------------
DAX Error
---------------------------
ORA-06413: 连接未打开.
---------------------------
确定
---------------------------
postfxj 2004-11-17
  • 打赏
  • 举报
回复
中間導是不是沒有注冊呀。
neo3456 2004-11-17
  • 打赏
  • 举报
回复
中间层本机的oracle8i中net8assitant的配置是必不可少的。
neo3456 2004-11-17
  • 打赏
  • 举报
回复
现在基本确定是中间层的问题。因为使用旧的中间层没有可以。
郁闷那~~~~
ideacao 2004-11-17
  • 打赏
  • 举报
回复
中间层没启动,暂时与数据库无关问题应该还是在客户端,scktsrvr和中间层程序上。可以从以下几处查查看
1、客户端SocketConnection的IP或Host设置是否正确;
2、scktsrvr.exe版本(这个很重要,一定要对应)、端口(211)
我怀疑是设计时将IP或Host写死了,到别的机器上就无法运行。
neo3456 2004-11-17
  • 打赏
  • 举报
回复
各位大虾:
1。是不是中间层连接数据库一定要通过中间层本机的oracle,而非几个dll能解决问题。
2。同时要在中间层本机的Oracle8i的net8Assitant中配置,给要连接的数据库设置一个服务命令(如果没有的话)?
neo3456 2004-11-17
  • 打赏
  • 举报
回复
stdvcl.dll必须么?
xian567 2004-11-17
  • 打赏
  • 举报
回复
up
neo3456 2004-11-17
  • 打赏
  • 举报
回复
各位大虾的意思是要在中间层安装配置Oracle客户端,我找台空机器装个ora客户端试试。

还有,大虾说根据错误:
---------------------------
DAX Error
---------------------------
ORA-12154: TNS: 无法处理服务名.
---------------------------
确定
---------------------------

可是,用我开发机器上的中间层访问该数据库从来没有出过这种问题,真是奇怪
yinhucn 2004-11-17
  • 打赏
  • 举报
回复
1 用regserver命令注册中间层的可执行文件!
2 将midas.dll,stdvcl.dll copy到system32下,用regsvr32注册!
用soketconnection连接,测试通过!
yinhucn 2004-11-17
  • 打赏
  • 举报
回复
中间层还是要安装oracle客户端的,还有建立本地服务名!
Erice 2004-11-17
  • 打赏
  • 举报
回复
改 中间层oracle\ora90\network\ADMIN的tnsnames文件配置
wywcti 2004-11-17
  • 打赏
  • 举报
回复
中间层需要midas.dll等dll来支持。
neo3456 2004-11-17
  • 打赏
  • 举报
回复
好像我的新中间层(在原来版本上改的)除了开发的机器,都会报
---------------------------
DAX Error
---------------------------
ORA-12154: TNS: 无法处理服务名.
---------------------------
确定
---------------------------

而原来的中间层不会,郁闷~~~~~~~

可我在原来的基础上加了许多方法。
neo3456 2004-11-17
  • 打赏
  • 举报
回复
自己顶一下。
chechy 2004-11-16
  • 打赏
  • 举报
回复
中间层服务器要安装Oracle客户端,光一个dll是没有用的。另外,还要配置一下TNS,即需要和你开发时使用相同名字的TNS。
leejiey 2004-11-16
  • 打赏
  • 举报
回复
让中间层运行起来先,不建议让客户端激活中间层
yat5460 2004-11-16
  • 打赏
  • 举报
回复
客户端也安oracle的客户端吗sql/plus是不是能正常连接?
加载更多回复(8)

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧