我有一个系统,我通过仓鼠捕获用户的生物识别,并在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
类型。
谢谢,