各位大俠!十萬火急!
我有一個名為photo,欄位如下:student_id,name,photo_id(照片序號,自動累加),photo(Bolb),想要在資料視窗物件stu_photo中添加photo欄位,并在資料視窗dw_1中添加、顯示照片,如何實作,300分求解詳細代碼!
uj5u.com熱心網友回復:
添加容易,顯示相對麻煩uj5u.com熱心網友回復:
需要將照片取出,保存到本地臨時檔案,然后再顯示,在datawindow中加入一個STRING型別的偽欄位,這個欄位的內容就是臨時檔案的路徑,然后將 datawindow 中 display as picture 選中就可以了uj5u.com熱心網友回復:
資料視窗沒有blob型別,不能直接存取,照二樓的方法做吧uj5u.com熱心網友回復:
不懂,請大家幫幫忙,弄個詳細代碼啊!uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
我的資源里有關于圖的保存顯示,請下載參考uj5u.com熱心網友回復:
http://download.csdn.net/source/476206http://download.csdn.net/source/476206
uj5u.com熱心網友回復:
blob ib_blobselectblob photo into :ib_blob from 表 where 條件
然后把ib_blob保存本地的圖片,假設圖片名為1.bmp
dw_1.object.p_1.filename=1.bmp
uj5u.com熱心網友回復:
用資料窗里的database ole object即可uj5u.com熱心網友回復:
老人與海 已經回答的很詳細了,關鍵是要做一下,別以為多難,不動手。多試試,沒問題的uj5u.com熱心網友回復:
這種做法是最聰明最快的
uj5u.com熱心網友回復:
基本就是2樓做法,我做的時候順便取個圖片md5值保存起來,生成臨時圖片時就用md5值命名,如果臨時檔案有同名的就不再生成,應用退出前把臨時檔案都洗掉掉uj5u.com熱心網友回復:
樓上是想把照片加密呢,還是想碰同名檔案,不生成哦!
uj5u.com熱心網友回復:
從資料庫讀取到檔案SelectBlob fphoto Into :lbb_photo From t_hrempl+條件
If IsNull(lbb_photo) Then Return 1
If Mod(Len(lbb_photo),32765) <> 0 Then
li_multiple = Round(Len(lbb_photo)/32765,0) + 1
Else
li_multiple = Len(lbb_photo)/32765
End If
li_filehandle = FileOpen(gs_sysrunpath+"\bmp\F#&@bmp.@@@",streammode!,Write!,lockwrite!,Replace!)
If li_filehandle = -1 Then
Return -1
End If
//存入臨時檔案
For i = 1 To li_multiple
lbb_photoread = BlobMid (lbb_photo,(i - 1)*32765 + 1 ,32765 )
If FileWrite(li_filehandle,lbb_photoread) = -1 Then
Return -1
End If
Next
FileClose(li_filehandle)
If dw_2.Object.p_photo.Filename <> gs_sysrunpath+"\bmp\F#&@bmp.@@@" Then
dw_2.Object.p_photo.Filename = gs_sysrunpath+"\bmp\F#&@bmp.@@@"
End If
Return 0
保存更新
ls_pfilename = ''
lbb_photo = Blob('')
ls_pfilename = tab_1.tabpage_1.dw_2.Object.p_photo.Filename
If ls_pfilename = gs_sysrunpath+"\bmp\F#&@bmp.@@@"
Then Return 1
ll_filelength = FileLength(ls_pfilename)
li_filehandle = FileOpen(ls_pfilename,streammode!,Read!,lockwrite!,Replace!)
If li_filehandle = -1 Then
Return -1
End If
If ls_pfilename = '' Then
Return 0
End If
li_multiple = Round(ll_filelength/32765,0) + 1
For i = 1 To li_multiple
If FileRead(li_filehandle,lbb_photoread) = -1 Then Return -1
lbb_photo = lbb_photo + lbb_photoread
Next
FileClose(li_filehandle)
If IsNull(lbb_photo) Then
Return -1
End If
lb_autocommit = sqlca.AutoCommit
sqlca.AutoCommit = True;
UpdateBlob t_hrempl set fphoto = :lbb_photo ;
If sqlca.SQLCode = 0 Then
COMMIT Using sqlca;
sqlca.AutoCommit = lb_autocommit;
Return 1
Else
ROLLBACK Using sqlca;
Return -1
End If
uj5u.com熱心網友回復:
要么就是別把圖片放在DW中在視窗另建一個PICTURE控制元件,PICTURE控制元件可以直接使用BLOB變數
在資料視窗的單擊(或雙擊)事件里寫代碼,獲取ID后,檢索BLOG資料,顯示在PICTURE控制元件中
uj5u.com熱心網友回復:
要么就是別把圖片放在DW中uj5u.com熱心網友回復:
用這個就可以解決........
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/106254.html
標籤:腳本語言
