當前位置:編程學習大全網 - 源碼下載 - 用OLE訪問PB中的blob數據(ⅲ)

用OLE訪問PB中的blob數據(ⅲ)

源程序建立

)首先,在數據庫中建立壹個具有以下結構的表blobsave。

字段名?數據類型備註

id char()?主鍵索引

s_path char()

pic?二進制( )

)建立PBl庫blob在PB中保存PBl

)在PBl庫中建立並應用blob save blob save PBl。

在應用程序的open事件中設置壹個數據庫連接程序(這個程序中使用odbc連接數據庫。讀者可以根據自己建立的數據庫不同,選擇不同的連接方式。以下用於連接數據庫的代碼也已更改。至於不同數據庫的連接方法,請參考相關資料。本文就不詳細介紹了)

SQLCA DBMS = ODBC SQLCA auto commit = False SQLCA db parm = connect string = DSN = blob connect open(w _ main)

單擊的命令按鈕cb_path中的代碼格式如下:open(w_path)。

單擊的命令按鈕cb_dbblob中的代碼格式如下:open(w_dbblob)。

單擊的命令按鈕cb_OLEblob中的代碼格式如下:open(w_OLEblob)。

)建立壹個數據窗口dw_blobsave。

根據以上建立編號?數據窗口dw_blobsave是通過lob列的方法建立的,如圖。

其中添加刪除保存取消檢索等分別是數據窗口dw_blobsave的追加行刪除行更新檢索的動作按鈕。

首先,創建實例變量OLEstorage stor。

然後構建如圖所示的窗口w_path,其中數據窗口控件dw_的rowfocuschanged中的代碼如下。

long row _ num row _ num = dw _ getrow()if row _ num & gt;然後ole _ insert file(dw _ object s _ path[row _ num])end if

其中,數據窗口dw_的buttonclicked中的代碼如下

如果dwo name = CB select那麽long row _ num row _ num = dw _ getrow()string文件路徑文件名getfileopenname(請選擇註意文件文件路徑文件名)dw _ objects _ path [row _ num] =文件路徑ole _ insert file(文件路徑)end if。

保存窗口w_path

)構建窗口w_dbblob。

打開w_path,保存為w_dbblob,將rowfocuschanged數據窗口dw_中的代碼修改如下。

blob文本long row _ num row _ num = dw _ getrow()if row _ num & gt;然後string id id = dw _ object id[row _ num]sqlca automit = true select blob pic into:text from blob save where id =:id ole _ object data = text sqlca automit = false end if

點擊按鈕改變數據窗口dw_中的代碼如下

long row _ num if dwo name = CB select then row _ num = dw _ getrow()string file path filename getfile openname dw _ objects _ path[ro]W _ num]= file path ole _ insert file(file path)end if if dwo name = CB save then string id sqlca automit = true blob text text = ole _ object data dw _ update()MIT ro W _ num = dw _ getrow()id = dw _ object id[row _ num] updateblob blob存儲集pic =: text其中id =:id MIT sqlca automit = false dw _ retrieve()dw _ scroll row(row _ num)end if存儲窗口w_dbblob。

)構建窗口w_OLEblob。

打開w_path,保存為w_OLEblob。在窗口w_OLEblob的open事件中編寫以下代碼。

stor = create ole storage stor Open(c:\ p ole)//打開或創建壹個ole文件,並在窗口w_OLEblob的close事件中編寫以下代碼:destroy stor。

將數據窗口dw_的rowfocuschanged中的代碼更改如下

blob文本long row _ num row _ num = dw _ getrow()if row _ num & gt;那麽string id id = dw _ object id[row _ num]ole _ open(stor w+id)end if

點擊按鈕改變數據窗口dw_中的代碼如下

long row _ num if dwo name = CB select then row _ num = dw _ getrow()string file path filename getfile openname dw _ objects _ path[ro]w _ num]= file path ole _ insert file(file path)end if dwo name = CB save then string id row _ num = dw _ getrow()id = dw _ object id[row _ num]ole _ save as(stor w+id)stor save()end if

保存窗口w_OLEblob並運行應用程序。

三種方法的優缺點

方法1:文件存儲在數據庫中的固定路徑。訪問文件路徑和名稱可以節省數據空間,避免數據庫過度擴展。但是,notes文件必須在某個目錄下,且同壹目錄下的文件不能重命名,這給文件管理帶來了壹定的困難。另外,在OLE控件中瀏覽和顯示notes文件時,由於每次都調用服務器程序,所以速度較慢。

第二種方法是將memo文件存儲在帶有blob類型或varbinary類型字段的數據庫中。當文件存儲在數據庫中時,硬盤上的原始臨時文件可以被刪除。不需要復雜的二進制文件管理,數據庫可以存儲在網絡服務器上,數據共享非常方便。

Lishi Xinzhi/Article/program/SQL/201311/16227

  • 上一篇:如何在壹個頁面上讓多個jQuery
  • 下一篇:linux網卡開啟混雜模式linux網卡開啟
  • copyright 2024編程學習大全網