oracle 做后台数据库服务器,为何应用程序服务器死机?(初学者)(300分)

  • 主题发起人 主题发起人 wjs
  • 开始时间 开始时间
W

wjs

Unregistered / Unconfirmed
GUEST, unregistred user!
我学做三层,用oracle 做后台服务器,为何应用程序服务器死机?
而用dbf表则正常,(另外,在三层情况下,客户端怎样登陆服务器?)
 
请大家介绍一下制作步骤也好,我不知错在那里?
 
一、开发应用程序服务器
1、新建应用程序
2、建立远程数据模块
3、在远程数据模块内加入数据集(table or query)组件(可与oracle数据库连接)
4、在远程数据模块内加入TDataSetProvider组件并与数据集(table or query)组件连接
5、注册服务器应用程序(运行该应用程序服务器即可)
二、开发客户端程序
1、新建应用程序
2、在窗体中 加入TClientDataSet组件
3、在窗体中 加入TDCOMConnection组件
4、设定TDCOMConnection组件的 computerName为应用程序服务器所在机器名称
5、设定TDCOMConnection组件的 ServerName属性。
6、设定TDCOMConnection组件的Connected为True,此时应用程序服务器自动激活。
7、设定TClientDataSet 的 RemoteSrver 为上一步加入的DCOMConnection,
8、设定TClientDataSet的DataSetProvider属性 (从下拉列表框看到所有注册的
应用程序服务器,选取你的即可)。
9、设定TClientDataSetActive 为True。其他同本地数据库的用法相同。
三、你的应用程序服务器死机原因:
没有将应用程序服务器的TDatabae HandleShared设定为true, 改之即可。
 
>>三、你的应用程序服务器死机原因:
>> 没有将应用程序服务器的TDatabae HandleShared设定为true, 改之即可。
如果是这样的话,加个TSESSION控件,让他自动建立SESSION,还更好。
 
谢谢两位!
等我试一试...
 
MIDAS的客户机登录服务器和C/S完全一样,是在应用服务器端进行的。给应用服务器中的
database控件加上server name, user name, password三个参数即可,参数可以在服务器
程序中写死,也可以通过客户端传过来,使用type library工具,增加一个登录函数
login(servername, username, password),在客户端调用
socketconnection.appserver.login(servername,username,password)即可。
 
多谢三位!
philips:
按你的方法,在死机方面有所改进,但仍须手工关闭一次应用程序服务器,才可正常浏览,
能否不用手工关闭一次应用程序服务器就正常工作?(oracle7)
吴剑明:
加上TSESSION,对我的问题没有改善,
xfma:
能否详细些?

请大家继续指教,不胜感激。
 
我在为别人开发三层软件,也用oracle做数据库服务器,在开发应用程序服务器及瘦客户程序时,
遇到过无法成功启动应用程序服务器的问题,出了前面的步骤之外,特别要注意远端数据模块
的 database 组件的 LoginPrompt属性,先将其置为 false,并在OnLogin事件填写

user name = xxx
password = xxx
这样,即可成功启动应用程序服务器。如果愿意,可再次将LoginPrompt属性,先将其置为 true.
但此时问题已解决,这可能是delphi的小bug,但给开发者带来的问题可不小。
这算做上面答案第三条的补充吧。
 
>> 这可能是delphi的小bug
什么意思????
 
lha:
您好!

我的意思是: 抛砖引玉。这方面的帖子回答的人气不旺...

delphi无须对程序员要求设置database组件的用户名和口令,而是在必要时
给出提示。即:
LoginPrompt=true 时直接提示,由用户给出注册信息,而不是死机。
LoginPrompt=false时使用设计时提供的口令。
至少我的实践是这样结果,不知你的结论怎样,愿闻高见。
 
解决了吧!
我想就因为服务器的用户登录错了吧!
服务器没办法联接数据库而出的错吧!
 
多人接受答案了。
 
后退
顶部