三层中如何用OOP,数据如何保存,DCOM如何配置(200分)

  • 主题发起人 主题发起人 seager
  • 开始时间 开始时间
S

seager

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在做三层系统反而产生了很多困惑:
1、三层系统中在中间层如何使用OOP,系统中有100多个表,是否要使用100多个datasetPriover哪?
2、三层数据保存中,我没有使用CLIENTDATE的APPLAYUPDATE,而是全部在服务器定义各自的保存和修改方法,然后客户端调用,如APPSERVER.SAVA(表名),APPSERVER.EDIT(表名)
对于单表没有任何问题,但是我不知道一对多表如何保存和修改。
3、如果用socket连接的话,客户端没有任何问题。但是用DCOM连接的时候客户端始终连接不上。
请求高手帮助共同讨论,可以倾全部分,来者都有分
 
我也继续说说我的疑问:
1、对于ClientDataset 主从表怎么用 ? 好象可以设置其某个字段为从表。但是怎么跟datasource关联?如何只更新从表? 还有报表如何做?
2、对于DCOM方式只能用在局域网内,外边要用是不是一定要配VPN.
 
关注...................
 
abin30,局域网内如何配置dcom啊
 
推荐使用Rem Objects做,27611862(RO群)
 
1、问题你可以参考一下http://www.delphibbs.com/delphibbs/dispq.asp?lid=2967587
2、采用这种方法是因为你不太了解delphi的多层数据访问机制。delphi三层结构中的数据提交功能远比你想象的强大。比如,在客户端只需要用CliengDataSet的AppliyUpdate方法提交修改增量数据包,中间层就会自动解析提交的数据包,delphi甚至会按照主从表的数据更新顺序,使每条增量数据都会触发中间层的BeforeUpdateRecord事件,在这个事件中清楚地告诉你,这次更新的是哪个表,更新类型是增加、修改还是删除,你也可以通过带入的参数知道本次操作的是哪个表的哪个字段,随后,Delphi会按照默认方式自动生成一条sql语句,你当然也可以在此自己写一条自己的数据更新Sql语句,执行完自己的sql后,你只需告诉delphi这条记录已经更新完毕,不需要它再继续更新就行了。
3、Dcom的连接比Socket连接更安全也更高效,当然配置Dcom也比较复杂,主要是配置Dcom需要通过windows的安全认证,这曾经难倒过许多人。当然最简单的测试办法就是我让你看的问题1参考里用的,让客户端和服务端超级用户密码相同,这种方法虽然可以立即解决dcom程序测试连接问题,但却不能在实际中应用,实际应用中用户当然不会同意让客户端和服务端超级用户密码相同,这个问题的解决你需要专门去查相关资料,网上相关资料很多。
 
谢谢orangutang,
我就是不想用clientdataset的appllyupdate
希望大家继续讨论,更欢迎高手
 
在服务器写更新的存储过程
 
后退
顶部