999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Delphi自定義類在Word文檔數據庫中的應用

2013-08-11 07:13:00長江大學地球物理與石油資源學院湖北武漢430100
長江大學學報(自科版) 2013年28期
關鍵詞:數據庫

肖 希 (長江大學地球物理與石油資源學院,湖北 武漢430100)

劉 苗 (華工科技孝感產業園人力資源部,湖北 孝感432000)

隨著計算機信息技術的飛速發展和普及運用,加上政府、學校部門的大力宣傳推廣,無紙化辦公以其節能環保、跨地域、跨平臺的優勢越來越受到公眾的接受和青睞。而在辦公自動化的系統中,工作人員多是使用微軟公司的Word編寫通知策劃、總結分析等電子文檔。因此,方便用戶閱讀、提交個人材料,實現Word文檔的網絡共享、安全可靠是提高辦公部門工作效能的重要方式之一。而這些操作通過現在比較成熟的數據庫技術即可實現,在利用Delphi開發的人力資源管理信息系統中,將Word文檔以BLOB(Binary Large Object,二進制大對象)的形式存放在數據表的字段中,既可以避免C/S(客戶端/服務器)模式下文檔直接存放于磁盤中非法操作和壞道產生的不可逆錯誤[1],也可以提高文檔的存取速度。

下面,筆者通過對SQL Server 2000數據庫的操作封裝到開發者自定義的類中,先將文件流(FileStream)轉換為字符串 (String)存入文檔,讀取時再將字符串導出為文件流操作,并使用基于Delphi開發平臺提供的容器組件 (TOleContainer)載入文檔,達到高效管理Word文檔的目的。其中,著重介紹了Delphi自定義類Word文檔在數據庫 (人力資源管理信息系統)中實現存、取功能應用過程和方法。

1 基本原理

1.1 三層應用程序體系結構

越來越多的數據庫應用程序都采用多層結構,其中三層結構運用最為廣泛,即用戶界面層 (表示層)、業務層和數據連接層[2]。數據庫的操作邏輯處在中間層上,集中管理數據庫操作各類交互命令,從而使來自不同終端的客戶能夠使用同一個數據。針對這種情況,筆者將數據連接層和業務層封裝在自定義的類中,這樣編寫不僅能夠實現大量代碼的復用功能,也降低了應用程序在系統中的維護難度。

1.2 Delphi與自定義類

Object Pascal就是Delphi[3]實現面向對象的程序設計語言,具有可讀性好、容易編寫的特點,并提供了完整的編程機制支持面向對象程序設計,涵蓋了對象的封裝、繼承和多態等基本特性[4]。

Delphi自定義類就是程序員在Delphi中根據對象需求和特性自己創建的類,通常分為內建類(Type類名=class(父類))和完全自定義類 (Type類名=object(父類)),主要是在內存管理方式上的區別。由于完全自定義類在為構造和析構函數編寫代碼時需要為其分配、釋放內存,難免使用到指針結構這種較為復雜的編碼技術,因而程序員大多數情況下使用自定義類的父類Delphi內建類較為方便。筆者將自定義類封裝存放在自建的單元文件 (Unit)中,引用其他單元的類時,需要在接口 (interface)部分的uses后添加其他單元的名字或者在implementation之后使用uses語句添加亦可,并且需要在private和public中聲明不同級別權限的類成員。這種編碼方式極大的降低了代碼的維護難度,使代碼結構清晰易讀,也提高了代碼的執行速度。

1.3 TBlobStream (數據流)與TFilestream (文件流)的存取機制

BLOB的含義是巨大的不定的二進制或者字符型數據,是在數據庫中存儲文檔 (比如Word、PDF等)、圖片以及可執行文件數據的常用數據類型[5]。在MS SQL Server 2000數據庫中,通常以Image表示BLOB字段,但是在數據庫操作中并不能像其他的Char或者Int等字段直接讀、寫文件,而是需要在程序代碼中將需要存儲的文件與BLOB字符串流相互轉換存取。

Delphi集成開發環境提供了可基于TStream (流)技術來實現對數據庫中BLOB數據的操作[6],這些數據一般來自文件、數據庫、OLE對象等,TStream都提供了統一、簡潔的方法進行讀寫。

2 Word文檔數據庫存、取功能的設計與實現

