亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi數據庫編程教程(五)

2019-11-18 18:38:40
字體:
來源:轉載
供稿:網友
 

第二節  使用DBImage引出JPEG—錯誤的方式

     DBImage—思路一(The DBImage - take one)

      當試圖使用Delphi做新的嘗試時,我所做的第一件事是向Delphi的自帶幫助尋求方法。這是幫助文檔將回答:TDBImage(在組件面板的Data Controls頁)表示數據庫當前記錄的一個BLOB字段的圖形圖像。使用TDBImage表示圖形字段值。TDBImage允許表單顯示數據庫的圖形數據。TDBImage僅僅比TImage組件多了一些數據可視屬性。其中兩個最重要的屬性是:DataSource(數據源)和Field(字段)。DataSource(數據源)屬性連接圖形組件到數據庫。在我們的表單上有一個名為DataSource1的DataSource(數據源)組件—代表著一個數據集。Field(字段)屬性指出擁有圖像的字段(在表中)。
      一切都清楚了,現在在表單上放置一個DBImage組件并默認名為DBImage1。為了真正的把DBImage與表的BLOB字段相連,我們僅需要做以下的配置(使用Object Inspector):

      DBImage1.DataSource = DataSource1
      DBImage1.Field = Picture

      為了顯示存在applications表的Picture字段的JPEG圖像,這是必需的竅門。

      為了驗證這樣的配置是否可以工作,我們所需做的唯一一件事是設置ADOTable1組件的Active(激活)屬性為True即可。在設計時我們就可在Object Inspector(對象檢視器)中完成。一旦你這樣做了,就會出現以下的對話框:

Bitmap image not supported

      什么?為什么顯示“位圖圖像無效”呢?我們有JPEG圖片而不是BMP圖片—問題就在這里嗎?讓我們再回頭看看幫助。

      通過在幫助中的一陣點擊之后,得出結論:為了得到數據庫里的JPG圖片,我們得使用TJpegImage對象。為了顯示圖片,我們需要Image(圖像)組件的簡單、不可視版本。同時,我們需要用流(Stream)從BLOB對象中載出圖片。幫助文檔敘述:我們應使用TADOBlobStream來訪問或改變ADO數據集中BLOB或memo(備注)字段的值。

 

 

