主线程在数据库中添加记录,还有一个线程IdTcpServer接收网络包后删除数据库中的记录,
增加和删除的操作为同一个表。
总是发生错误。
加上临界区,互斥也不行。
但单独运行某个线程是没有问题的,两个线程同开则就报错。

解决方案 »

  1.   

    首先你使用了同一个表,在操作表时,如果你不是显式去锁定,系统是会锁定表的。你在客户端用什么方法都是不行的。可以改为准备好数据后,然后执行SQL语句插入记录,不要用DBGRID类似的界面去插入记录,否则会长时间锁表。删除亦同样。
      

  2.   

    不是显示,后台操作的,不用DBGrid。
    当两个线程一个增加记录,一个删除记录就会报错。
    两个线程同时读数据是没问题的。
    不知道是线程的问题还是ADO的问题?