數據庫工程師:在PB中用OLE存取blob類型數據(三)
6、源程序建立
1)首先在數據庫中建立如下結搆的表blobsave:
字段名稱 數據類型 備注
id char(4) primairy key index
s_path char(50)
pic binary (50)
2)在PB建立PBl庫blobsave.PBl
3)在PBl庫blobsave.PBl中建立應用blobsave
在應用的open事件中設置數據庫連接程序(本程序中採用的是odbc方式連接數據庫,讀者可根據自己所建立的數據庫的不同選用不同的連接方式,以下連接數據庫的代碼也有所改動,至於連接不同的數據庫的方法,請蓡考有關資料,本文不做詳細介紹):
SQLCA.DBMS ="ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm ="Connectstring="DSN=blob""
connect;
open(w_main)
其中命令按鈕cb_path的clicked中的代碼格式如下:open(w_path)
其中命令按鈕cb_dbblob的clicked中的代碼格式如下:open(w_dbblob)
其中命令按鈕cb_OLEblob的clicked中的代碼格式如下:open(w_OLEblob)
4) 建立數據窗口dw_blobsave
按照上文中建立數?荽翺詰腷lob列的方法建立數據窗口dw_blobsave如圖所示:
其中:add,del,save,cancel,,retrieve等分別爲數據窗口dw_blobsave的append row,delete row,update,retrieve動作按鈕。
首先創建實例變量 OLEstorage stor1
然後如圖建立窗口w_path,其中數據窗口控件dw_1的rowfocuschanged中的代碼如下:
long row_num
row_num=dw_1.getrow()
if row_num >0 then
ole_1.insertfile(dw_1.object.s_path[row_num])
end if
其中數據窗口dw_1的buttonclicked中的代碼如下:
if dwo.name="cbselect" then
long row_num
row_num=dw_1.getrow()
string filepath,filename
getfileopenname("請選擇備注文件",filepath,filename)
dw_1.object.s_path[row_num]=filepath
ole_1.insertfile(filepath)
end if
保存窗口w_path
6)建立窗口w_dbblob
打開w_path,把其另存爲w_dbblob,改變數據窗口dw_1的rowfocuschanged中的代碼如下:
blob text1
long row_num
row_num=dw_1.getrow()
if row_num>0 then
string id
id = dw_1.object.id[row_num]
sqlca.autocommit=true
selectblob pic into :text1 from blobsave where id = :id;
ole_1.objectdata=text1
sqlca.autocommit=false
end if
0條評論