分段取数,合并成一个数据集(200分)

  • 主题发起人 主题发起人 Baiqi2000
  • 开始时间 开始时间
B

Baiqi2000

Unregistered / Unconfirmed
GUEST, unregistred user!
因为取的数据集太大。本人想采用多线程的方式,取数据.
思路:建立一个线程数组,每个线程从后台取一部分的数据,并将数据合并到一个ClientDataset中.(这个ClientDataset相当一个数据池,所有线程执行后,都将取得数据加入其中)
如果单独创建一个线程取数据没有问题.多于一个线程时,就会出现:"Operation is not allowed when the object is open"
各位高手,请指教.
 
ClientDataSet的操作是有控制的,一次只能操作一个记录。
建议你使用ClientDataSet的AppendData功能,在每个线程中都创建一个相同结构的ClientDataSet,最后在主线程中,将各个ClientDataSet的Data属性Append到目标数据集中。
具体AppendData功能的使用方式,请参考帮助
 
To: xiammy
我已经这么做了:
(在Execute事件中,先使用存储过程从后台取数据;在Synchronize(FunctionName)
// FunctionName 为将取出的数据,加载到主进程中ClientDataset中,加载数据的方法,就是用那个AppendData方法.
是不是同时写同一个ClientdataSet会出现冲突???
 
也要考虑多个线程向主线程ClientDataset写数据的同步
 
后退
顶部