人力資源管理信息系統是典型的管理信息系統 (Management Information System,MIS),涉及員工信息、考勤、工資等多個系統模塊。其中文檔維護模塊中的管理Word總結、策劃類型的文檔,對企劃活動、業務分析進行信息共享,有利于用戶單位的企業文化推廣和市場動態的調查研究。Word數據表中的數據類型也多種多樣,如變長字符數據 (varchar)、時間數據 (datetime)、二進制數據 (image)等。由于Word文檔內容的特殊性,需要經過數據流轉換才能存儲到數據庫字段 (Image)中,因而在數據庫操作中對Image字段的存取是重點研究內容。以下就以Delphi自定義類編碼實現Word文檔數據庫的存、取功能,描述自定義類在數據庫操作中的應用效果。

2.1 建立存放Word文檔信息的表Doc_table

在人力資源系統數據庫中建立表Doc_Table,主要用來存儲Word文檔的編號和內容等信息,結構如表1所示。Word文檔在系統中存、取的程序流程圖如圖1和圖2所示。

表1 Doc_Table文檔信息結構表

圖1 “上傳 (存)”指令程序流程圖實例

圖2 “載入 (取)”指令程序流程圖實例

2.2 將對表Doc_table的所有操作封裝到自定義類中

第1步 在信息系統的Project下點擊菜單命令 “File→New→DataModule”,將該單元的文件名保存為 “DataMod_unit”,此時會自動生成類TDataMod=class(TDataModule)。DataModule是專門用于放置數據庫訪問組件的框架,它提供了一種數據集中的管理方法,使用其不僅增加了數據組件的重用性,而且讓程序結構更加明晰,使得不同的窗體使用同一張表時可以不必每個窗體都添加連接數據庫控件。在DataModule中添加控件并設置其屬性如表2所示。

第2步 編寫自定義類單元文件。單擊菜單命令“File→New→Uint”,并保存該單元文件名為 “Doc_Table_unit”。為完成該類的設計,需要在其中添加實現 “添加”、“預覽”、“修改”、“刪除”等函數和過程代碼。筆者著重介紹了Word文檔的讀、寫方法,以下是在 “Doc_Table_unit”中實現Doc_Table操作的主要過程和函數,其中必須先聲明的該類名為TDoctable=class(TObject),并在私有成員中聲明數據庫連接類Datamod:TDataMod。該單元文件中實現存、取功能的主要是GetDoc FromFile、WordId、RecUpdate、GetDoc 4個函數:GetDocFromFile函數將Word文件流讀入變量參數ReturnString字符串,再返回給GWordUnit(文檔維護界面單元)中的FileTemp;WordId函數在Doc_Table表中先插入新導入的Doc_Id(編號)和Doc_Blob(Word二進制內容);Doc_Id函數按條件查詢的方式調用RecUpdate更新其他字段的值信息;GetDoc函數中根據文檔編號讀出Word的數據流,可將其存放于本地臨時路徑Temppath,提交后該文件即可加載到主界面的Ole-Container容器。

表2 DataModule數據庫連接類中的控件及屬性

2.3 在文檔維護界面添加 “上傳”和 “載入”按鈕OnClick事件

完成數據表操作類的設計后,在新建的 “文檔維護界面”窗體DocMangementFrm中的添加操作控件并設置屬性,主要控件及屬性如表3所示。在DocMangementFrm中要調用類來實現 “上傳”(寫)、“載入”(讀)的功能,必須在DocMangementFrm的單元文件GWordUnit的uses中添加Doc_Table_unit類文件,并且在private中聲明該類的實例名為Doc_Table;同時在調用類的開始時實例化該類,使用結束后釋放該類的實例。由于在自定義類單元文件 “Doc_Table_unit”中已經將對文檔的所有操作進行了封裝,因此只需要在事件代碼中創建實例“Doctable=TDoctable.create”后調用其 “存、取”成員函數便可實現指令響應。

表3 窗體DocMangementFrm中的主要控件及屬性

3 運行結果

采用合理的數據結構和算法編碼是提高Word文檔在數據中的存取管理效率的關鍵因素,其中流技術是程序的核心,Delphi中創建的自定義類引導了程序的所有數據操作。圖3是在Delphi 7環境下調試通過的人力資源管理系統中文檔維護模塊運行的界面。雙擊Word詳情區便可瀏覽、編輯文檔全文信息,真正達到了工作文檔的高效管理、資源共享的目的。

