Delphi OleVariant 类型的用法

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

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

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

 

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

 

取值:

 

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;

 

赋值:

 

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


是不是很简单了呢?

 

 

你可能感兴趣的:(Delphi)