在线程中,能否打开ClientDataSet数据集???
调用一过线程中的过程,通过synchronize方式可以打开ClientDataSet数据集,但这样就和我用线程的初衷相悖,请问高手有什么方法可以解决??动态的创建ClientDataSet,还是用其它的方式,我试过了好些都不可以,怎么办!!!!

解决方案 »

  1.   

    在线程里可能要用到session,但实质上我没有试用线程这类的问题。
      

  2.   

    线程中是可以使用ClientDataSet.Open的.之所以会出错,可能是你没有断开和DBGrid这类"界面相关"的控件.在线程的Execute过程里可以这样写:
    with FClientDataSet do
    try
      DisableControls;
      Close;
      CommandText := 'SELECT * FROM TableName'
      Open;
    finally
      Synchronize(ShowData);
    end;在ShowData过程中写: FClientDataSet.EnableControls;
    试试.