青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

在VC6.0中我們通常用Ado的Field 對象的GetChuck和AppendChunk來讀寫Blob對象,但是這樣做要寫很多的代碼,其實ado給我們提供了一個更易操作的對象那就是Stream Object,通過它我們可以更容易的操作數據庫中的Blob對象,而且可以直接把Blob對象從數據庫保存到本地文件,或者直接讀取文件寫入到數據庫中。下面就詳細描述如何操作。
         首先申明Stream對象
      _ StreamPtr  pStm;
         pStm.CreateInstance("ADODB.Stream");
         variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
         pStm->PutType(adTypeBinary);//類型為二進制
         //得到字段內容的大小
       //  long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize;
        //m_pRecordset為一個打開的紀錄集對象,含有photo這個blob字段
        pStm->Open( varOptional, 
                     adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t());         
         //打開pStm
          pStm->Write(_variant_t(m_pRecordset->GetFields()->GetItem("photo")->Value));
          //把photo字段的內容寫入pStm
          pStm->SaveToFile("c:\\publogo.jpg", adSaveCreateOverWrite);
          pStm->Close();
           //直接保存為文件,如果是別的格式只要保存的時候改變后綴就可以了
       下面是如果不保存成文件可以直接通過Com對象來繪制該圖片,IPicture 可以顯示多種格式圖片.
        HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, pStm->GetSize()); 
        LPVOID pvData = NULL; 
       IStream *ps;
        if (hGlobal != NULL) 
       { 
                  if ((pvData = GlobalLock(hGlobal)) != NULL) 
                 { 
                        char * m_pBMPBuffer = new char[pStm->GetSize()+1];//分配必要的存儲空間
                        char *pBuf = NULL;
                         SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
                         memcpy(pvData,pBuf,pStm->GetSize()); //復制數據到緩沖 區           m_pBMPBuffer
                      SafeArrayUnaccessData (varBLOB.parray);
                     GlobalUnlock(hGlobal);
                     CreateStreamOnHGlobal(hGlobal, TRUE, &ps);
                   }
        }

       IPicture *pPic;
        if(SUCCEEDED(OleLoadPicture(ps,pStm->GetSize() ,TRUE,IID_IPicture,(LPVOID*)&pPic)))
        {

           OLE_XSIZE_HIMETRIC hmWidth; 
           OLE_YSIZE_HIMETRIC hmHeight; 
           pPic->get_Width(&hmWidth); 
           pPic->get_Height(&hmHeight); 
           double fX,fY; 
           CDC *pDC = GetClientDC();//這里根據具體請況來取
         fX=(double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0); 
fY =(double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0); 
      if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL))) 
         AfxMessageBox("圖像繪制失敗!");  
       pPic->Release(); 
}  
          這樣就完成了對圖片文件從數據庫讀出和顯示的過程。
         對于從文件寫入數據庫就相對的容易多了,
          _StreamPtr  pStm;
         pStm.CreateInstance("ADODB.Stream");
         variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
      //   long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize;
         pStm->PutType(adTypeBinary;

        pStm->Open( varOptional, 
                     adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t());
         pStm->LoadFromFile("c:\\book.gif");//讀入文件
         variant_t  varBLOB=pStm->Read(adReadAll);
       m_pRecordset->GetFields()->GetItem("photo")->Value= varBLOB;//保存到數據集對象。
以上就是關于ADO的Stream對象操作數據庫中的blob字段的具體方法,主要是對圖片我們還可對它進行改造成其他的,比如讀者可以改造成讀取XMl文件,并保存等等。

Posted on 2007-01-13 16:47 艾凡赫 閱讀(1781) 評論(1)  編輯 收藏 引用 所屬分類: ADO

Feedback

# re: VC6.0中使用Stream Object讀取數據中流文件并顯示Bmp,JPG等圖片 (轉)  回復  更多評論   

2009-05-31 04:42 by zb
非常感謝!
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产精品中文字幕| 久久丁香综合五月国产三级网站| 一区二区电影免费观看| 欧美日韩另类字幕中文| 亚洲婷婷在线| 午夜精品电影| 精品成人一区二区| 欧美国产专区| 国产精品jvid在线观看蜜臀 | 另类春色校园亚洲| 日韩一区二区福利| 一区二区三区日韩精品| 国产欧美日韩精品一区| 国产精品午夜久久| 久久成人免费网| 久久伊人亚洲| 国产精品99久久久久久白浆小说| 亚洲欧美国产精品桃花| 欧美绝品在线观看成人午夜影视| 亚洲亚洲精品三区日韩精品在线视频| 亚洲综合色视频| 在线观看精品视频| 一本一本大道香蕉久在线精品| 国产精品热久久久久夜色精品三区 | 久久精品国产999大香线蕉| 亚洲国产精品久久久久秋霞蜜臀| 亚洲伦伦在线| 国精品一区二区| 一区二区三区产品免费精品久久75| 国产日本欧美一区二区三区在线| 亚洲电影免费观看高清完整版在线观看 | 国产精品久久国产精品99gif| 久久久久国产一区二区| 欧美日韩免费观看一区三区| 久久综合伊人77777尤物| 欧美体内she精视频| 欧美成人乱码一区二区三区| 国产精品一区二区在线| 亚洲精品久久久久久一区二区| 国外成人性视频| 在线亚洲欧美| 日韩视频免费观看高清在线视频| 久久av老司机精品网站导航| 亚洲午夜成aⅴ人片| 欧美国产第二页| 久久性色av| 国产亚洲午夜| 亚洲一区二区三区激情| 一本不卡影院| 欧美激情片在线观看| 另类激情亚洲| 国产一区二区在线观看免费播放 | 欧美freesex8一10精品| 韩国一区二区三区在线观看| 亚洲制服少妇| 性欧美video另类hd性玩具| 欧美日韩高清在线播放| 亚洲精品久久久久久久久久久| 亚洲黄网站在线观看| 另类激情亚洲| 欧美黄污视频| 亚洲人成网站999久久久综合 | 日韩特黄影片| 亚洲作爱视频| 欧美午夜不卡视频| 在线亚洲观看| 午夜欧美电影在线观看| 国产精品美女久久久免费| 在线亚洲+欧美+日本专区| 亚洲综合社区| 国产日韩欧美一区二区| 欧美一区二区免费| 老司机免费视频久久| 最新中文字幕一区二区三区| 欧美不卡在线| 日韩天堂在线观看| 欧美亚洲免费高清在线观看| 国产日产欧美一区| 久久久久网站| 亚洲日本中文字幕| 亚洲女人天堂成人av在线| 国产精品卡一卡二| 欧美一区二区观看视频| 欧美成人中文| 亚洲天堂成人在线视频| 国产欧美一区二区精品秋霞影院| 欧美制服第一页| 欧美国产日韩精品免费观看| 99亚洲伊人久久精品影院红桃| 欧美日韩免费观看一区三区| 亚洲欧美国内爽妇网| 久热精品视频在线| 日韩亚洲欧美在线观看| 国产精品素人视频| 极品尤物av久久免费看| 欧美激情精品久久久久久蜜臀 | 亚洲欧美国产三级| 欧美国产免费| 午夜精品999| 亚洲国产欧美精品| 国产精品网站在线播放| 美女精品视频一区| 亚洲欧美成人一区二区在线电影| 快播亚洲色图| 亚洲一区日韩| 亚洲国产小视频在线观看| 国产精品v日韩精品| 久久精品系列| 国产精品99久久久久久久vr | 欧美一区二区三区在线观看视频| 亚洲电影观看| 国产乱理伦片在线观看夜一区| 欧美成年人在线观看| 亚洲欧美国产视频| 一区二区欧美精品| 免费亚洲电影在线| 久久久不卡网国产精品一区| 亚洲精品在线观看视频| 国内精品久久国产| 国产精品嫩草99av在线| 欧美激情一区二区在线| 久久久噜噜噜久久中文字幕色伊伊 | 久久综合给合| 欧美在线观看你懂的| 亚洲视频在线免费观看| 亚洲片在线观看| 狠狠色狠色综合曰曰| 国产噜噜噜噜噜久久久久久久久 | 欧美女同在线视频| 蜜桃av一区二区| 久久久亚洲国产美女国产盗摄| 亚洲永久网站| 亚洲一区精品视频| 一区二区三区成人精品| 亚洲精品乱码久久久久久黑人 | 欧美一区二区三区四区在线| 亚洲一区综合| 亚洲一区二区av电影| 一区二区成人精品| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲欧美中日韩| 亚洲一级二级在线| 亚洲在线成人精品| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲影音一区| 亚洲特级毛片| 亚洲一区二区三区在线视频| 亚洲视频在线二区| 亚洲欧美综合精品久久成人| 亚洲男女自偷自拍| 欧美在线一二三| 欧美专区日韩专区| 亚洲嫩草精品久久| 亚洲愉拍自拍另类高清精品| 午夜精品www| 久久久欧美精品sm网站| 久久久青草婷婷精品综合日韩 | 一本到12不卡视频在线dvd| 亚洲毛片在线看| 亚洲香蕉网站| 欧美伊人久久大香线蕉综合69| 欧美在线视频免费观看| 久久久噜噜噜| 欧美另类亚洲| 国产精品久久久久免费a∨大胸| 国产精品激情偷乱一区二区∴| 国产精品午夜av在线| 精品电影在线观看| 亚洲视频观看| 久久久99免费视频| 亚洲精品久久久久久下一站| 亚洲视频在线播放| 麻豆av一区二区三区久久| 欧美日韩视频一区二区三区| 国产毛片精品视频| 亚洲人精品午夜在线观看| 亚洲女同性videos| 欧美高清免费| 亚洲综合成人婷婷小说| 快播亚洲色图| 国产精品夜色7777狼人| 亚洲国产精品久久| 午夜亚洲视频| 亚洲成人资源| 久久久激情视频| 欧美激情一区三区| 亚洲欧美视频一区| 欧美精品在线视频观看| 国产毛片一区| 在线视频精品| 欧美成人免费在线观看| 亚洲欧美日韩国产成人精品影院| 免费h精品视频在线播放| 国产精品一二三四区| av成人免费| 亚洲电影第1页| 久久成人免费日本黄色| 国产精品国产a级| 日韩亚洲国产精品| 欧美成人精品一区二区|