我在一台PC上不是以共享形式打开了一个表(用的是TTable控件),然后以这个表的记录为循环把我个表的主键值通过SOCKET发送到另一台PC上,在第二台PC上我用TQuery控件中写
query1.close;
query1.sql.clear;
query1.sql.add(delete from tablename where field1=:'收到的主键值');
query1.execsql;
调试时发现运行到query1.execsql时进行死循环的等待,当我把第一台PC与数据库的关联关闭后才能执行成功。请教这是为什么?

解决方案 »

  1.   

    当然了,因为delete不能在共享锁上执行,必须以独占的方式,以防止其他进程脏读。
      

  2.   

    当然了,因为delete不能在共享锁上执行,必须以独占的方式,以防止其他进程脏读。
    -------------------------------
    Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 超时已过期 /Expert/reply.asp,行105
      

  3.   

    在读取完时,应该将锁打开,提交事务,不要一直占用。
    --------------------------------------
    Internet Explorer 不能链接到您请求的网页。此页可能暂时不可用。