关于Variant Array 的问题求教
Zboy 2003-09-04 09:37:24 三层结构中应用服务器上有一接口定义如下:
....
procedure SaveCustomer(vData: OleVariant); dispid 3;
....
客户端调用该接口:
type
TCustomerRec = record
Name:string;
WorkCode:integer;
.....
end;
...
procedure SaveCustomerToServer(Customer:TCustomerRec);
var vCustomer:OleVariant;
p:Pointer;
begin
vCustomer:=VarArrayCreate([0,Sizeof(TCustomerRec)],varByte);
p:=VarArrayLock(vCustomer);
Move(Customer, p^, Sizeof(TCustomerRec));
VarArrayUnlock(vCustomer);
XXInterface.SaveCustomer(vCustomer);
//在这里调用接口时出错
end;
错误:EOleException "Mismatch in datapacket"
为什么这样不行??苦恼。
用ClientDataSet倒是可以解决这个问题,但是不想这么干。
是不是转换不对?万望赐教。