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

在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>
            亚洲日本成人女熟在线观看| 欧美专区亚洲专区| 免费人成网站在线观看欧美高清| 午夜亚洲福利| 在线视频观看日韩| 欧美激情在线观看| 欧美日一区二区三区在线观看国产免 | 开心色5月久久精品| 久久噜噜噜精品国产亚洲综合 | 国产精品美女久久久浪潮软件| 午夜一区不卡| 久久精品女人的天堂av| 国产精品久久久久一区二区三区 | 欧美成人免费全部| 欧美精品乱码久久久久久按摩| 一区二区三区福利| 香蕉乱码成人久久天堂爱免费| 136国产福利精品导航| 亚洲欧洲在线看| 国产欧美日本| 亚洲国产老妈| 国产日韩在线一区| 亚洲电影下载| 国产视频精品xxxx| 亚洲日本欧美日韩高观看| 国产精品麻豆欧美日韩ww| 另类天堂视频在线观看| 欧美四级伦理在线| 欧美电影在线| 国产精一区二区三区| 在线亚洲观看| 国产精品视频网址| 欧美国产亚洲精品久久久8v| 国产精品v欧美精品∨日韩| 美女诱惑一区| 国产日韩欧美在线看| 亚洲区中文字幕| 一区二区亚洲| 性欧美8khd高清极品| 夜夜嗨av一区二区三区中文字幕 | 亚洲特黄一级片| 日韩亚洲欧美中文三级| 久久久久国产精品厨房| 欧美一区2区三区4区公司二百| 欧美成人精品在线播放| 裸体女人亚洲精品一区| 国产欧美一区在线| 在线亚洲精品| 在线午夜精品自拍| 欧美精品大片| 亚洲国内高清视频| 最近中文字幕日韩精品| 久久在线视频在线| 嫩模写真一区二区三区三州| 国产日产欧美a一级在线| 亚洲素人一区二区| 亚洲免费一区二区| 国产精品久久久久av免费| 99国产精品自拍| 在线亚洲一区观看| 欧美性jizz18性欧美| 亚洲午夜成aⅴ人片| 一区二区欧美国产| 欧美日韩在线观看一区二区| 亚洲精品免费电影| 艳女tv在线观看国产一区| 欧美精品日韩一本| 日韩小视频在线观看| 亚洲一级一区| 国产精品久久久久aaaa九色| 亚洲淫片在线视频| 欧美在线国产精品| 国产一区二区三区在线观看免费视频 | 亚洲一区二区三区乱码aⅴ| 欧美日在线观看| 亚洲一区影音先锋| 久久久久久久欧美精品| 韩国成人福利片在线播放| 久久久久久噜噜噜久久久精品 | 亚洲一区欧美一区| 国产欧美一区二区三区在线老狼| 校园激情久久| 欧美电影免费观看高清完整版| 亚洲精品日产精品乱码不卡| 欧美日韩国语| 欧美亚洲一区在线| 欧美二区在线播放| 在线亚洲欧美视频| 国产主播精品| 欧美精品一区二区三区在线播放| 国产视频欧美视频| 欧美激情无毛| 日韩午夜在线视频| 久久久久综合一区二区三区| 亚洲精品乱码久久久久久日本蜜臀 | 久色成人在线| 一区二区三区高清在线观看| 久久精品人人做人人综合| 亚洲欧洲综合| 国产亚洲午夜| 欧美日韩精品一区视频| 欧美一区中文字幕| 亚洲精品国产欧美| 久久久蜜臀国产一区二区| 亚洲看片免费| 国外成人在线视频网站| 欧美日本久久| 久久久久欧美精品| 亚洲永久精品大片| 91久久午夜| 噜噜噜噜噜久久久久久91 | 亚洲国产欧美一区| 国产欧美日韩精品专区| 欧美精品色综合| 久久久久久久999精品视频| 一本色道久久综合狠狠躁篇的优点| 久久免费黄色| 欧美一区二区三区精品| 99精品国产一区二区青青牛奶| 国产原创一区二区| 国产精品一区二区久久国产| 欧美激情国产精品| 久久夜色精品国产噜噜av| 午夜国产不卡在线观看视频| 亚洲精品视频啊美女在线直播| 另类激情亚洲| 久久精品亚洲| 久久九九国产精品| 欧美一区二区三区视频在线观看| 一区二区三区黄色| 夜夜嗨av一区二区三区四区| 亚洲精品欧美精品| 日韩视频在线观看国产| 亚洲国产影院| 亚洲欧洲一区| 亚洲欧洲一区二区三区久久| 亚洲国产你懂的| 亚洲人成网站精品片在线观看| 伊人精品成人久久综合软件| 国产又爽又黄的激情精品视频| 国产午夜精品美女视频明星a级| 国产精品乱人伦一区二区| 国产精品久久久91| 国产精品一区二区三区乱码| 国产精品永久在线| 国产一区二区三区在线观看免费视频| 国产日韩精品在线播放| 国产一区二区三区丝袜 | 欧美日韩成人一区二区三区| 欧美国产日韩亚洲一区| 欧美精品乱人伦久久久久久| 欧美日韩aaaaa| 国产精品爱久久久久久久| 国产精品捆绑调教| 国产日韩免费| 亚洲国产美女久久久久| 一区二区不卡在线视频 午夜欧美不卡' | 欧美无乱码久久久免费午夜一区| 欧美午夜精品久久久久久人妖| 国产精品久久久久99| 亚洲人屁股眼子交8| 国产精品va在线| 亚洲精品久久嫩草网站秘色| 亚洲人精品午夜| 亚洲视频导航| 久久国产免费看| 欧美高清视频一区二区| 欧美香蕉大胸在线视频观看| 国产一区二区日韩精品| 亚洲激情另类| 亚洲欧美日韩精品久久亚洲区| 久久久精品欧美丰满| 亚洲国产精品va在线观看黑人 | 欧美一区二区福利在线| 欧美 日韩 国产一区二区在线视频| 亚洲激情精品| 午夜老司机精品| 欧美大片在线看免费观看| 国产精品久久久久久久浪潮网站 | 午夜精品国产更新| 欧美搞黄网站| 欧美一二三区在线观看| 欧美国产欧美综合| 国产日本精品| 一区二区不卡在线视频 午夜欧美不卡'| 欧美在线播放高清精品| 亚洲国产高清一区二区三区| 亚洲欧美国产一区二区三区| 欧美精品激情在线| 黄网动漫久久久| 亚洲欧美日产图| 亚洲精品视频一区| 久久久一区二区| 国产伦精品一区二区三区高清版 | 国产精品视频区| 99视频一区二区| 欧美~级网站不卡| 香蕉久久a毛片| 国产精品久久久久久影院8一贰佰| 亚洲国产专区校园欧美|