如何把数据库某个字段以流的形式读取到控件中

sinozw 2017-03-17 03:48:28
一个PDF控件,其中有一个函数支持直接从内存流读取PDF文件。函数 long OpenMem(short * pBuf, long len, LPCTSTR password); pBuf: 二进制内存流。 len 内存流长度 password 密码。给出的示例代码如下(内存流是从文件读取来的):
FILE *fp =fopen(strFile,"rb");
if(fp)
{
fseek(fp,0,SEEK_END);
long len=ftell(fp);
fseek(fp,0,SEEK_SET);
char *pBuf=(char *)malloc(sizeof(char)*(len+1));
if(pBuf)
{
fread(pBuf,1,len,fp);
pPDFView->OpenMem( (short* )pBuf,len,NULL)
}
fclose(fp);
}
________________________________________________________________

文件写入数据库字段代码:
ADOQuery1->Append() ;
ADOQuery1->Fields->Fields[0]->AsInteger =111;
TBlobField *wj =(TBlobField*)ADOQuery3->Fields->Fields[3];
wj->LoadFromFile("D:\\外形图.pdf" ) ;
ADOQuery3->Post() ;

________________________________________________________________
从数据库字段读到流中,再打开,就会报错。
TStream *stream = ADOQuery1-> CreateBlobStream( ADOQuery1->Fields->Fields[3] ,bmRead);
PDFView1->OpenMem( (short*)stream,stream->Size ,NULL ) ;
想请教高手,上面的代码应该如下写,才能正确实现从数据库字段----内存中流------控件中呢?



...全文
507 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2017-03-17
  • 打赏
  • 举报
回复
写入流 设置流的位置为0 读取流
sinozw 2017-03-17
  • 打赏
  • 举报
回复
不行,和我的代码报错一样
zzbinfo 2017-03-17
  • 打赏
  • 举报
回复
OpenDialog1->InitialDir =".\\" ; //初始化打开对话框
OpenDialog1->Filter = "旅客信息文件 (*.mdb)|*.mdb|所有文件 (*.*)|*.*";
OpenDialog1->DefaultExt = String("mdb");
if(OpenDialog1->Execute ())//动态指定数据源
{
AnsiString ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password = GoldenShield;Data Source = " + OpenDialog1->FileName.Trim ();
ADOQuery1->ConnectionString  = ConnStr.Trim ();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from cguester");
ADOQuery1->Open();
TBlobField * pField=(TBlobField *)ADOQuery1->FieldByName("DJ_ZHAOPIAN");
TADOBlobStream* pmem=new TADOBlobStream (pField,bmRead);
pmem->Seek(0,soFromBeginning);
TJPEGImage *pBitmap = new TJPEGImage();
//Graphics::TJPEGImage * pBitmap=new Graphics::TJPEGImage();
pBitmap->LoadFromStream(pmem);
Image1->Picture->Assign(pBitmap);
delete pBitmap;
delete pmem;
读图片的例子,应该跟你的差不多吧,你先试试看看啊

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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