我在TIBDataset
blob字段中有文件。
我需要能够打开它们并保存对它们所做的所有编辑。
我试图打开这样的文件:
String sFileName = "Test.txt";
((TBlobField*)(TDataset->FieldByName("FILE"))->SaveToFile(sFileName);
ShellExecute(0, L"open", sFileName.c_str(), L"", L"", SW_SHOWNORMAL);
但是我无法可靠地删除制作的文件或保存所有编辑。
是否可以通过blob字段打开文件,或者通过关闭(外部)文件获得回调?
答案 0 :(得分:0)
我碰巧找到了解决自己问题的解决方案(不是完美的解决方案)。
我在头文件中声明了TStringList *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!如果某些文件已打开,则删除将不起作用。