在數據庫的開發過程中,經常需要在數據庫中存儲一些備注信息,而這些備注信息的內容一般較大,格式多樣-如有可能是語音文件、視頻文件、圖片文件、文本文件等,怎樣在PB中實現這些格式不同的備注文件的存取及預覽,一直是PB開發人員比較關心的一個問題,本文系統的介紹了三種存取備注二進制信息的方法。
對備注二進制信息的存儲可以采用以下三種方式;
方法一:文件保存在固定的路徑下,數據庫中存取文件路徑和名稱
方法二:數據庫中用blob類型或者varbinary類型字段存儲備注文件
方法三:在本地用OLE存儲結構存儲備注文件
1、OLE的基本概念
。牐燨LE是Object Linking Embedding(對象鏈結與嵌入)的縮寫,它可以使windows應用程序共享數據和程序。
2、OLE控件
在PB中OLE控件是一個OLE對象的包容器,可以使用服務器應用程序提供的功能和命令來編輯對象,也可以使用自動化OLE交互,在程序中激活對象和向服務器應用程序發送命令;在PB 的window畫板中的OLE控件允許用戶從多個應用程序嵌入和鏈結組件
2.1建立和設置OLE控件
從window畫板中選擇OLE控件插入window。
當建立一個OLE控件并且插入一個對象時,PB將激活服務器應用程序以允許對對象進行編輯和修改;在使OLE中的對象稱為非活動狀態后,可以使用控件屬性選項卡來設置控件的屬性。
2.2 激活修改window畫板中的OLE對象
在OLE控件的彈出菜單中選擇open可以激活畫板中OLE對象
使用服務器應用程序修改OLE對象
結束修改:使對象恢復為非活動狀態,只要單擊服務器應用對象之外的任何區域即可,也可以直接關閉服務器應用程序的窗口。
2.3 嵌入和鏈結OLE控件
可以將OLE對象嵌入或者鏈結到自己的應用程序中。嵌入對象的數據放在應用程序中,在開發過程中這些數據放在應用程序的PBl庫中,當生成應用后,這些數據將存放在exe或PBd文件中,雖然在程序的運行過程中可以修改,但修改的數據不會保存;鏈結對象的數據存放在PB應用程序以外,當鏈結一個對象時,在PB應用程序中不存放數據文件,而是存放引用數據的指針, 使用鏈結的數據,對數據的管理和保存都由服務器應用程序負責。這樣可以用服務器應用程序修改處理數據,處理后的數據可以保存回原文件中。鏈結方式應用于需要多個應用程序共享的數據文件,任何一個應用程序修改了數據文件,都將影響到所有鏈結該文件的應用程序。
2.4 OLE控件的激活方式
OLE控件的激活方式有offsite和in-place兩種激活方式,offsite激活方式是指在PB應用程序的界面以外單獨打開OLE對象,in-place激活方式是指PB應用程序的界面的原位置打開OLE對象。在數據窗口中的dbOLE默認的是offsite激活方式,而window中的OLE默認的激活方式是in-place。
在PB應用程序中可以用命令
OLE_control.active(offsite) 或者OLE_control.active(in-place)設置OLE對象的以何種方式打開。
2.5 設置和插入OLE對象
在程序運行時可以用函數:
OLE_control.insertfile(soucefile) 插入對象
OLE_control.objectdata = blobvar 設置對象
3、OLE存儲
3.1 OLE存儲(OLEstorage)的概念
OLE存儲(OLEstorage)是OLE數據的一個倉庫,存儲就象磁盤上的目錄結構,它可以是一個OLE對象,也可以包含在OLE對象中,每個對象都包含在OLE存儲或者存儲內的子存儲內。保存在OLE存儲中數據稱作OLE流(OLE stream),OLE流同OLE對象的關系就象文件同目錄的關系。含有OLE對象的存儲或子存儲可以看做是屬于特殊服務器的信息,在該層次之下的各部分都可以被相應的服務器程序操作。OLE存儲對象是類用戶對象,可以說明相應類型的變量,建立與之相應的實例和打開存儲等,在使用完存儲后需要關閉存儲、釋放分配的內存。
3.2 OLE存儲的打開和保存
OLE存儲可以用open函數打開,open函數的格式為:
Olecontrol.Open(OLEsourcefile),
此函數在OLEsourcefile不存在時,自動創建該文件,所以創建OLE文件也用該函數; OLE存儲可以用save函數保存,save函數的格式為:
OLEcontrol.save() // 保存OLE控件
OLEstorage.save() //保存OLE存儲
文章來源于領測軟件測試網 http://www.kjueaiud.com/