【发布时间】:2021-07-06 23:40:43
【问题描述】:
使用以下代码时,我成功地将图像保存到“图像”blob 字段中:
if (OpenDialog1->Execute()) {
ADOTable1->Insert();
TStream* BlobStream = ADOTable1->CreateBlobStream(ADOTable1->FieldByName("Image"), bmWrite);
std::unique_ptr<TFileStream> FileStream(new TFileStream(OpenDialog1->FileName, fmOpenRead));
BlobStream->CopyFrom(FileStream.get(), FileStream->Size);
delete BlobStream;
ADOTable1->Post();
}
但是,我也想使用std:unique_ptr 创建BlobStream 对象,这样我就可以避免手动delete。当我尝试时
if (OpenDialog1->Execute()) {
ADOTable1->Insert();
std::unique_ptr<TStream> BlobStream(ADOTable1->CreateBlobStream(ADOTable1->FieldByName("Image"), bmWrite));
std::unique_ptr<TFileStream> FileStream(new TFileStream(OpenDialog1->FileName, fmOpenRead));
BlobStream->CopyFrom(FileStream.get(), FileStream->Size);
ADOTable1->Post();
}
我得到 无法插入空行错误。我在这里做错了什么?我正在使用 C++ Builder 10.3.3。
【问题讨论】:
标签: c++ blob c++builder