谢谢了

解决方案 »

  1.   

    用3层结构吧     所有C端  全部通过一个S端服务程序访问数据库   协议自定    S端服务程序 来列队 处理
      

  2.   

    on error       msg"请稍后再试!"
      

  3.   

    on error  call  ........(再次调用,直到OK为止)
      

  4.   

    你踫到了更改和讀取同時的情況了嗎?這個你不必擔心,SQL的操作都是秒級以下的,鎖表也是很短的時間,所以程序根本就不會發現錯誤,關鍵是怎麽讀取最新的數據...
    個人看法
      

  5.   

    不明白
    SQL数据库本身对并发操作有很好的处理机制
    正在读取数据,这边删除,报错正常啊
    不报错才怪,说明写程序有问题
    这和什么层不相关吧
    或者没理楼主的意思?
      

  6.   

    不要做什么额外的操作,SQLServer有并发机制自己会处理这中情况的:
    在执行删除语句,SQLServer会对该记录加排它琐,此时另外一些用户不能访问该记录,也就是说在删除某条记录的时候不会出现“同时”读取它的情况,读取的操作要么在删除前要么在删除后。
      

  7.   

    另外你可以用两台机子做个实验,设表TestTab(ID INTEGER),并且插入一条ID=1的记录进出。然后在一台机子将第三条语句设置断点,调试运行。DBConn.BeginTransaction
    DBConn.Execute("delete from TestTab where ID=1)
    msgbox "测试"  '在此设置断点
    DBConn.CommitTransaction然后在SQLServer服务器上再读那条记录,应该会发现不能读,处于等待的状况,这是因为有人在删除。
      

  8.   

    通过ADO对数据库的操作应不会发生这种情况. 这大概是SQL Server的基本功能吧.要是通过SQL Server的管理器直接对表进行硬操作,那就说不定了.