将session,database控件放在线程外,在线程内用线程类create参数将session传入
  with TQuery.Create(nil) do begin
    databasename:=sessionparam.database[0];
    do anything ...
    free;  
  end; 
这样很安全的

解决方案 »

  1.   

    但我好象看过很多书,
    说在线程中操作要有独立的session,database啊?
    你的意思是不是把
      fSession := TSession.Create(application);
      fDataSet := TDataBase.Create(fSession);
      fDataSet.LoginPrompt := false;
      fDataSet.Params.Add('user name=' + AUser);
      fDataSet.Params.Add('password=' + APass);
      fDataSet.AliasName := ADataName;
      fDataSet.DatabaseName := 'wjmds';
      fDataSet.Connected := true;
    这段放到线程外面生成,
    但是每个线程还是要用独立的session,database啊?
      

  2.   

    fsession:=Tsession.create(Application);Appication改为nil试试