来信请发:
[email protected]要求如下:
1、采用 win2000 COM+ 作为中间层,针对主从表操作,能实现查询、增、删等操作
2、采用协调对象架构,最少由四个部分组成,即
  客户端 ——>(中间层更新协调对象 + 中间层查询协调对象)——>远程数据模块
3、采取SocketConnection的连接
4、能进行主从表更新操作(实现主从表在同一事务中)
5、远程数据模块对数据库的连接实现动态配置
6、实现Pooling
7、出错处理
8、数据库通过发一个sql脚本即可,包含主从表,要求范例能稳定运行  收到运行即给分。先谢谢!(代码最好是从兄弟们实际工程中摘取的)       要是程序中包含有比较好的实现思想或能较完整的体现Delphi结合COM+实现
  多层的架构,我再开500分酬谢!!!!  多谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   由于一个贴子只能发100分,请分别到15个帖子接分!!!!
  相关帖子有:
  http://expert.csdn.net/Expert/topic/2031/2031616.xml?temp=.2083094
  http://expert.csdn.net/Expert/topic/2031/2031625.xml?temp=.3114588
  http://expert.csdn.net/Expert/topic/2031/2031628.xml?temp=.6976892
  http://expert.csdn.net/Expert/topic/2031/2031635.xml?temp=.1988489
  http://expert.csdn.net/Expert/topic/2031/2031640.xml?temp=.178158
  http://expert.csdn.net/Expert/topic/2031/2031646.xml?temp=.1524774
  http://expert.csdn.net/Expert/topic/2031/2031650.xml?temp=.8397943
  http://expert.csdn.net/Expert/topic/2031/2031653.xml?temp=.9882318
  http://expert.csdn.net/Expert/topic/2031/2031658.xml?temp=.8390619

解决方案 »

  1.   

    sixgj(轰炸机),受累
    但你发过来的资料不合适,都是VC的资料,而且有的还只是一个Dll和Exe。我想要Delphi的
    如果你是在网上找的,给我个能下的链接就行了,我自己下一是能快一点,二是我的邮箱太小了 :)
      

  2.   

    小伍:
        来信已收到,谢谢!
        但你的例子好像是在做com组件,甚至都不用导入win2000 COM+组件服务管理器,我比较关心的事务提交没有涉及,连SetComplete,SetAbort等没用到,出错处理也只是简单地返回出错数,而出错信息并没有处理,pooling也没涉及到。不过你采取了xml的数据传输方式给了我一个启发。我目前的出错处理采取了引用参数方式返回,事务处理对于有多个更新任务时一个出错不能全回滚,我没有象你一样在客户端用SocketConnection,连接组件我放在了中间协调层。
    另外我想请教李维书中的协调对象架构有没有用于实际工程的,我现在大体上是沿着他书中的方式在测。我目前是在RDM中采取一个AdoConnection,一个AdoDataSet,一个TDataSetProvider,他们都是用于公用的,就算一个事务中有多个更新任务我也只是在中间层协调对象来分几次调用它们,因为我现在的工作是做一个行业软件开发平台,不能做死掉。但我的事物有问题。我的目标是在中间层协调对象中处理各种业务逻辑和更新任务。望指教!!先谢谢各位的指教!
    我采用的是D7 + Ado + win2000 + Ms Sql Server
      

  3.   

    win2k 的com 已经是com+因为现在赶进度  所以无法给你做例子见谅儿我又不能把做的系统源代码拷贝给你 对于 框架问题
    可能牵扯商业机密决得说得有点含糊 可以具体到细节在说你可以请教FrameSniper  非技术区 的班主他的程序框架 那可是一等一的对于错误的处理
      procedure TForm1.clientdatasetreconcilerror(dataset:Tcustomclientdataset;e:ereconcileerror;updatakind:Tupdatakind;var action Treconcileaction);              参数dataset是产生更新错误的记录集  如果提交的是clientdataset的嵌套数据集那么data就是该嵌套数据集可以使用字段
                  newvalue  oldvalue   curvalue 来获取当前的数据及 参数e是错误指针可以获取 错误的信息和错误原因 。参数updatakingd是反应更新记录操作类型
                  插入删除还是修改 参数action决定如何处理当前者一条记录。
      

  4.   

    参数 action的列表    raskip  跳过产生错误的记录
        raabort  终止整个根新操作
        remerge  合并更新数据记录
        racorrect 用指定的值代替更新记录
        racancel  这个顾名思义 撤销
        rarefresh 取消跟新  刷新客户缓存
      

  5.   


    忘了说明 Tclientdataset提供  reconcilerror事件每一条有错误 都会触发reconcilerror参数 action的列表    raskip  跳过产生错误的记录
        raabort  终止整个根新操作
        remerge  合并更新数据记录
        racorrect 用指定的值代替更新记录
        racancel  这个顾名思义 撤销
        rarefresh 取消跟新  刷新客户缓存
      

  6.   

    我的例子是 com+ transactional data module实现的
    里面没有com+ 事务, 不过你到 msn: [email protected] 我告诉你怎样作
    我那程序都设成的是 support transaction, 可以简单的加两句话实现 com+ 事务ftp://mentsu.vicp.net/OpenSource/ICPP