處理blob類型數據
對於大二進制數據在PB Script中是用blob數據類型表示並加以處理標准SQL語句中的selectinsert和update語句無法直接查詢blob類型的數據在PB中操作blob類型的數據只能用專用的語句從數據庫中查詢blob類型的數據的命令是
selectblob restofselectstatement {using transactionobject}
更新數據庫中blob類型數據的格式是
updateblob tablename
set blobcolumn = blobvarible
restofupatestatement {using transctionobject}
如連接的數據庫是sybase或者Sql則selectblob和updateblob語句要求數據庫的自動提交方式為true所以在在每次調用selectblob和updateblob語句以前必須用命令 Sqlcaautocommit=true把數據庫的自動提交方式設置為true在updateblob語句的結束後再用命令Sqlcaautocommit = false把自動提交方式設置為false 索數據的參數(如flag)然後在可修改列的Protect後的框中輸入(user_name是該DataWindow中的一列代表輸入者的名稱)
數據窗口的blob列
數據窗口blob列的功能
在PB 的datawindow畫板中DBOLE控件允許用戶利用這個控件浏覽和操作數據庫中的大二進制數據即通過DBOLE控件可以作如下操作
往數據庫中存儲大二進制數據如excel工作表word文檔視頻文件圖片文件等各種格式的文件
從數據庫中檢索數據到datawindow對象
使用OLE服務器程序察看修改數據
將修改後的數據保存回數據庫
在數據窗口中添加blob列的的步驟
)選擇具有二進制字段的數據表作為數據源建立一新的數據窗口(該窗口可以至少需要包含非數據庫表的標識列)
)選擇insert controlOLE database blob 菜單在數據窗口的detail節中要插入blob列的位置單擊鼠標這時將顯示如圖所示的對話框
下面解釋這些屬性的具體含義
)client class 客戶類名默認為datawindow
)client name客戶名默認為untitled
)table: 選擇含有blob列的數據庫表所選表的字段將出現在右側的large binary/text column列表框中
)large binary/text column選擇一個blob類型的字段列
)key clause檢索和更新blob數據的關鍵字表達式其中使用帶冒號前綴的變量指出是數據窗口對象的列如 表達式 id=:idid是數據庫表中的列變量指出數據窗口對象的列
)filetemplate 如果需要OLE應用服務器每次打開相同的文件則在filetemplate框中輸入文件名
)OLE class 如果不需要OLE應用服務器每次打開相同的文件則在OLE class框中選擇一個OLE類如Pbrush
)Client name expression顯示在OLE服務器應用程序窗口標題的文字可以輸入為對應記錄的id號是+id
單擊ok按鈕關閉對話框將dbole列添加到適當的位置保存數據窗口
預覽則可以對數據庫中的blob數據進行存取但是在新建的記錄中只能存取OLE class框中選擇的一種格式的blob數據不能存儲多種格式的數據但如果數據庫中存有多種格式的數據可以預覽各種格式的數據
From:http://tw.wingwit.com/Article/program/SQL/201311/16229.html