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

在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电影| 亚洲精品社区| 亚洲视频在线观看三级| 久久国产高清| 欧美成人高清视频| 亚洲人成7777| 久久久国产精品一区二区三区| 欧美一区亚洲二区| 久久精品免费| 猛男gaygay欧美视频| 亚洲二区精品| 一区二区av在线| 久久精品30| 欧美日韩亚洲成人| 狠狠色狠狠色综合人人| 日韩一二三区视频| 欧美中文日韩| 亚洲人成毛片在线播放| 欧美一区二视频在线免费观看| 久久米奇亚洲| 欧美视频在线观看| 亚洲大片免费看| 性欧美8khd高清极品| 亚洲第一精品久久忘忧草社区| aaa亚洲精品一二三区| 久久深夜福利免费观看| 欧美亚洲第一页| **网站欧美大片在线观看| 亚洲永久在线| 欧美二区在线播放| 午夜精品一区二区三区在线| 欧美风情在线观看| 国语自产偷拍精品视频偷 | 91久久久亚洲精品| 久久精品欧美日韩| 一区二区三区免费观看| 久久婷婷国产综合国色天香| 欧美午夜国产| 日韩午夜在线播放| 久久综合网色—综合色88| 9色精品在线| 欧美日本一区二区视频在线观看| 亚洲国内精品| 久久香蕉国产线看观看av| 亚洲少妇在线| 国产精品夫妻自拍| 亚洲天堂av图片| 一区二区国产在线观看| 欧美日韩和欧美的一区二区| 亚洲裸体在线观看| 亚洲黄色成人| 欧美freesex交免费视频| 影音国产精品| 免费欧美在线视频| 久久偷窥视频| 精品成人在线观看| 欧美国产日本| 欧美激情1区2区| aa亚洲婷婷| 亚洲人成小说网站色在线| 欧美电影在线观看| 日韩一级精品| 一本色道久久综合亚洲精品不| 欧美日韩精品在线播放| 国产精品久久久久久一区二区三区| 欧美大片18| 亚洲欧洲视频在线| 亚洲国产视频直播| 欧美激情在线免费观看| 一本色道久久综合亚洲精品高清 | 久久精品国产99国产精品| 韩国美女久久| 欧美福利一区二区三区| 欧美国产综合| 亚洲一区精品电影| 性欧美18~19sex高清播放| 国产日韩一区二区三区在线播放| 久久亚洲综合网| 欧美精品大片| 午夜精品一区二区三区在线视 | 欧美日韩免费在线| 欧美一区二区三区在线观看| 欧美在线免费视频| 亚洲精品少妇| 午夜久久久久| 最新日韩av| 亚洲欧美不卡| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美日韩综合一区| 欧美在线亚洲| 久久亚洲视频| 亚洲一区二区精品在线| 久久精品成人欧美大片古装| 日韩午夜精品| 久久精品欧美日韩| 在线综合亚洲欧美在线视频| 久久国产精品99国产精| 亚洲伦理在线免费看| 激情欧美一区二区| 国产婷婷色一区二区三区| 亚洲日本中文字幕| 亚洲欧美日韩在线高清直播| 欲色影视综合吧| 99热精品在线| 尤物精品国产第一福利三区 | 欧美日本国产在线| 久久久国产亚洲精品| 欧美黄污视频| 蜜桃久久精品乱码一区二区| 欧美日韩在线观看一区二区三区| 美女视频网站黄色亚洲| 欧美日韩一本到| 欧美高清视频一区二区| 国产日韩欧美日韩| 久热爱精品视频线路一| 伊人成人在线视频| 99re6热在线精品视频播放速度| 国产乱码精品一区二区三| 亚洲人成毛片在线播放女女| 激情av一区| 欧美在线网址| 亚洲欧美精品一区| 欧美日韩国产bt| 欧美国产一区二区三区激情无套| 国产九九精品| 亚洲一二三四区| 亚洲一区在线播放| 欧美日本一道本在线视频| 亚洲国产视频一区| 亚洲精品欧洲精品| 欧美了一区在线观看| 亚洲国产成人午夜在线一区 | 久久蜜臀精品av| 久久久久五月天| 国产一区二区日韩精品欧美精品| 午夜一区在线| 免费高清在线一区| 亚洲福利小视频| 久久亚洲私人国产精品va| 久久久久久久精| 国产主播一区二区| 久久久久久久久一区二区| 免费不卡中文字幕视频| 亚洲国产婷婷| 欧美激情一区二区三区在线| 亚洲狠狠婷婷| 一二三区精品福利视频| 欧美色图天堂网| 亚洲一区在线播放| 久久久久国产成人精品亚洲午夜| 国产午夜精品理论片a级探花| 性欧美暴力猛交69hd| 久久精品亚洲精品| 亚洲精品免费网站| 欧美视频国产精品| 欧美一区二区三区免费观看视频| 久热国产精品| 亚洲美女中出| 国产欧美一区在线| 麻豆91精品91久久久的内涵| 亚洲乱码精品一二三四区日韩在线| 亚洲视频你懂的| 国产日韩专区在线| 欧美福利影院| 欧美在线观看www| 亚洲伦伦在线| 久久久水蜜桃| 亚洲视频在线一区观看| 一区二区三区在线观看欧美| 欧美日韩高清在线播放| 欧美一乱一性一交一视频| 亚洲国产天堂久久综合网| 欧美一级专区| 一区二区三区鲁丝不卡| 国产综合色在线| 国产精品成人久久久久| 久久综合影音| 香蕉成人伊视频在线观看 | 久久精品国产亚洲精品| 亚洲国产一区二区a毛片| 亚洲欧美国产精品桃花| 亚洲国产精品成人一区二区| 欧美自拍偷拍| 香蕉av777xxx色综合一区| 亚洲国产精品一区二区www| 国产精品视频精品| 欧美精品麻豆| 久久精品国产亚洲一区二区三区 | 欧美1区视频| 性做久久久久久久免费看| 一区二区三区蜜桃网|