第三節 用流引出JPEG—錯誤的方法

      引出JPEG—思路二(Pulling the Jpeg - take two!

      既然我們不能使用DBImage做任何事—從表單中去掉它并放上一個普通的TImage組件(Additional頁)命名為ADOImage。不幸的是,Image組件沒有任何數據可視(data-aware)的屬性,因此,需要一個單獨的程序來顯示它所表示的數據庫表中的圖片。完成這件事的最簡單的方法是:在表單上放置一個Button(按鈕),把所有的程序代碼放在它的OnClick事件中,按鈕的名稱為:“btnShowImage”。

      為了使用ADOBLOBStream,幫助文檔建議創建一個TADOBlobStream實例,用“流”的方法從數據集中讀取圖形字段,然后釋放BLOB流。在中間的某個地方,我們將需要用LoadFromStream方法從TADOBlobStream對象中載入JPEG圖像。Image(圖像)組件的Picture(圖片)、Graphic(圖形)屬性將用于真正的存儲和顯示圖片。

      字段對象,它是什么?

      這時,我假設只需要一點點關于字段對象的知識對于你掌握本章已綽綽有余了。在Delphi數據庫的開發中,主要的對象之一是TField對象。字段組件是表示運行(或設計)時的數據集字段的非可視化對象。TADOTable(和其他TDataSet子類)提供設計時對Fields Editor(字段編輯器)的訪問方法。Fields Editor使你能選擇數據集中你所想包含的字段。更重要的是,它創建了應用程序數據集中使用的字段組件的穩固的列表。為了調用Fields Editor,可以雙擊TADOTable組件。默認情況下,字段列表是空的。點擊Add按鈕打開一個對話框,里面列出了Applications表的字段列表。缺省情況下,所有字段都被選擇,然后選擇OK。

      Delphi會按如下的方式給出字段的默認名稱:Table(表)名+Field(字段)名。這意味著我們的圖片字段名為:ADOTable1Picture。

      TADOBlobStream的Create(創建)方法創建一個實例用于讀或寫一個指定的BLOB字段對象,在這里是ADOTable1Picture字段。

      我們在btnShowImage按鈕的OnClick事件中寫入程序代碼。該代碼將從當前所選行的Picture字段中讀取圖片。源代碼如下所示:

      uses jpeg;
      ...
      PRocedure TForm1.btnShowImageClick(Sender: TObject);
      var    bS: TADOBlobStream;
      Pic : TJpegImage;
      begin
       bS := TADOBlobStream.Create
        (AdoTable1Picture, bmRead);
        try
          Pic:=TJpegImage.Create;
           try
            Pic.LoadFromStream(bS);
             ADOImage.Picture.Graphic:=Pic;
          finally
           Pic.Free;
          end;
       finally
         bS.Free
       end;
     end;

      OK,讓我們運行這個工程。當然,設置ADOTable1.Active屬性為True。表單顯示后,點擊按鈕,將出現下面的顯示:

Jpeg read error

      呃, 怎么哪?代碼百分之百的正確但為什么不顯示圖像呢!記住“永不放棄,永不投降”!讓我們深入到字節水平看看到底發生了什么!


上一篇:Delphi數據庫編程教程(六)

下一篇:Delphi數據庫編程教程(八)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品视频在线播放| 亚洲欧美国产另类| 欧美一区三区三区高中清蜜桃| 亚洲视频精品在线| 97久久精品人搡人人玩| 亚洲久久久久久久久久| 国产精品亚洲аv天堂网| 91精品国产色综合久久不卡98口| 欧美大片在线免费观看| 国产视频久久久久久久| 亚洲国产精品高清久久久| 午夜精品久久久久久久99热| 国产精品h片在线播放| 日韩电影中文字幕| 亚洲老司机av| 日韩欧美第一页| 国产97免费视| 国产美女精品视频免费观看| 尤物yw午夜国产精品视频| 欧美日韩国产一区在线| 日韩av最新在线观看| 97香蕉久久超级碰碰高清版| 色婷婷综合久久久久中文字幕1| 狠狠久久亚洲欧美专区| 国产精品久久久久不卡| 日韩在线高清视频| 欧亚精品在线观看| 欧美天天综合色影久久精品| 久色乳综合思思在线视频| 久久综合伊人77777蜜臀| 欧美俄罗斯性视频| 国产精品免费视频久久久| 亚洲国产小视频在线观看| 亚洲一区二区日本| 97免费视频在线播放| 日韩在线视频观看正片免费网站| 91黑丝高跟在线| 91在线视频成人| 亚洲国产另类 国产精品国产免费| 久久久久久中文字幕| 亚洲网站在线观看| 亚洲视频在线观看网站| 成人网页在线免费观看| 日韩av中文字幕在线免费观看| 精品国产一区二区三区久久久狼| 欧美激情videoshd| 精品国产乱码久久久久久婷婷| 欧美大人香蕉在线| 美女撒尿一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 97精品久久久中文字幕免费| 国产欧美日韩亚洲精品| 国产亚洲精品久久| 欧美国产日本在线| 亚洲国产精品人久久电影| 久久久精品久久久久| 久久精品视频播放| 亚洲free性xxxx护士hd| 爽爽爽爽爽爽爽成人免费观看| 日韩精品极品在线观看播放免费视频| 国产不卡在线观看| 精品国产一区久久久| 日韩欧美在线视频日韩欧美在线视频| 国产精品流白浆视频| 久久久久久久久久久久av| 久久精品国产亚洲7777| 国内精品久久久久久久久| 人妖精品videosex性欧美| 日韩在线视频中文字幕| 91国内免费在线视频| 91精品国产91久久久久久吃药| 国产99久久精品一区二区| 色老头一区二区三区在线观看| 精品国产一区二区三区久久狼黑人| 久久精品国产亚洲| 欧美猛男性生活免费| 热久久免费国产视频| 国产成人综合av| 亚洲最大的免费| 精品少妇一区二区30p| 欧美性猛交xxxx免费看漫画| 欧美成人精品在线播放| 精品动漫一区二区三区| 欧美风情在线观看| 亚洲美女喷白浆| 午夜精品久久久久久久99热浪潮| 91精品国产高清| 国产视频精品免费播放| 中文字幕亚洲第一| 欧美精品videos| 亚洲视频电影图片偷拍一区| 日韩在线视频观看正片免费网站| 国产精品一区二区三区在线播放| 国产精品一二区| 欧美在线国产精品| 成人日韩在线电影| 日韩亚洲在线观看| 伊人一区二区三区久久精品| 97免费视频在线播放| 欧美日韩在线视频观看| 亚洲香蕉伊综合在人在线视看| 久久久久久久999精品视频| 欧美日韩激情美女| 欧美激情第一页xxx| 国产97色在线| 538国产精品视频一区二区| 日韩专区在线观看| 国产精品久久999| 国产欧美中文字幕| 欧美日韩国产丝袜另类| 日韩av在线高清| 狠狠做深爱婷婷久久综合一区| 一本色道久久88亚洲综合88| 国产精品美女免费| 亚洲性av在线| 奇米一区二区三区四区久久| 丝袜亚洲另类欧美重口| 国产精品自拍视频| 欧美精品久久久久| 久久久亚洲精品视频| 国产精品成人一区二区| 国产视频精品xxxx| 欧美日韩在线第一页| 欧美精品在线极品| 欧美另类交人妖| 日韩欧美在线视频观看| 欧美专区福利在线| 欧美巨乳美女视频| 日韩精品日韩在线观看| 色老头一区二区三区在线观看| 疯狂做受xxxx高潮欧美日本| 欧美在线国产精品| 亚洲国产精品热久久| 亚洲老头老太hd| 26uuu久久噜噜噜噜| 色婷婷综合久久久久| 国产精品6699| 久久久亚洲福利精品午夜| 日韩电影中文字幕在线| 国产精品视频免费在线观看| 欧美精品久久久久久久久| 国产精品99久久久久久www| 国产成人精品在线播放| 91久久精品日日躁夜夜躁国产| 国产一区在线播放| 亚洲电影在线观看| 在线电影av不卡网址| 91久久在线观看| 国产日本欧美一区二区三区| 一区二区在线免费视频| 尤物yw午夜国产精品视频| 国外视频精品毛片| 欧美性高跟鞋xxxxhd| 亚洲人成网站999久久久综合| 91国语精品自产拍在线观看性色| 欧美中文在线观看国产| 亚洲中国色老太| 国产精品激情av电影在线观看| 日本欧美中文字幕| 国产精品久久久久久久7电影| 2024亚洲男人天堂| 欧美久久久精品| 日韩美女免费观看| 日韩男女性生活视频|