多线程读取同一张表出错.(100分)

  • 主题发起人 主题发起人 llfirst
  • 开始时间 开始时间
L

llfirst

Unregistered / Unconfirmed
GUEST, unregistred user!
多线程读取同一张表出错, 错误内容为“没有足够内存“,但是操作不同表没有问题。
(TDataSet, TQuery, TSession全部单独使用),愿意出100大洋。
 
你开了几个线程?
 
桌面数据库?
 
读的时候不要连接DataControl控件试试..
 
这跟你要open出来的记录集有关,记录多自然需要的内存也要多,操作其他表时没问题
是因为纪录少的原因。
 
这个问题讨论过几次了,把BDEADMIN的MaxbufSize和sharememsize两项改大就可以了,不过
同时创建session顶多就开到70个左右,到70个SESSION就会提示SESSION太多不让创建了
 
sorry, 晚生陪老婆,今早才看到,各位大大原谅。
1: 我的线程才2个。 Session 也是2个。本来我的意思是对同一张表用8个线程查询不同的
记录,所以先用2个线程测试。我构造了TQueryThread类,该类接受TQuery参数,Execute方法
只是简单的调用TQuery.Open(TQuery的SQL写好简单的Select语句Select * From aa Where
Name='ABC');在MainForm上我放置TDBGrid,TDBImage,TDataSet,TQuery,TSession构件
每组2个,分成两组。在TQuery的SQL查询不同表(如:Query1查AA表,Query2查BB表)时,
宪成正常执行。但是,Query1,2指向同一张表时(如AA),就出现上述错误。(每张表的记录
数不超过10条,使用BDE数据)

 
我再测试了一次,发觉可能失调试时以外中断线程之后,在此运行程序就会如此,不过
还是十分感激各位,将分数评分好不好?
 
后退
顶部