版主老大在么,能帮忙看个问题么?(以前好像版主参与过,关于大文件的数据库存储的)

jmylf 2003-03-15 04:02:07
写入
Session->AddPassword("lf/9210");
if(!OpenDialog1->Execute())
return;
TMemoryStream *tmpStream = new TMemoryStream();
tmpStream->LoadFromFile(OpenDialog1->FileName);

Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO a.db (filename,filec,filedate) VALUES(:filename,:filec,:filedate)");
Query1->DatabaseName=ExtractFilePath(Application->ExeName).c_str();
Query1->ParamByName("filename")->AsString = ExtractFileName(OpenDialog1->FileName);
Query1->ParamByName("filedate")->AsString = savetime;
//ShowMessage(ExtractFileName(OpenDialog1->FileName));
Query1->ParamByName("filec")->LoadFromStream(tmpStream,ftBlob);
Query1->ExecSQL();
delete tmpStream;


希望最后一次性写出所存储的所有文件
Session->AddPassword("lf/9210");
TMemoryStream *memStream = new TMemoryStream;
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select filec ,filename from a.db");
Query1->Open();
//Query1->First();
TBlobField *tmpField = (TBlobField *)Query1->Fields->Fields[0];
while(!Query1->Eof)
{
tmpField->SaveToStream(memStream);
memStream->SaveToFile(Query1->Fields->Fields[1]->Value);

Query1->Next();
}
delete memStream;
}


总是后面的文件包括前面文件内容,不知道那里错了啊?
...全文
58 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmylf 2003-03-15
  • 打赏
  • 举报
回复
我当时估计是流没有清空,就是不知道怎么清,这下清楚了
jmylf 2003-03-15
  • 打赏
  • 举报
回复
问题解决,谢谢版主和关心的弟兄们
wyb_45 2003-03-15
  • 打赏
  • 举报
回复
你是不是想将数据库里存储的BLOB的数据(多条)保存成一个文本?
这段代码是将保存一个文本
TFileStream * a=new TFileStream("d:\\ggg.bmp",fmCreate|fmOpenWrite);

Querys->Close();
Querys->SQL->Clear();
Querys->SQL->Add("select * from DLL_PLUG_INFO where ID_S="+Edit4->Text);
Querys->Open();
TBlobStream *s=new TBlobStream((TBlobField *)Querys->FieldByName("FILE_S"),bmRead);
a->CopyFrom(s,s->Size);
delete s;
delete a;
ShowMessage("ok");
将数据流写成一个文件,我想不是很难,有时间给你写写。
jishiping 2003-03-15
  • 打赏
  • 举报
回复
while(!Query1->Eof)
{
memStream->Clear(); //加上这一句
tmpField->SaveToStream(memStream);
//....
}
kingfish 2003-03-15
  • 打赏
  • 举报
回复
看另外一个帖子,试试
jmylf 2003-03-15
  • 打赏
  • 举报
回复
版主不在,兄弟们帮帮忙看看吧
耙子 2003-03-15
  • 打赏
  • 举报
回复
tr@soe 应该在忙着写书,
cker 忙着带孩子,哈哈
jmylf 2003-03-15
  • 打赏
  • 举报
回复
怎么版主不在阿,哪位兄弟可以帮下忙?不够可以加分

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