Code:
procedure TFPProcess.SaveFPData(AQuery: TADOQuery; AFingerID: Integer; AFPData:
OleVariant);
var
pData: PChar;
begin
with AQuery do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID));
Open;
if IsEmpty then
Append
else
Edit;
FieldByName('FingerID').Value := AFingerID;
//Save the fingerprint template
with TBlobStream(CreateBlobStream(FieldByName('Template'), bmWrite)) do begin
pData := VarArrayLock(AFPData);
try
Write(pData^, VarArrayHighBound(AFPData, 1) - VarArrayLowBound(AFPData, 1) + 1);
finally
VarArrayUnlock(AFPData);
end;
Free;
end;
Post;
Close;
end;
end;
Code:
procedure TFPProcess.GetFPData(AQuery: TADOQuery; AFingerID: Integer; var AFPData:
OleVariant);
var
pData: PChar;
begin
with AQuery do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID));
Open;
//read-out data
if not IsEmpty then
with TBlobStream(CreateBlobStream(FieldByName('Template'), bmRead)) do begin
AFPData := VarArrayCreate([0, Size + 1], varByte);
pData := VarArrayLock(AFPData);
try
Read(pData^, Size);
finally
VarArrayUnlock(AFPData);
end;
Free;
end;
Close;
end;
end;