是不是在线程中不能使用Tclientdataset?(100分)

  • 主题发起人 主题发起人 kmgyl
  • 开始时间 开始时间
K

kmgyl

Unregistered / Unconfirmed
GUEST, unregistred user!

Tclientdateset
Tabc=tthread
procedure execute;override
end;

...
implement
procedure sqldo
begin
sss.close;
sss.commandtext:='select * from abcd';
sss.open;
end;

procedure Tabc.execute
begin
//sss:Tclientdateset
sqldo;
end;

sqldo 在其他事件中调用没问题,但在线程中调用出错。
出错位置在SSS。OPEN时候
提示variant is not a array (变量不是一个数组)
是不是在线程中不能使用Tclientdataset?
请各位劳驾看看。。谢谢
 
应该同步调用
 
可以,但是你的 ClientDataSet 最好是在线程中创建的,那样使用时不必 Synchronize,
但如线程中创建的 ClientDataSet 与主线程中的显示数据的 DataAware 控件相连则仍必
须被 Synchronize。如果 ClientDataSet 本身就是主线程中创建的,则对该
ClientDataSet 的操作都要放到被 Synchronize 的过程中。
 
线程中用到的TCLIENTDATESET不是在线程中生成的,而是在设计时已经放在FORM上的
在线程中用到的只是取远端服务器上的数据,没有和FORM上的DATE控件相连,是否也要
Synchronize?
如果要同步(Synchronize)那该如何写,能不能给个例子,谢谢
 
多人接受答案了。
 
后退
顶部