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