三层,二层,按需而言,不能说那个好,需求高的话,就只能用三层,如客户量,安全性,方便维护性,开发开发周期,等等,这些因素决定,期待LZ 的三层DEMO 发布。呵呵,

解决方案 »

  1.   

    看到有网友关注TCPDAC,就简单介绍一下,现在只能截取几个开发测试的界面。
    中间层与数据库的连接用的是UniDAC,中间层与客户端用的是Indy,有以下几个控件:
    TCPDBServer:封装了UniConnection 和Indy的idTCPServer,支持数据库连接池。
    TCPDBClient:封装了Indy的idTCPClient,用于sql命令和结果的传输。
    TCPQuery :数据库组件,可以打开数据库表(Open)和执行sql语句(ExecSQL),设计期即可打开。
    TCPDBClient要支持事物,事物部分只做了一半。
    计划还有TCPStoredProc和TCPScript,TCPScript的功能要与UniScript接近。
    现在还不支持CacheUpdate,估计要UniDAC推出下一个版本才能支持。
    目前是对Oracle数据库开发的。
    截图连接:http://download.csdn.net/detail/runsheng678/4508627
      

  2.   

    Indy,定位不够高
      

  3.   

    三层分为表现层、逻辑层和持久层?
    那是mvc之类的另一种分层delphi的3层、多层,多是网络架构的分层:在c和s之间增加一个中间层(socket或web server/app)
    midas、ast之类的,就是为了delphi的3层的开发与2层一样简单,只可惜比较脆弱我自己也做了一套 以web app(isapi) 为中间层的框架,只是开发模式还不是 设计时可见,而是运行时请求查询、増删改,只是避免了直连数据库
      

  4.   

    上传个Demo:
    http://download.csdn.net/detail/runsheng678/4674706
      

  5.   

    你的这种封装是不是不利于面向对象的开发啊。我建议应该充分考虑用CLEINTDATASET这个控件。
      

  6.   

    因为单纯的SQL语句的处理不利于对某个字段的细节处理,如各种计算字段,关联字段等。
      

  7.   

    没有考虑CLEINTDATASET,是因为我的TCPQuery本身就是为三层架构设计的,计划下一个版本支持CacheUpdate。TCPQuery支持关联字段和主细表。
      

  8.   

    建议使用XE3的DateSnap,它可以支持多种操作系统,并且服务器可以响应TCP/IP,HTTP,客户端支持桌面、WEB和案桌。
      

  9.   

    最近比较忙,整理一下,将TCPDAC for XE2发布一下,并带一个demo。
    http://download.csdn.net/detail/runsheng678/4812549
      

  10.   

    to:lyhoo163 
    DataSnap 固然好,但开发麻烦一些,同样一个数据库表控件,在DataSnap 中要布置好几个控件,并且程序修改升级的时候不但要动客户端,同步还要修改中间层。旧的两层系统升级为三层系统很难。这就是我为什么要开发这套控件的原因。
      

  11.   


    我做的 以web app(isapi) 为中间层的框架,也可以做成通用的数据库网关,数据库结构变了,中间层无须任何修改
    客户端也可以通过ini配置来完成表结构的自动适应,程序无须修改