在数据库为Acess,可以在程序中的不同Form 中连续多次执行多条SQL语句,但是通过网关连接到SQL SERVER 2000 后,程序运行时会报错"连接被占用,不能执行下一条命令",将ADOConnect的连接方式改为异步模式也没有解决问题.

解决方案 »

  1.   

    老兄,怎么你的标题与内容不一样也?晕,SqlServer2000咋的变成Access了Access数据库本身就不能被同时打开,打开数据库的时候就会产生一个后缀名为ldb的锁定文件,你可以用一个ADOConnect,N个AdoQuery共享这个连接就行了,何必需要多次连接呢?
    MainForm中的ADOConnect, 其他的Form要用的话,只需要把Connection指定为MainForm.ADOConnect,OK。
      

  2.   

    我在不同的FORM中基本上都是调用DataModule中的同一个ADOQuery,都是通过同一ADOConnect,
    并且在本机上安装SQLSERVER2000,运行也没有问题,在局域网上另外网段上的SQLSERVER2000才出现此现象,不知哪位高手能解决
      

  3.   

    我觉得SQL Server不在同一网段上,客户端能连接的上吗?我不太清楚。还有就是你通过网关连接后,是程序一执行就报错,还后先能查询一两次,然后以后的操作才报错的?
      

  4.   

    怎樣設置ADOQUERY數據集是可讀和可寫
      

  5.   

    用ADO的COMMAND对象应该不会出现问题,我就是这样用的!
      

  6.   

    经过仔细试验,我发现在定时器中调用ADOQuery与其它事件触发的调用ADOQuery彼此之间冲突,通过增加一个ADOConnect,把这两类调用分开,就不会冲突了.唉!ADOConnect的并发操作功能有限!