我使用多线程操作SQL数据库,在线程中定义了TDATABASE,并申请了变量,但在运行中程序报:maxium number of dbprocesses already allocated.请问如何解决

解决方案 »

  1.   

    能否考虑多个线程共享一个数据库连接(TDataBase).
      

  2.   

    一般情况下你不要在一个程序中使用多个tdatabase连接至同一数据源,你应该在线程外定义tdatabase,而在线程中进行数据操作.这样即节省数据库的资源开销,效率也高.
      

  3.   

    首先你用的是什么数据库,是否支持多线程
    对于像SQL Server和Oracle的大型数据库,的话数据库的多线程访问是通过会话机制来实现的,所有你必须在每一个线程内还得生成一个Tsession,并将其激活,
    而且使你的Tdatabase.sessionname:=你在线程中定义的Tsession.sessionname对于文件型数据库,我个人认为,必须自己用线程同步技术处理。
      

  4.   

    在外部定义一个Tdatabase,线程中定义独立的Tsession,Tquery来处理,