【发布时间】:2014-04-29 14:19:49
【问题描述】:
我正在编写一个 REST 数据快照服务器,并且必须将 TStream 保存到 VarBinary(384) 字段。我尝试在现场创建 BlobStream,但尝试执行此操作时出现异常错误。
如何使用 DBExpress 保存到 VarBinary 字段?
with cdsInsertIssueActionTemplateDetail do
begin
Active := True;
Insert();
T11 := TMemoryStream.Create;
DM.CopyStreamToMemoryStream(Template11, T11);
BlobField := TBlobField(FieldByName('FingerTemplate'));
BS := CreateBlobStream(BlobField, bmWrite); //Exception occurs here
BS.CopyFrom(T11, T11.Size);
T11.Free;
BS.Free;
Post();
Active := False;
end;
【问题讨论】:
-
我尝试使用 TSQLQuery 参数来写入字段,但没有成功。 T11 := TMemoryStream.Create; DM.CopyStreamToMemoryStream(Template11, T11); Params.ParamByName('FingerTemplate').DataType := ftBlob; Params.ParamByName('FingerTemplate').LoadFromStream(Template11, ftBlob);在此收到“流读取错误”
-
你确定
FieldByName('FingerTemplate')实际上返回了TBlobField吗?您可以改用FieldByName('FingerTemplate') as TBlobStream。
标签: delphi delphi-xe3 datasnap dbexpress tclientdataset