前言
在數(shù)據(jù)庫的開發(fā)過程中,經(jīng)常需要在數(shù)據(jù)庫中存儲一些備注信息,而這些備注信息的內(nèi)容一般較大,格式多樣-如有可能是語音文件、視頻文件、圖片文件、文本文件等,怎樣在PB中實(shí)現(xiàn)這些格式不同的備注文件的存取及預(yù)覽,一直是PB開發(fā)人員比較關(guān)心的一個(gè)問題,本文系統(tǒng)的介紹了三種存取備注二進(jìn)制信息的方法。
對備注二進(jìn)制信息的存儲可以采用以下三種方式;
方法一:文件保存在固定的路徑下,數(shù)據(jù)庫中存取文件路徑和名稱
方法二:數(shù)據(jù)庫中用blob類型或者varbinary類型字段存儲備注文件
方法三:在本地用OLE存儲結(jié)構(gòu)存儲備注文件
1、OLE的基本概念
OLE是Object Linking Embedding(對象鏈結(jié)與嵌入)的縮寫,它可以使windows應(yīng)用程序共享數(shù)據(jù)和程序。
2、OLE控件
在PB中OLE控件是一個(gè)OLE對象的包容器,可以使用服務(wù)器應(yīng)用程序提供的功能和命令來編輯對象,也可以使用自動(dòng)化OLE交互,在程序中激活對象和向服務(wù)器應(yīng)用程序發(fā)送命令;在PB 的window畫板中的OLE控件允許用戶從多個(gè)應(yīng)用程序嵌入和鏈結(jié)組件
2.1建立和設(shè)置OLE控件
從window畫板中選擇OLE控件插入window。
當(dāng)建立一個(gè)OLE控件并且插入一個(gè)對象時(shí),PB將激活服務(wù)器應(yīng)用程序以允許對對象進(jìn)行編輯和修改;在使OLE中的對象稱為非活動(dòng)狀態(tài)后,可以使用控件屬性選項(xiàng)卡來設(shè)置控件的屬性。
2.2 激活修改window畫板中的OLE對象
在OLE控件的彈出菜單中選擇open可以激活畫板中OLE對象
使用服務(wù)器應(yīng)用程序修改OLE對象
結(jié)束修改:使對象恢復(fù)為非活動(dòng)狀態(tài),只要單擊服務(wù)器應(yīng)用對象之外的任何區(qū)域即可,也可以直接關(guān)閉服務(wù)器應(yīng)用程序的窗口。
2.3 嵌入和鏈結(jié)OLE控件
可以將OLE對象嵌入或者鏈結(jié)到自己的應(yīng)用程序中。嵌入對象的數(shù)據(jù)放在應(yīng)用程序中,在開發(fā)過程中這些數(shù)據(jù)放在應(yīng)用程序的PBl庫中,當(dāng)生成應(yīng)用后,這些數(shù)據(jù)將存放在exe或PBd文件中,雖然在程序的運(yùn)行過程中可以修改,但修改的數(shù)據(jù)不會(huì)保存;鏈結(jié)對象的數(shù)據(jù)存放在PB應(yīng)用程序以外,當(dāng)鏈結(jié)一個(gè)對象時(shí),在PB應(yīng)用程序中不存放數(shù)據(jù)文件,而是存放引用數(shù)據(jù)的指針, 使用鏈結(jié)的數(shù)據(jù),對數(shù)據(jù)的管理和保存都由服務(wù)器應(yīng)用程序負(fù)責(zé)。這樣可以用服務(wù)器應(yīng)用程序修改處理數(shù)據(jù),處理后的數(shù)據(jù)可以保存回原文件中。鏈結(jié)方式應(yīng)用于需要多個(gè)應(yīng)用程序共享的數(shù)據(jù)文件,任何一個(gè)應(yīng)用程序修改了數(shù)據(jù)文件,都將影響到所有鏈結(jié)該文件的應(yīng)用程序。
2.4 OLE控件的激活方式
OLE控件的激活方式有offsite和in-place兩種激活方式,offsite激活方式是指在PB應(yīng)用程序的界面以外單獨(dú)打開OLE對象,in-place激活方式是指PB應(yīng)用程序的界面的原位置打開OLE對象。在數(shù)據(jù)窗口中的dbOLE默認(rèn)的是offsite激活方式,而window中的OLE默認(rèn)的激活方式是in-place。
在PB應(yīng)用程序中可以用命令
OLE_control.active(offsite) 或者OLE_control.active(in-place)設(shè)置OLE對象的以何種方式打開。
2.5 設(shè)置和插入OLE對象
在程序運(yùn)行時(shí)可以用函數(shù):
OLE_control.insertfile(soucefile) 插入對象
OLE_control.objectdata = blobvar 設(shè)置對象
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |