gpt4 book ai didi

sqlite - Delphi-如何在SQLite数据库中将位图保存到BLOB字段

转载 作者:行者123 更新时间:2023-12-03 17:41:56 28 4
gpt4 key购买 nike

我试图将TBitmap图像数组添加到ClientDataSet的不同记录中(在ftBlob字段中),然后将这些记录保存到SQLite数据库中。 BLOB字段(DocImage)是数据库中的必填字段。

但是,我的代码似乎根本没有将位图保存到ClientDataSet中的blob字段中。因此,当我调用BdmMain.cdsTrxDoc.ApplyUpdates(0)时,出现错误:“字段'DocImage'必须具有一个值。”

在调用FTrxPhotoValue[i].SaveToStream(BlobStream)之前和之后,我已经检查了BlobStream(BlobStream.Size)的大小,并且确实增加了大小,但是BlobField的数据大小仍然为0。

这是代码片段:

FTrxIDValue: Integer;
FTrxDocIDValue: array of Integer;
FTrxPhotoValue: array of TBitmap;
// ...
for i := 0 to Length(FTrxPhotoValue) do
begin
BdmMain.cdsTrxDoc.Insert;
BdmMain.cdsTrxDoc['TrxID'] := FTrxIDValue;
BdmMain.cdsTrxDoc['DocID'] := FTrxDocIDValue[i];
BlobField := BdmMain.cdsTrxDoc.FieldByName('DocImage');
BlobStream := BdmMain.cdsTrxDoc.CreateBlobStream(BlobField, bmWrite);
FTrxPhotoValue[i].SaveToStream(BlobStream);
end;
// ...
BdmMain.cdsTrxDoc.ApplyUpdates(0);

最佳答案

调用Free后,应 流。流仅在 SaveToStream期间更新基础字段。

关于sqlite - Delphi-如何在SQLite数据库中将位图保存到BLOB字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46099167/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com