Delphi:ClientDataSet中的Blob字段不清除

时间:2017-08-07 23:43:15

标签: delphi blob tclientdataset

我有一个连接到ClientDataSet的DataSource。数据库文件以二进制MyBase文件的形式存储在我的计算机上。

ClientDataSet有1个Blob字段,我想在此字段中存储图像。 更改图像时,数据库会增加其大小,而不是完全删除旧内容。有人可以给我一个示例,如何完全删除Blob字段中的旧内容,而不是增加数据库中的大小?

这是一个用于测试的小例子。每次按下按钮,DB文件都会增加其大小。没有创建新记录。

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Edit;
TBlobField(ClientDataSet1.FieldByName('blob')).Clear;
TBlobField(ClientDataSet1.FieldByName('blob')).LoadFromFile('C:\Users\xxx\Desktop\example.bmp');
ClientDataSet1.Post;
ClientDataSet1.SaveToFile(ExtractFilePath(ParamStr(0)) + 'DB.cds', dfBinary);
end;

当我在clear命令之后直接运行if TBlobField(ClientDataSet1.FieldByName('blob')).IsNull时,它表示它是空的。

0 个答案:

没有答案