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
改变数据窗口dw_1的buttonclicked中的代码如下:
long row_num
if dwo.name="cbselect" then
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
if dwo.name="cbsave" then
string id
sqlca.autocommit = true
blob text1
text1 = ole_1.objectdata
dw_1.update()
commit;
row_num=dw_1.getrow()
id=dw_1.object.id[row_num]
updateblob blobsave
set pic = :text1
where id = :id ;
commit;
sqlca.autocommit = FALSE
dw_1.retrieve()
dw_1.scrolltorow(row_num)
end if
保存窗口w_dbblob
7)建立窗口w_OLEblob
打开w_path,把其另存为w_OLEblob,在窗口w_OLEblob的open事件中写入以下代码:
stor1 = create olestorage
stor1.open("c:\p1.ole") //打开或创建ole文件
在窗口w_OLEblob的close事件中写入以下代码: