我现在在开发一个系统,现在正在规划中,我想的是对数据库的操作完全放到服务器端的接口中实现,也就是说客户端不允许有Select、Update、Insert之类的SQL语句,这样似乎比较符合OOP的概念吧!不知道这样的设计算不算比较高的方式呢?有上面的想法,因此我便遇到了问题,那就是想通过服务器端的一个接口方法来返回记录集到客户端,不知道服务器端及客户端要如何实现呢?说明:我用ADO访问的数据库,因为我对COM+还不是很熟,所以才会有这样的问题,请各位大侠能不能讲一下实现原理?最好能给一个例子,写一段代码出来,最主要的是返回的记录集返回到客户端后因为不是要在DBGird中表现出来,所以要返回到什么样子的对象上呢?           谢啦先,各位!

解决方案 »

  1.   

    对啊 看李维的那三本书吧,收获会很大的
    D5分布式开发 应用篇,商务篇 和ADO MTS COM+
      

  2.   

    ADO MTS COM+这本书我看完了,不过从网上下的都只有前四章,所以后面的没有看过!
    不知道其他的到哪里可以下???
      

  3.   

    商务篇我也DOWN到了,不过还没有看!哪里有应用篇那本?
      

  4.   

    其实我的问题就是,因为我水平有限,所以不知道如何将数据集返回到客户端上来,我能将它返回到客户端的TDBGird控件上,但有时并不想在它上面表现出来,所以这个接口方法要如何实现?请指点!
      

  5.   

    但有时并不想在它上面表现出来...
    ???
    干什么,放后台?
    把TDBGird与DataSet之间的连接桥梁断开即可(TDBGird.DataSource := nil)。
    想取数据时直接把字段的值赋给某个变量即可。
      

  6.   

    这一点对了!我忘记这个了!但是要如何实现服务器端接口返回的是记录集呢?是不是返回的是Recordset类型就可以了?说实在的COM+不太熟,有没有源代码或举例写点代码出来呢?  我是个菜鸟,有很多不明白的地方,谢谢各位关注我的问题!
      

  7.   

    看李维 soap的书,
    不明白时不明白,你看了就知好简单的,当然数据量大时或者更新,有一定技巧的;
    楼上说的电子书也是有的,
    我推荐的书可以在新版delphi园地下载,
      

  8.   

    在服务器上实现一个方法,返回一个记录集
    function TTest.GetRecordset:OleVariant;
    begin
      result := ADOQuery.Recordset;
    end;客户端调用时
    procedure TClient.test;
    var
      rs:_Recordset;
    begin
      rs := IUnknown(接口.GetRecordset) as _Recordset;
      rs.movefirst;
      while not rs.eof do
      begin
        爱做什么做什么
      end;
    end;
      

  9.   

    JoeSong(蓝血人):
    后6章可以在“中国程序员联盟”下载www.codestudy.com
      

  10.   

    明白一点了!谢谢各位热心friend,书我已经DOWN到了,给大家及时结贴以表谢意!