客户端用TSocketConnection和TClientDataSet连接,    
V := VarArrayCreate([0, SizeOf(TDataRequestMsg)], VarByte);
MyBuffer := VarArrayLock(V);
...
VarArrayUnlock(V);
CustomerDataTmp.ClientDS.DataRequest(V);
这样请求数据,为什么只能在主进程中调用,放在一个线程中就会出这样的错误
First chance exception at $77E53887 . Exception class EVariantError with message 'Variant is not an array'. Process abc.exe ($DE4)

解决方案 »

  1.   

    只能这么说, 线程中可以执行的, 这样用法我用得还是比较多的, 没出过什么错, 注意下线程中的 CDS 的 RemoteServer 是不是共用主线的, 也不是说不能用主线的, 只是我一般不用主线
      

  2.   

    线程中的 CDS 的 RemoteServer 是不是共用主线的是什么意思,我这样做为什么会出一错误
      

  3.   

    你这个提示是 variant is not a array, 应该是在服务端执行的时候出来的,你可以看一下 VarType 是什么东东