建立ActiveX 動態鏈接庫
使用 VB 5.0,我們要開發一個ActiveX 動態鏈接庫。這個動態鏈接庫讓我們能夠連接到SQL數據庫,提取圖片數據,並把它們保存成文件,放在目錄裡。要建立動態鏈接庫,請在打開VB程序之後執行下列步驟:首先:在文件(File)菜單裡,選擇新建項目(New Project)。接著,在新建立項目對話框裡,雙擊ActiveX DLL 圖標。VB自動地向項目裡增加一個類,叫做Class1。然後,在屬性容器裡,雙擊名稱(Name)屬性,把它改成clsImageLoader,保持instancing 屬性為缺省值MultiUse不動。最後,在項目(Project)菜單裡,選擇Project1 屬性,打開項目屬性對話框。選擇通用(General)選項卡,把項目名稱改為ImageLoader。其它字段可以不管,保持原樣。單擊確定(OK)完成對ImageLoader 這個工程的設置。
在類裡,寫入了5個Let屬性,1個Get屬性(只讀)和兩個方法。Let屬性傳遞動態鏈接庫需要的信息,Get屬性提供動態鏈接庫生成的圖片文件的位置。兩個方法用來打開到數據庫的連接,以生成圖片文件。表 A 總結了這些屬性和方法的作用。當然,根據項目的需要,可以在類裡加入更復雜的功能。
表A: 在ActiveX動態鏈接庫裡的屬性和方法
屬性/方法 作用
DbName 打開數據庫連接所需的數據庫名稱。
TableName,
NameOfImageColumn, 打開記錄集所需要的信息。
NameOfImageTypeColumn,
NameOfImageIdColumn
ImageFile (只讀) 把圖片文件的名稱和位置返回給容器。
OpenConnection (方法) 打開數據庫連接。
CreateTemplateImageFile (方法) 從數據庫提取圖片數據,並把它保存到目錄裡。
在類裡還有其它的私有子程序,用來初始化類、終止類、打開記錄集、建立圖片文件,以及處理可能的錯誤。
注意微軟活動數據對象ADO1.5(現在為2.0)被用來連接SQL數據庫。也可以使用其它數據訪問方法,比如遠程數據對象RDO。在這個項目裡,必須使用ADO。操作方法是,單擊項目(Project)菜單,然後選擇引用(References)菜單 項。在引用對話框裡,選中微軟ActiveX Data Objects 1.5 庫,然後單擊確定(OK)。
在列表 B裡,列出了類ImageLoader 完整源代碼。類裡使用的變量定義都在代碼內部給出,還有其它注釋,幫助理解上下文。
列表 B:類 ImageLoader 的完整源代碼
Private mAdoConn As New ADODB.Connection
Private mAdoRst As New ADODB.Recordset
Private mstrDbName As String
Private mstrTableName As String
Private mstrImageColumnName As String '圖片字的名稱。
Private mstrImageTypeColumnName As String '圖片類型字段的名稱。
Private mstrImageIdColumnName As String '圖片ID字段的名稱。
Private mstrFileName() As String '數組,裡面包含文件名和路徑。
Private mlngImageId() As Long '數組,裡面包含圖片ID
Private mlngNumberOfFiles As Long
Const BLOCKSIZE = 102400
Public Property Let DbName(ByVal strVal As String)
mstrDbName = strVal
End Property
Public Property Let