因客户需求,对客户的指纹机与公司产品进行集成,需要对指纹机做接口的二次开发,郁闷的是产商只提供了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

Delphi OleVariant 类型的用法的更多相关文章

  1. delphi不同版本字符串类型的演化(要支持基于firemonkey的app调用,字符串最好使用olevariant类型)

    string,DELPHI2009以前的版本string=ansistring,一个字符占一个字节,DELPHI2009及以上版本string=unicodestring,一个字符占二个字节. cha ...

  2. 转delphi中nil的用法

    转自:http://blog.csdn.net/haiou327/article/details/6666124 delphi中nil的用法 和C++中的NULL一样的意思,指空值,它和0值不一样-- ...

  3. Delphi中ClientDataSet的用法小结

    Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进 ...

  4. EF里Guid类型数据的自增长、时间戳和复杂类型的用法

    通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...

  5. EF——Guid类型数据的自增长、时间戳和复杂类型的用法 03 (转)

    EF里Guid类型数据的自增长.时间戳和复杂类型的用法   通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文 ...

  6. 关于void*类型的用法(相当于OC中的id类型)

    关于void*类型的用法(相当于OC中的id类型) 1.C++语言在对于void* 类型的使用很特别,因为void* 可以间接引用任何其他数据类型的指针,比如int*.float*甚至抽象数据类型的指 ...

  7. delphi OleVariant转换RecordSet

    delphi OleVariant转换RecordSet uses Data.Win.ADODB; function varToRecordSet( parms : OleVariant ) : Da ...

  8. [转载]Delphi常用类型及定义单元

    原文地址:Delphi常用类型及定义单元作者:沧海一声笑 Delphi常用类型及定义单元-总结  sndplaysound                mmsystem Type Unit Date ...

  9. delphi字符串分隔函数用法实例

    这篇文章主要介绍了delphi字符串分隔函数用法,通过自定义函数SeparateTerms2实现将字符串分割后存入字符串列表的功能,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了delphi ...

随机推荐

  1. PHP zip压缩文件及解压

    PHP zip压缩文件及解压 利用ZipArchive 类实现 只有有函数.界面大家自己写 ZipArchive(PHP 5.3 + 已自带不需要安装dll) /** * 文件解压 * @param ...

  2. Arduino周边模块:传感器部件(温敏、光敏、湿敏)

    Arduino周边模块:传感器部件(温敏.光敏.湿敏) Arduino周边模块:传感器部件(温敏.光敏.湿敏) Arduino的模数转换 对于Arduino来说,它只认识数字量,模拟量对其来说就是一门 ...

  3. Android_Dialog cancle 和dismiss 区别

    AlertDialog使用很方便,但是有一个问题就是:dismiss方法和cancel方法到底有什么不同? AlertDialog继承与Dialog,现在各位看看结构图: 然后在Dialog类中找到了 ...

  4. mac + apache + php

    1: 设置下用sublimetext为默认打开方式, 确保下载sublimetext 2:设置下默认打开方式为sm sudo ln -s /Applications/Sublime\ Text\ 2. ...

  5. 新浪SAE搭建项目

    1.新浪云平台SAE(http://sae.sina.com.cn/).注册账号 2.创建应用 3.填写应用信息 4.应用创建完成,管理应用 5.上传代码(.zip)格式

  6. jupyter巨好玩-使用jupyter结合VScode写博客

    打开jupyter-ipython 其实人家就叫jupyter了,后面咱可能就少提ipython了. # 打开命令行,让我们输入 jupyter notebook 当然,这个前提是你已经安装了jupy ...

  7. AIX 命令大全

    http://www.ahinc.com/aix/general.htm http://web.mit.edu/javadev/packages/Acme/ http://jparsec.codeha ...

  8. MAC 下使用ipv6、ipv4观看电视、网络电视

      换了mac book,ipv6电视却看不了了,为了看电视,只要自己动手了. 关于ipv6是啥和哪里有ipv6这里就不说了,找度娘吧. 我们观看IPv6视频直播信号有两种,一种是mms协议,另外一种 ...

  9. web本地存储-LocalStorage

    LocalStorage是HTML5 提供的在客户端存储数据的方法.替代但不同于之前的globalStorage,规则作用范围事先已设定好,是同一个域名(子域无效),使用同一种协议,在同一个端口上.目 ...

  10. HM中CU,TU的划分

    相信只要是做算法改进的,首先都会遇到这么一个问题:CU,PU及TU这几个在HM中该如何打印出它们最终的划分情况呢?也经常有人来问我这个问题,一般来说,因为问我的时候我一般手头都没有现成的代码可以提供, ...