Delphi OleVariant 类型的用法

    因客户需求,对客户的指纹机与公司产品进行集成,需要对指纹机做接口的二次开发,郁闷的是产商只提供了VB和C的DEMO示例,没有Delphi的,公司没有VB,C的环境,不能打开这二种语言的示例,因为本公司搭环境特麻烦,加上之前做过类似的开发,所以也懒得去搭环境了,按照以前的开发经验写了个DEMO进行测试,一路进行得很顺利,但到了下载用户指纹和上传用户指纹数据时卡住了,因为下载用户指纹时,用于获取指纹数据传入到接口函数中的参数类型是OleVariant类型的,返回后变成了 Variant array of Integer类型了。这里碰到二个问题了:

  1、如何从OleVariant类型的数组中赋值取值

  2、指纹数据放在了一个数组中,我如何把这些数据保存到数据库和很方便的从数据库取出来

 

一直以为OleVariant很复杂,在网上搜了很多资料,终于发现OleVariant类型数组赋值和取值其实很简单,如下:

 

取值:

 

1
procedure p_GetEnrollData(); var    dwEnrollData:OleVariant;    High,Low,i:Integer;      sEnrollList:TStringList; begin      sEnrollList:=TStringList.Create;      try         High:=VarArrayHighBound(dwEnrollData,1);            Low:=varArrayLowBound(dwEnrollData,1);           for i:=Low to High do         begin            sEnrollList.Add(inttostr(dwEnrollData[i]))          end;         //把sEnrollList.Text 保存到数据库中        finally           sEnrollList.Free;      end;    end;

 

 

 

赋值:

 

1
procedure p_SetEnrollData(); var    dwEnrollData:OleVariant;    i:Integer; begin    dwEnrollData:=VarArrayCreate([0,1000],varInteger);     for i:=0 to 1000 do     dwEnrollData[i]:=i;   end;

 

 

是不是很简单了呢?

http://www.vckbase.com/module/articleContent.php?id=4359

posted @ 2016-06-28 20:12  findumars  Views(6790)  Comments(0Edit  收藏  举报