線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1743
推到 Plurk!
推到 Facebook!

TQRDBImage無法印JPEG型態的資料嗎?

答題得分者是:sos_admin
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-19 16:22:54 IP:211.72.xxx.xxx 未訂閱
Hi: MSSQL 2000 ADO Delphi 7 (QuickRep) 請問TQRDBImage元件是否只能讀取BMP型態資料? 因為出現了'Bitmap image is not valid'訊息. 但實際上資料庫中(IMAGE欄位)存的是JPEG型態的圖形(圖檔不會超過100K). 該如果解決呢? 是否在client端讀取資料後先存到Stream(或ClipBoard...) 再改由TQRImage元件顯示? 或有其他方法嗎, 可否提供給我參考? 謝謝! 發表人 - star 於 2003/08/19 16:25:18
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-19 16:28:52 IP:202.39.xxx.xxx 未訂閱
參考這篇: http://www.delphiboy.com/cgi-bin/wangyoulaigao/datacontent.php?no=164    或使用 danny 大大的元件:  http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19322    --- 歡迎光臨 KTop 研究院--<-<-<@ 發表人 - hagar 於 2003/08/19 16:30:33
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-19 17:02:40 IP:211.72.xxx.xxx 未訂閱
引言: 參考這篇: http://www.delphiboy.com/cgi-bin/wangyoulaigao/datacontent.php?no=164 這篇要將jpg轉成bmp存入資料庫,好像較不符我的須求, 我是在印表時用TQRDBImage元件才出現問題?? 在螢幕顯示時沒問題(因為我用的是IWDBImage) 或使用 danny 大大的元件: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19322 因為商業用途的關係, 不好用無source code(或無版權)的外加元件
我按前人提過的方法測試, 但有error, 請各位前輩指正: var Stream1 : TBlobStream; jpeg:TJPEGImage; begin Steam1 := TBlobStream.Create(ADOQuery1GRAPHIC, bmread); try jpeg.LoadFromStream(Stream1); QRImage1.Picture.Assign(jpeg); finally jpg.Free; Stream1.Free; end; end; 在Create Stream時會出現: Invalid class typecast. 題外話: 事實上, 發問問題前, 我大部份會先Search之前的問題, 是否有可參考的資料. 除非我老花眼,不小心漏掉了, 或找不到我想要的答案, 或測不出來, 只好重新整理我的問題再發問. 希望不會浪費各位的時間才好...
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-19 17:22:39 IP:202.39.xxx.xxx 未訂閱
Steam1 := TBlobStream.Create(ADOQuery1GRAPHIC, bmread); 改成 Steam1 := TBlobStream.Create(TBlobField(ADOQuery1GRAPHIC), bmread);    --- 歡迎光臨 KTop 研究院--<-<-<@
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-19 23:32:19 IP:61.66.xxx.xxx 未訂閱
不行, 還是一樣的錯誤訊息!    而且我發現光是 SELECT GRAPHIC FROM TABLE1 WHERE TTNO = '001' 只有取一筆記錄就已經很久了, 效率實在太慢了. 實在很不願意將圖片存入資料庫, 太太太太太慢了.
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-20 07:26:51 IP:61.155.xxx.xxx 未訂閱
如下:(DBImage1: TQRImage;)    procedure Tprint_frm.QuickRep1StartPage(Sender: TCustomQuickRep); var Stream:TMemoryStream; jpgstream: TJpegImage ; begin Stream:=TMemoryStream.Create ; jpgstream:= TJPEGImage.Create; TBlobField(Form1.AdoQuery2.FieldByName('tupian') as TBlobField).SaveToStream(Stream); Stream.Position := 0; jpgstream.LoadFromStream(Stream); DBImage1.Picture.Assign(jpgstream); Stream.Free; jpgstream.free; end; 您可以用上面的方法试验一下,我就是这样做的可以成功!
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-20 13:33:43 IP:211.72.xxx.xxx 未訂閱
引言: 如下:(DBImage1: TQRImage;) procedure Tprint_frm.QuickRep1StartPage(Sender: TCustomQuickRep); var Stream:TMemoryStream; jpgstream: TJpegImage ; begin Stream:=TMemoryStream.Create ; jpgstream:= TJPEGImage.Create; TBlobField(Form1.AdoQuery2.FieldByName('tupian') as TBlobField).SaveToStream(Stream); Stream.Position := 0; jpgstream.LoadFromStream(Stream); DBImage1.Picture.Assign(jpgstream); Stream.Free; jpgstream.free; end; 您可以用上面的方法试验一下,我就是这样做的可以成功!
您的方法我之前試過了... 這樣是沒有錯誤出現, 但是QRDBImage1卻是空白的, 不知那裡錯了? 還有為何是寫在OnStarPage中? 而不是寫在DetailBand.BefortPrint呢?
star
初階會員


發表:37
回覆:93
積分:36
註冊:2002-07-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-20 15:24:00 IP:211.72.xxx.xxx 未訂閱
謝謝, 可以了 1.用TQRImage元件, 而不用TQRDBImage 2.TQRImage.Strech設為True 3.sos_admin所提供的程式碼寫在DetailBand.BeforeBand中 如此即可列印了. 再請問一個問題: 如何清除TQRImage的圖形? 我想在BeforePrint前先清除, 但找不到類似clear的功能! 目前我暫時用Enabled的方式來解決! 發表人 - star 於 2003/08/20 15:28:51
Winifred
初階會員


發表:3
回覆:34
積分:47
註冊:2002-07-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-20 17:04:05 IP:61.221.xxx.xxx 未訂閱
DBImage1.Picture.Bitmap := Nil; 發表人 - winifred 於 2003/08/20 17:05:43
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-08-20 17:15:34 IP:210.243.xxx.xxx 未訂閱
唷唷唷 透過這題討論小弟也跟著學到好多唷... 感謝大家的共襄盛舉 There is a raising fire in my heart tonight,growing higher and higher in my soul I want to ride on the silver dove far into the night,till I make you take me on your mighty wing,take me on your mighty wing to cross the sky
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-08-20 17:56:39 IP:61.155.xxx.xxx 未訂閱
如何清除TQRImage的圖形? DBImage1.Picture.Graphic:=nil;
系統時間:2024-05-02 13:25:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!