将生物识别模板存储在SQL Server数据库中

时间:2014-05-29 13:34:16

标签: sql-server delphi ado widestring

我有一个系统,我通过仓鼠捕获用户的生物识别,并在WideString中获取生物识别模板,我的问题是在数据库中记录和检索字符串,必须遗漏一些字符串的一部分,查看要保存的代码并检索生物识别模板:

保存:

我通过变量_Template

获取生物识别读卡器的字符串模板
var
  _Template: WideString;

  function StrToMemoryStream(SourceString: WideString): TMemoryStream;
  begin
    Result := TMemoryStream.Create;
    Result.WriteBuffer(Pointer(SourceString)^, Length(SourceString));
    Result.Position := 0;
    SetLength(SourceString, Result.Size);
    Result.ReadBuffer(Pointer(SourceString)^, Result.Size);
  end;
  // getting biometric string
  _Template := GetStringBiometric;
  // saving into database
  ADOQuery1.Open;
  ADOQuery1.Edit;
  TBlobField(ADOQuery1.FieldByName('CLD_TEMPLATE1')).LoadFromStream(StrToMemoryStream(_Template));
    ADOQuery1.Post;

之后,获取数据库的价值

var
  _Template: WideString;

  function GetStrToStream(Field: TField): WideString;
  var
    Stream: TMemoryStream;
  begin
    Result := '';
    Stream := TMemoryStream.Create;
    try
      TBlobField(Field).SaveToStream(Stream);
      Stream.Position := 0;
      SetLength(Result, Stream.Size);
      Stream.ReadBuffer(Pointer(Result)^, Stream.Size);
    finally
      FreeAndNil(Stream);
    end;
  end;

  ADOQuery1.Open;
  _Template := GetStrToStream(ADOQuery1.FieldByName('CLD_TEMPLATE1'));
  ADOQuery1.Close;

返回模板后没有匹配生物识别模板,这在一些转换中是否会失去一些价值?我是初学编程WideString数据和TMemoryStream类,SQL Server数据库中的列是Image类型。

谢谢,

0 个答案:

没有答案