圖3 人力資源管理系統中文檔維護模塊運行的界面 (實線圈定部分為存、取功能區)

4 結 語

Word文檔是目前辦公室應用越來越廣泛的通用文檔格式[7],企、事業單位中各種企劃、總結、通知等文檔需要歸檔供后續工作參考,因此對文檔進行電子化數據庫管理對提高工作質量和效率具有積極的現實意義。筆者提出的Delphi自定義類在Word文檔數據庫中的應用方法,能夠解決文檔在磁盤下直接存儲的不穩定性問題,提高了代碼的可復用性和執行效率,同時也減少了系統資源的耗費,并且對用戶指令反應迅速,交互性強,適于在具有大量數據的數據庫系統中廣泛應用。

[1]何紹木 .Delphi實現 Word文檔在數據庫中的存取 [J].微型電腦應用,2002,18(10):52-53.

[2]求是科技 .Delphi程序設計與開發技術大全 [M].北京:人民郵電出版社,2006,619-620.

[3]童愛紅,張綺,胡光斌 .Delphi 7應用教程 [M].北京:清華大學出版社,2004:2-3.

[4]劉俊,石林,徐守坤,朱正偉 .Delphi程序設計教程 [M].第2版 .北京:清華大學出版社,2008,337-338.

[5]楊洪雪 .基于BLOB類型的數據庫圖像存取技術 [J].數據庫及信息管理,2007,卷 (17):1231-1353.

[6]啟明工作室 .Delphi+SQL Server數據庫應用系統開發與實例 [M].北京:人民郵電出版社,2005,110-111.

[7]郭興吉.Word文檔流技術研究與實踐 [J].綿陽師范學院學報,2010,29(11):85-86.

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 乱色熟女综合一区二区| 国产精品精品视频| 欧美精品一二三区| 亚洲天堂777| 欧洲欧美人成免费全部视频| 亚洲国产精品一区二区高清无码久久| 久久综合AV免费观看| 亚洲日本韩在线观看| 国产欧美视频在线观看| 久久国产精品77777| 91网在线| 又黄又爽视频好爽视频| 欧美精品v欧洲精品| 欧美日韩国产系列在线观看| 狠狠色综合网| 尤物成AV人片在线观看| 久久黄色视频影| A级毛片高清免费视频就| 亚洲开心婷婷中文字幕| 国产黄色爱视频| 尤物成AV人片在线观看| 99久久精品国产自免费| 日韩一区二区三免费高清| 国产成人一区免费观看| 久久免费视频播放| 久久亚洲国产一区二区| 欧美激情成人网| 视频在线观看一区二区| 精品成人一区二区三区电影| 亚洲综合一区国产精品| 免费看黄片一区二区三区| 在线国产91| 91丨九色丨首页在线播放| 亚洲第一色网站| 欧美狠狠干| 国产91九色在线播放| www.国产福利| 欧美人与动牲交a欧美精品| 激情成人综合网| a毛片在线| 亚洲h视频在线| 九色视频一区| 精品伊人久久久香线蕉| 欧美性色综合网| 国产精品高清国产三级囯产AV| 四虎影视国产精品| 国产丝袜无码精品| 国产成人高精品免费视频| 毛片一级在线| 亚洲综合色吧| 美女免费黄网站| 茄子视频毛片免费观看| 亚洲五月激情网| 好紧好深好大乳无码中文字幕| 精品91视频| 国产96在线 | 欧美中文一区| 亚洲另类国产欧美一区二区| 欧美成人手机在线视频| 精品国产成人av免费| 欧美一道本| 日韩av在线直播| 欧美伦理一区| 波多野吉衣一区二区三区av| 国产成人在线无码免费视频| 国产精品福利在线观看无码卡| 国产无码网站在线观看| 亚洲视频免费在线| 亚洲国产天堂久久综合| 日本高清有码人妻| 国产成人综合网在线观看| 亚洲乱码精品久久久久..| 2022国产91精品久久久久久| 国产乱人乱偷精品视频a人人澡| 午夜精品久久久久久久99热下载 | 99久久亚洲精品影院| 久久综合九九亚洲一区| 欧美激情网址| 亚洲欧美国产五月天综合| 国产内射在线观看| 国产精品三级av及在线观看| 性激烈欧美三级在线播放|