因客戶需求,對客戶的指紋機與公司產品進行集成,需要對指紋機做接口的二次開發,郁悶的是產商只提供了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