function ParametersToVariant(par:TParameters;ProcedureName:Variant): OLEVariant;var tmpv:Variant;
n,i:integer;
begin
tmpv:=VarArrayCreate([0,par.Count*5+1],VarVariant);
tmpv[0]:=ProcedureName;
tmpv[par.Count*5+1]:='this is fro Midas';
n:=0;
i:=0;
while par.Count>i do begin
tmpv[n+1]:=par.Items[i].Name;
tmpv[n+2]:=par.Items[i].DataType;
tmpv[n+3]:=par.Items[i].Direction;
tmpv[n+4]:=par.Items[i].Size;
tmpv[n+5]:=par.Items[i].Value;
i:=i+1;
n:=n+5;
end;
result:=tmpv;
end;
在调试时发现比如par.Items[i].DataType是Ftstring而运行结果tmpv[n+2]为unknown type:17错误
大虾们指点一下迷经,该怎么付值
tmpv[n+3]:=par.Items[i].Direction;这两句会出现付值unassigned 错
改为: tmpv[n+2]:=varastype(par.Items[i].DataType,varstring);
tmpv[n+3]:=varastype(par.Items[i].Direction ,varstring);
即可
谢谢党员!!