小弟最近做了一个软件,使用的是ADO技术,数据库使用为SQL Server 2000,
 服务端为window2000 server ,
其中就有一个模快就是多个客户端同时对服务端的一个表进行操作,小弟问的是怎么才能让多个客户端同时对一个表进行操作,但客个表又是独立的.
   "  即对一个表的操作不保存到数据库中,但可以在DBGrid中显示出来!"

解决方案 »

  1.   

    Oracle 数据库可以,他有个零时表,每个客户只能访问自己的数据SQL Server 好像没有这种特性
      

  2.   

    用ADOConnection.Transaction,
    先启动一个事件,在操作完后回滚事件,你试一下。
      

  3.   

    你可以用BATCHUPDATE来完成你要的功能,即把ADO数据集的LOCKTYPE设置为:ltBatchOptimtic
    这样,你POST一条记录的时候并不会立即更新到服务器的数据库中,而是存储在内存中,直到你用BATCHUPDATE命令以后,才进行更新!
    当然,这样做,你要充分考虑好数据的一致性,千万别造成各个用户对相同的数据进行更新,导致数据出错
      

  4.   

    你可以变通一下,这个多人操作的表,多加一个字段就可以,这个字段里存放用户名,
    每个操作的客户端都有一个唯一的用户名,这样就好办了,只要SQL语句中多加一个
    where 用户名='当前用户名' 就可以在同一个表中操作自己的数据了这个方法你理解了没??
    分都给我吧 hehe^^
      

  5.   

    其它的 增加、修改、删除 都用这个字段里的数据为条件进行操作 OK了吧 hehe^^
      

  6.   

    用数据集的缓冲功能:把ADO数据集的LOCKTYPE设置为:ltBatchOptimtic
    需要提交数据的时候用:数据集的BATCHUPDATE命令
    有问题请发信息到我的E-mail:[email protected]
      

  7.   

    你不用担心,系统会自己处理,当一个用户对某表的某个记录修改后,系统会自动锁住该记录,如果你不提交,别的用户无法打开。你可用bde explorer测试一下。
      

  8.   

    同意  kindtoadsd(南阳山人)
      

  9.   

    "数据集的BATCHUPDATE命令:"
    有谁能给出具体的代码吗?
      

  10.   

    在ORACLE数据库表中可以对某行进行锁定,也就是容许多个用户对同一个表进行操作(读写),在SQL SERVER 2000中就不知道行不行可要防止数据不一致哟