我已经用Access+ADO+Delphi7完成了一个单机版软件,现在想实现网络c/s版,用户大约有十多个终端,局域网已现成。因要改写成网络版的准备将数据库改用SQL Server 2000,单机版改成网络c/s版主要需做哪些修改同时要注意那些问题呢?我看到正规软件公司c/s 版软件安装时分为服务器端安装和客户端安装,然后客户端软件会自动寻找服务器并连通,那是怎么做的?一个完整软件分成服务器、客户端两部分来安装那代码如何来分配呢,就是说服务器端应写哪些模块,客户端应写哪些模块?从未接触过Delphi网络版的开发,这回想试一试,请做过的前辈多多指教,谢谢!
 

解决方案 »

  1.   

    另:c/s结构的概念也不是很清楚,绝不是将单机版的Access数据库换成SQL Server 2000就自动算是C/S了吧?
    由于多用户会有并发冲突的问题,单机版时我几乎不用事务,一般插入记录就用Adoquery1.Insert;......;Adoquery1.Post;
    修改时一般就用Adoquery1.Edit;......Adoquery1.Post;那么在网络版c/s的情况下插入记录、修改记录是不是均得用Datamodule.Adoconnection.Transaction; .....; Datamodule.Adoconnection.CommitTrans;包裹起来才好?
      

  2.   

    我还有一个概念不知对否?就是多用户情况下凡是读取数据库数据(使用SQL的Select语句)的情况都不必考虑并发问题,而只在插入或修改记录时才需注意并发(对策是用事务来包裹代码)问题,因为同一条记录可以被任意多客户来读取而不会有什么冲突,对吗?
      

  3.   

    我还有一个概念不知对否?就是多用户情况下凡是读取数据库数据(使用SQL的Select语句)的情况都不必考虑并发问题,而只在插入或修改记录时才需注意并发(对策是用事务来包裹代码)问题,因为同一条记录可以被任意多客户来读取而不会有什么冲突,对吗?
    ----------------------------------------------------------------------------------
    可以这么理解。。
      

  4.   

    多看看SQLSERVER的书吧,在SELECT中也会有锁
      

  5.   

    在单机版里也可以极少用ADOTABLE ,用ADOQUERY,在数据完整性上用事务,在网络版上,在数据完整上多一个触发器,经常使用的地方,用存储过程,而它的视图就相当于ACcESS的中的查询了。而多用户编号的方面,我取用了INI文件记录和最大编号表的言方法
    以上是我个人的意见,有错请指正
      

  6.   

    在网络版的程序设计上已经很少用Delphi前端的SQL语句了;
    而最好采用数据库后端的存储过程,将大部分的事务放在数据库上执行。这样对整个系统的性能将会有很大的提高。
      

  7.   

    呵呵...这种例子在www.2ccc.com里很多.而且在网上随便找本书看看..里面都应该有比较详细的介绍..比在这里问强多了.