+ -
当前位置:首页 → 问答吧 → 调用webserver接口出错

调用webserver接口出错

时间:2010-07-17

来源:互联网

--这里上传信息定义了一个类的数组
 HisitemtransInParamaterInfo = class(TRemotable)
  private
  Farghopcode: WideString;
  Fhisitemcode: WideString;
  Fhisitemname: WideString;
  Fitemclass: WideString;
  Fopertype: WideString;
  Fuploadid: WideString;
  published
  property arghopcode: WideString read Farghopcode write Farghopcode;
  property hisitemcode: WideString read Fhisitemcode write Fhisitemcode;
  property hisitemname: WideString read Fhisitemname write Fhisitemname;
  property itemclass: WideString read Fitemclass write Fitemclass;
  property opertype: WideString read Fopertype write Fopertype;
  property uploadid: WideString read Fuploadid write Fuploadid;
  end;
  --这里上传信息定义了一个类的数组

  ArrayOfHisitemtransInParamaterInfo = array of HisitemtransInParamaterInfo; { " http://entity.webservices.com" }

--程序文件我定义了这个类数组的变量
var

  ypscxx:ArrayOfHisitemtransInParamaterInfo;




--程序文件
  定义数组长度这里做测试我先给100
  setlength(ypscxx,100)
  --对类的数组进行赋值
  i:=0;
  ypscxx[i].arghopcode:= edHospitalcode.Text;--但是做到这里报系统错误
  ypscxx[i].uploadid:= query6.Fieldbyname('szm').AsString;
  ypscxx[i].hisitemcode:= query6.Fieldbyname('szm').AsString;
  ypscxx[i].hisitemname:= query6.Fieldbyname('ypmc').AsString;
  ypscxx[i].Itemclass:= '';
  ypscxx[i].opertype:= '0';

作者: matoserver   发布时间: 2010-07-17

WebService接口函数数组用TByteDynArray
用OleVariant转成数组
var
P: Pointer;
  p:=VarArrayLock(OleVariant);
  SetLength(Array, ArraySize);
  Move(P^, Array[0], ArraySize);

作者: hsmserver   发布时间: 2010-07-17

引用 1 楼 hsmserver 的回复:
WebService接口函数数组用TByteDynArray
用OleVariant转成数组
var
P: Pointer;
p:=VarArrayLock(OleVariant);
SetLength(Array, ArraySize);
Move(P^, Array[0], ArraySize);

樓上正解...

作者: kye_jufei   发布时间: 2010-07-20

请问如何将调用Webservice返回的TByteDynArray类型 转换为TRemotable 类型呢

作者: gykthh   发布时间: 2011-12-14