熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

在PB中用OLE存取blob類型數據(一)

2013-11-13 12:36:34  來源: SQL語言 

  前言

  在數據庫的開發過程中經常需要在數據庫中存儲一些備注信息而這些備注信息的內容一般較大格式多樣如有可能是語音文件視頻文件圖片文件文本文件等怎樣在PB中實現這些格式不同的備注文件的存取及預覽一直是PB開發人員比較關心的一個問題本文系統的介紹了三種存取備注二進制信息的方法

  對備注二進制信息的存儲可以采用以下三種方式

  方法一文件保存在固定的路徑下數據庫中存取文件路徑和名稱

  方法二數據庫中用blob類型或者varbinary類型字段存儲備注文件

  方法三在本地用OLE存儲結構存儲備注文件

  OLE的基本概念

  OLE是Object Linking Embedding(對象鏈結與嵌入)的縮寫它可以使windows應用程序共享數據和程序

  OLE控件

  在PB中OLE控件是一個OLE對象的包容器可以使用服務器應用程序提供的功能和命令來編輯對象也可以使用自動化OLE交互在程序中激活對象和向服務器應用程序發送命令在PB 的window畫板中的OLE控件允許用戶從多個應用程序嵌入和鏈結組件

  建立和設置OLE控件

  從window畫板中選擇OLE控件插入window

  當建立一個OLE控件並且插入一個對象時PB將激活服務器應用程序以允許對對象進行編輯和修改在使OLE中的對象稱為非活動狀態後可以使用控件屬性選項卡來設置控件的屬性

   激活修改window畫板中的OLE對象

  在OLE控件的彈出菜單中選擇open可以激活畫板中OLE對象

  使用服務器應用程序修改OLE對象

  結束修改使對象恢復為非活動狀態只要單擊服務器應用對象之外的任何區域即可也可以直接關閉服務器應用程序的窗口

   嵌入和鏈結OLE控件

  可以將OLE對象嵌入或者鏈結到自己的應用程序中嵌入對象的數據放在應用程序中在開發過程中這些數據放在應用程序的PBl庫中當生成應用後這些數據將存放在exe或PBd文件中雖然在程序的運行過程中可以修改但修改的數據不會保存鏈結對象的數據存放在PB應用程序以外當鏈結一個對象時在PB應用程序中不存放數據文件而是存放引用數據的指針 使用鏈結的數據對數據的管理和保存都由服務器應用程序負責這樣可以用服務器應用程序修改處理數據處理後的數據可以保存回原文件中鏈結方式應用於需要多個應用程序共享的數據文件任何一個應用程序修改了數據文件都將影響到所有鏈結該文件的應用程序

   OLE控件的激活方式

  OLE控件的激活方式有offsite和inplace兩種激活方式offsite激活方式是指在PB應用程序的界面以外單獨打開OLE對象inplace激活方式是指PB應用程序的界面的原位置打開OLE對象在數據窗口中的dbOLE默認的是offsite激活方式而window中的OLE默認的激活方式是inplace

  在PB應用程序中可以用命令

  OLE_controlactive(offsite) 或者OLE_controlactive(inplace)設置OLE對象的以何種方式打開

   設置和插入OLE對象

  在程序運行時可以用函數

  OLE_controlinsertfile(soucefile) 插入對象

  OLE_controlobjectdata = blobvar 設置對象

  OLE存儲

   OLE存儲(OLEstorage)的概念

  OLE存儲(OLEstorage)是OLE數據的一個倉庫存儲就象磁盤上的目錄結構它可以是一個OLE對象也可以包含在OLE對象中每個對象都包含在OLE存儲或者存儲內的子存儲內保存在OLE存儲中數據稱作OLE流(OLE stream)OLE流同OLE對象的關系就象文件同目錄的關系含有OLE對象的存儲或子存儲可以看做是屬於特殊服務器的信息在該層次之下的各部分都可以被相應的服務器程序操作OLE存儲對象是類用戶對象可以說明相應類型的變量建立與之相應的實例和打開存儲等在使用完存儲後需要關閉存儲釋放分配的內存

   OLE存儲的打開和保存

  OLE存儲可以用open函數打開open函數的格式為

  OlecontrolOpen(OLEsourcefile)

  此函數在OLEsourcefile不存在時自動創建該文件所以創建OLE文件也用該函數 OLE存儲可以用save函數保存save函數的格式為

  OLEcontrolsave() // 保存OLE控件

  OLEstoragesave() //保存OLE存儲


From:http://tw.wingwit.com/Article/program/SQL/201311/16230.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.