我现在开发了一套系统,VB6+ACCESS,通过ODBC配置来访问数据库,一台机器上放了数据库,其他局域网里的机器都是通过ODBC配置设置网络路径来访问这台机器上的数据库,请问现在出现这样的情况:当几台机器同时访问数据库时,会出现表锁定的情况,请问何种办法解决,如何解决?分不够再加。

解决方案 »

  1.   

    试试用ADO解决,在ADO中可以设置锁类型
      

  2.   

    不是access的原故,应当代码没有控制好!
      

  3.   

    使用保守式锁定时,一旦调用 Edit 方法,引擎就会锁定包含当前编辑记录的页面,直到显式地提交或取消这个记录的变更后,它才释放这个锁定。但它的缺点锁定记录的时间很长,而且不仅锁定了用户正在编辑的记录,而且还会锁定驻留在该锁定页面内的其它记录。
      

  4.   

    请问楼上这位fredlin(fred)有什么好的有效的方法,能不能帮我一把,真的万分感谢。
      

  5.   

    access做网络数据库?麻烦加易出错
      

  6.   

    參考以下文章﹕
                   http://dev.csdn.net/article/24/24978.shtm
      

  7.   

    建议你还是安装一个sql server 作为服务器,处理并发问题会简单非常多!access没有什么好办法处理。sql语句基本兼容
      

  8.   

    我也觉得Access不适合做网络数据库!
    有三种想法:
    1、假设放数据库的机器是A,将基本表放在A中,将前端查询放在各个机器(也是Access,只不过其中只有查询,没有基本表),并引用A中Access的基本表;控制并发在数据库内部实现,不在vb代码中控制;odbc重新配置为本地Access路径。
    2、添加一个网络收发模块,收各个机器的查询需求(通过网络协议)->将需求排队(转化为串行),一个一个查->将查询结果通过网络分发。客户端只提交查询条件(如SQL语句),自己定义一个数据结构将结果集传回。
    3、在写查询执行的语句时利用锁的种类做文章,添加查询锁定异常的处理代码(比如重试、超时等等)。
      

  9.   

    DB.CursorLocation = adUseClient
      

  10.   

    另外ACCESS做你这个数据库不太合适,应该用SQL SERVER 或其他功能大些的数据库
      

  11.   

    数据库转移到SQL Server,
    问题解决。
      

  12.   

    用MSDE也比Access强呀,免费的,与SQLServer完全兼容,但最多支持5用户~
      

  13.   

    有一个简单方法,一楼不许骂我,架设IIS,用ASP,在vb中用webbrowser,webbrowser里的navigator设置到localhost/你的目录/你的操作页面,为什么这么做呢,因为其实是可以做成能access并发处理的,但是很麻烦,不如借用MS自己做的东东,这样的话有application锁定的话,就可以了,当然access就是要比MS SQL SERVER要差没得说的,价格也在那里摆着呢
      

  14.   

    在我认为用SQL SERVER完全可以解决你的问题,如果你非要用ACCESS,要解决这个问题,我认为你应该在数据库ACCESS端编写服务器程序,比如让其它站点在请求得到数据库中数据是,给它们一定的优先级别,依次访问数据,免除造成死锁。(但这种方法执行起来速度的确是慢,因为要一个站点访问操作完后其它站点才可以操作。)我建议你还是用SQL SERVER。
      

  15.   

    你用VB中的WINSOCK来完成客户端与服务器端程序的通信。客户端请求服务器提供数据,服务器将接收到的请求按一定的优先级别给于响应,这样就可以避免ACCESS数据库的死锁。