我在服务器端定义了一个如下的‘RECORD’数据类型
// Declaration of structures, unions and aliases.
// *********************************************************************//
PUserType1 = ^tTestAdvice; {*} tTestAdvice = packed record
serialno: string;
inhosRegisterNo: string;
subjectCode: string;
isMedicine: string;
execDepartmentCode: string;
execDepartmentName: string;
drugHouseCode: string;
drugHouseName: string;
doctorCode: string;
doctorName: string;
end;并且把他作为一个函数的入参:
procedure groupData(var value: tTestAdvice); safecall;请问我在客户端如何定义数据类型???如何引用服务器端定义的'tTestAdvice'类型那?
// Declaration of structures, unions and aliases.
// *********************************************************************//
PUserType1 = ^tTestAdvice; {*} tTestAdvice = packed record
serialno: string;
inhosRegisterNo: string;
subjectCode: string;
isMedicine: string;
execDepartmentCode: string;
execDepartmentName: string;
drugHouseCode: string;
drugHouseName: string;
doctorCode: string;
doctorName: string;
end;并且把他作为一个函数的入参:
procedure groupData(var value: tTestAdvice); safecall;请问我在客户端如何定义数据类型???如何引用服务器端定义的'tTestAdvice'类型那?
就是这么一个过程:(服务器)tTestAdvice-->(服务器)olevariant(返回值)-->(客户端)tTestAdvice
var
vData: OleVariant;
arrayList: array of tstringlist;
i: Integer;
begin
vData:=VarArrayCreate([Low(arrayList),high(arrayList)],VarVariant);
for i:=Low(arrayList) to high(arrayList) do
vData[i]:=arrayList[i].Text;
end;服务端再转化过来 if VarAsArray(vData) then
for i:=VarArrayLowBound(vData,1) to VarArrayHighBound(vData,1) do
arrayList[i].Text:=vData[i];
a:widestring;
b:widestring;
c:widestring;
end
// TARec ---> Variant
function RecordToVariant(value:TARec):OleVariant;
var
P:Pointer;
begin
Result := VarArrayCreate([0,sizeof(TARec)],varByte);
P := VarArrayLock(Result);
Move(value,P^,sizeof(P));
VarArrayUnlock(Result);
end;
// OleVariant ----> TARec
function VariantToRecord(value:OleVariant):TARec;
var
P:Pointer;
begin
P:= VarArrayLock(value);
Move(P^,Result,sizeof(TARec));
VarArrayUnlock(value);
end;