4、處理blob類型數(shù)據(jù)
對(duì)于大二進(jìn)制數(shù)據(jù),在PB Script中是用blob數(shù)據(jù)類型表示并加以處理。標(biāo)準(zhǔn)SQL語句中的select、insert和update語句無法直接查詢blob類型的數(shù)據(jù),在PB中操作blob類型的數(shù)據(jù)只能用專用的語句,從數(shù)據(jù)庫中查詢blob類型的數(shù)據(jù)的命令是:
selectblob restofselectstatement {using transactionobject};
更新數(shù)據(jù)庫中blob類型數(shù)據(jù)的格式是:
updateblob tablename
set blobcolumn = blobvarible
restofupatestatement {using transctionobject};
如連接的數(shù)據(jù)庫是sybase或者Sql,則selectblob和updateblob語句要求數(shù)據(jù)庫的自動(dòng)提交方式為true,所以在在每次調(diào)用selectblob和updateblob語句以前必須用命令 Sqlca.autocommit=true,把數(shù)據(jù)庫的自動(dòng)提交方式設(shè)置為true,在updateblob語句的結(jié)束后,再用命令Sqlca.autocommit = false,把自動(dòng)提交方式設(shè)置為false。 索數(shù)據(jù)的參數(shù)(如flag),然后在可修改列的Protect后的框中輸入(user_name是該DataWindow中的一列,代表輸入者的名稱):
5、數(shù)據(jù)窗口的blob列
5.1 數(shù)據(jù)窗口blob列的功能
在PB 的datawindow畫板中DBOLE控件允許用戶利用這個(gè)控件瀏覽和操作數(shù)據(jù)庫中的大二進(jìn)制數(shù)據(jù),即通過DBOLE控件可以作如下操作:
往數(shù)據(jù)庫中存儲(chǔ)大二進(jìn)制數(shù)據(jù),如:excel工作表、word文檔、視頻文件、圖片文件等各種格式的文件;
從數(shù)據(jù)庫中檢索數(shù)據(jù)到datawindow對(duì)象;
使用OLE服務(wù)器程序察看修改數(shù)據(jù);
將修改后的數(shù)據(jù)保存回?cái)?shù)據(jù)庫;
5.2 在數(shù)據(jù)窗口中添加blob列的的步驟
1)選擇具有二進(jìn)制字段的數(shù)據(jù)表作為數(shù)據(jù)源建立一新的數(shù)據(jù)窗口(該窗口可以至少需要包含非數(shù)據(jù)庫表的標(biāo)識(shí)列)
2)選擇insert -control-OLE database blob 菜單,在數(shù)據(jù)窗口的detail節(jié)中要插入blob列的位置單擊鼠標(biāo),這時(shí)將顯示如圖1所示的對(duì)話框
下面解釋這些屬性的具體含義
1)client class: 客戶類名,默認(rèn)為datawindow
2)client name:客戶名,默認(rèn)為untitled
3)table: 選擇含有blob列的數(shù)據(jù)庫表,所選表的字段將出現(xiàn)在右側(cè)的large binary/text column列表框中。
4)large binary/text column:選擇一個(gè)blob類型的字段列
5)key clause:檢索和更新blob數(shù)據(jù)的關(guān)鍵字表達(dá)式其中使用帶冒號(hào)前綴的變量指出是數(shù)據(jù)窗口對(duì)象的列,如 表達(dá)式 id=:id,id是數(shù)據(jù)庫表中的列,變量指出數(shù)據(jù)窗口對(duì)象的列
6)filetemplate :如果需要OLE應(yīng)用服務(wù)器每次打開相同的文件,則在filetemplate框中輸入文件名。
7)OLE class :如果不需要OLE應(yīng)用服務(wù)器每次打開相同的文件,則在OLE class框中選擇一個(gè)OLE類,如Pbrush。
8)Client name expression:顯示在OLE服務(wù)器應(yīng)用程序窗口標(biāo)題的文字,可以輸入為:"對(duì)應(yīng)記錄的id號(hào)是"+id
單擊ok按鈕關(guān)閉對(duì)話框,將dbole列添加到適當(dāng)?shù)奈恢,保存?shù)據(jù)窗口。
預(yù)覽則可以對(duì)數(shù)據(jù)庫中的blob數(shù)據(jù)進(jìn)行存取,但是在新建的記錄中只能存取OLE class框中選擇的一種格式的blob數(shù)據(jù),不能存儲(chǔ)多種格式的數(shù)據(jù);但如果數(shù)據(jù)庫中存有多種格式的數(shù)據(jù),可以預(yù)覽各種格式的數(shù)據(jù)。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |