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

在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>
            欧美视频在线播放| 久久国产精品一区二区三区| 欧美一级片在线播放| 亚洲专区免费| 欧美一区高清| 久久久久国产精品人| 久久中文精品| 亚洲国产综合在线| 99精品欧美一区二区三区| 一区二区三区视频观看| 亚洲一区一卡| 久久亚洲影音av资源网| 欧美女人交a| 国产亚洲日本欧美韩国| 亚洲国产精品久久久久秋霞不卡| 日韩视频一区二区| 性欧美大战久久久久久久免费观看| 久久久国产精品亚洲一区| 欧美福利网址| 亚洲欧美制服中文字幕| 蜜月aⅴ免费一区二区三区 | 亚洲精品一区二区三区av| 99re热这里只有精品免费视频| 亚洲一区二区三区中文字幕在线 | 国产精品美女久久久久久免费| 国产一区自拍视频| 一本色道久久99精品综合| 久久久久国产精品一区| 亚洲精品视频在线播放| 久久久久久久综合狠狠综合| 欧美亚男人的天堂| 亚洲精品日本| 免费欧美电影| 欧美在线观看视频在线| 国产精品久久9| 亚洲免费av网站| 快射av在线播放一区| 亚洲一区国产| 亚洲欧洲精品一区二区三区波多野1战4| 中国成人黄色视屏| 母乳一区在线观看| 伊人成人在线| 久久久久9999亚洲精品| 亚洲综合国产激情另类一区| 欧美日本亚洲韩国国产| 亚洲三级视频在线观看| 欧美波霸影院| 久久久青草青青国产亚洲免观| 国产精品综合视频| 亚洲免费一在线| 亚洲免费激情| 欧美日韩国产色站一区二区三区| 亚洲日本成人网| 欧美国产日韩一区二区在线观看 | 久久久精品国产免费观看同学 | 久久综合久久综合这里只有精品| 中文在线一区| 国产精品九九| 欧美在线视频观看| 欧美一区二区福利在线| 国产又爽又黄的激情精品视频| 久久久久久999| 欧美一站二站| 精品不卡视频| 亚洲第一中文字幕| 欧美高清视频一区二区三区在线观看| 亚洲电影在线观看| 欧美激情a∨在线视频播放| 猫咪成人在线观看| 日韩视频一区二区三区在线播放免费观看 | 美女爽到呻吟久久久久| 久久久久久久综合| 亚洲精品久久久久中文字幕欢迎你| 亚洲承认在线| 欧美日韩中文字幕在线视频| 欧美亚洲三级| 久久久亚洲欧洲日产国码αv| 亚洲黄色成人| 亚洲视频日本| 国内精品久久久久久久影视麻豆 | 伊人色综合久久天天| 欧美国产日韩免费| 欧美四级电影网站| 久久精品理论片| 欧美不卡在线视频| 国产精品一区二区三区观看| 久久久蜜桃一区二区人| 久久久久久**毛片大全| 亚洲精品一区在线观看香蕉| 亚洲视频在线播放| 精品福利av| 国产精品99久久久久久久久久久久| 国产日韩欧美三区| 亚洲国产精品一区二区尤物区| 欧美小视频在线| 牛牛影视久久网| 国产精品久久久久久久浪潮网站| 久久综合五月天婷婷伊人| 欧美日韩美女在线| 久久视频在线视频| 欧美先锋影音| 亚洲高清123| 国产日韩欧美一区二区| 亚洲日本理论电影| 激情欧美一区| 亚洲无人区一区| 日韩视频一区二区在线观看| 欧美资源在线观看| 亚洲自拍偷拍福利| 欧美国产大片| 麻豆国产精品va在线观看不卡| 欧美午夜一区二区福利视频| 亚洲国产精品t66y| 在线看国产日韩| 亚洲欧美国产视频| 在线亚洲免费视频| 欧美精品一区二区三区在线看午夜| 久久久精品一品道一区| 国产乱码精品| 亚洲一区二区三区欧美 | 欧美国产日产韩国视频| 国产三区二区一区久久| 亚洲视频导航| 亚洲特黄一级片| 欧美人在线视频| 亚洲成色777777在线观看影院| 激情偷拍久久| 久久久久久网| 免费不卡在线观看av| 狠狠综合久久| 久久久久久综合网天天| 久久夜色精品| 影音先锋亚洲视频| 久久婷婷综合激情| 嫩草成人www欧美| 在线欧美日韩| 久久久久久亚洲精品中文字幕| 久久精品国产精品亚洲综合 | 国产日韩欧美一区二区三区在线观看| 日韩午夜精品视频| 亚洲欧美日本视频在线观看| 国产精品国产亚洲精品看不卡15 | 亚洲免费网址| 国产精品色婷婷| 午夜久久美女| 久久女同精品一区二区| 在线播放一区| 99视频有精品| 亚洲欧美日韩一区二区在线 | 亚洲韩国精品一区| 在线亚洲+欧美+日本专区| 国产精品家教| 欧美主播一区二区三区美女 久久精品人| 久久女同精品一区二区| 亚洲国产视频a| 欧美精品久久一区二区| 国产精品99久久久久久久久久久久| 欧美亚洲免费高清在线观看| 激情欧美一区二区三区在线观看 | 欧美日韩情趣电影| 亚洲女ⅴideoshd黑人| 你懂的视频一区二区| 99精品欧美一区| 国产亚洲成精品久久| 免费观看亚洲视频大全| 亚洲小视频在线| 欧美多人爱爱视频网站| 宅男噜噜噜66一区二区66| 国产一区二区三区四区三区四| 久色成人在线| 亚洲自拍三区| 亚洲激情在线观看| 久久精品一本| 国产精品99久久久久久有的能看| 国产亚洲综合精品| 欧美日韩亚洲一区二| 久久久免费av| 亚洲免费中文字幕| 亚洲精品一品区二品区三品区| 久久久久久久欧美精品| 中文日韩在线视频| 亚洲人成绝费网站色www| 国产一区二区三区四区五区美女| 欧美精品日韩| 久热国产精品| 久久精品国语| 亚洲一区激情| a91a精品视频在线观看| 欧美国产日本高清在线| 久久综合色播五月| 久久久久国产精品厨房| 欧美一区视频| 亚洲综合色自拍一区| 99综合电影在线视频| 亚洲国产精品一区二区久| 国产一区二区三区在线观看视频 | 国产精品精品视频| 欧美日韩无遮挡| 欧美激情亚洲视频| 老司机午夜精品|