c++ - 从数据集 blob 字段打开和编辑文件
问题描述
TIBDataset
我在blob 字段中有文件。
我需要能够打开它们并保存对它们所做的所有编辑。
我试图打开这样的文件:
String sFileName = "Test.txt";
((TBlobField*)(TDataset->FieldByName("FILE"))->SaveToFile(sFileName);
ShellExecute(0, L"open", sFileName.c_str(), L"", L"", SW_SHOWNORMAL);
但我无法可靠地删除制作的文件,或保存所有编辑。
有没有办法从 blob 字段打开文件,或者从关闭(外部)文件中获取回调?
解决方案
我碰巧为自己的问题找到了解决方案(不是完美的解决方案)。
我在头文件中声明了 aTStringList *slOpendFiles
并将所有保存的文件名添加到其中。
((TBlobField*)(TDataset->FieldByName("FILE"))->SaveToFile(sFileName);
slOpendFiles->Add(sFileName);`
在析构函数中,我尝试保存和删除文件:
int iMaxFile = slOpendFiles->Count;
int iCurrFile = 0;
while (iCurrFile < iMaxFile){
TDataset->Edit();
((TBlobField*)(TDataset->FieldByName("FILE")))->LoadFromFile(slOpendFiles->Strings[iCurrFile]);
TDataset->Post();
DeleteFile(slOpendFiles->Strings[iCurrFile]);
iCurrFile++;
}
NP!如果某些文件已打开,则删除不适用于这些文件。
推荐阅读
- azure - 附加存储上的 Azure Batch 批量解压缩
- c# - 传递列表以查找项目列表
- apache - 如何配置主机以访问 Docker 中的 Apache ServeName
- java - Java程序反转从txt文件中读取的单词
- angular - Angular - 具有基于对象的动态 id 的可折叠行
- angular - 离子 ngFor 重复列表项
- flask - socketio 事件发生时如何提供 html 代码?
- typescript - tsconfig.json 中的“outDir”如何解决?
- microservices - 微服务断路器和发现服务模式
- java - 获取无法为连接 URL 'jdbc:mysql://127.0.0.1:3306/config in Netbeans' 创建类 '' 的 JDBC 驱动程序