首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

直接用TADOBlobStream而不用TMemoryStream 可不可以,该怎么解决

2012-02-16 
直接用TADOBlobStream而不用TMemoryStream 可不可以C/C++ codevoid __fastcall TForm1::btn3Click(TObject

直接用TADOBlobStream而不用TMemoryStream 可不可以

C/C++ code
void __fastcall TForm1::btn3Click(TObject *Sender)//读取文件{    if(!dlgSave1->Execute())        return;    qry1->SQL->Text = "select * from mytable1 where id =1";    qry1->Open();    TBlobField * pField1=(TBlobField *)qry1->FieldByName("content");    if(!pField1->IsNull)    {       TADOBlobStream* pmem=new TADOBlobStream (pField1,bmRead);       pmem->Seek(0,soFromBeginning);       //TMemoryStream *Inifile = new TMemoryStream();       //Inifile->LoadFromStream(pmem);       //Inifile->SaveToFile(dlgSave1->FileName);       pmem->SaveToFile(dlgSave1->FileName); //直接用这个TADOBlobStream对象指针       //delete Inifile;       delete pmem;    }    qry1->Close();}

像上面这样,用ado从数据库读取出之前保存进去的文件,直接用TADOBlobStream而不用TMemoryStream 可不可以(就是注释掉那几句),反正我试了下是可以正常读取出来的。但是不知道有没有什么bug。大伙帮忙看看。

[解决办法]
楼主试试看

C/C++ code
void __fastcall TForm1::btn3Click(TObject *Sender)//读取文件{    if(!dlgSave1->Execute())        return;    qry1->SQL->Text = "select * from mytable1 where id =1";    qry1->Open();    TBlobField * pField1=(TBlobField *)qry1->FieldByName("content");    if(pField1->BlobSize > 0)        pField1->SaveToFile(dlgSave1->FileName); //直接用这个TBlobField 对象指针    qry1->Close();}
[解决办法]
完全可以.

热点排行