国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Delphi下ADO+ODAC操作異構數(shù)據(jù)庫的方法

2012-04-29 00:44:03王琪
中國管理信息化 2012年5期

王琪

[摘要] 本文主要介紹Delphi下ADO+ODAC操作異構數(shù)據(jù)庫的方法,使用ODAC、ADO、TextFile以及包括Excel在內的4種數(shù)據(jù)庫平臺,完成了一次跨數(shù)據(jù)庫平臺的數(shù)據(jù)組織工作。

[關鍵詞] Delphi; ODAC; ADO; TextFile; Excel

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 05. 028

[中圖分類號]TP393[文獻標識碼]A[文章編號]1673 - 0194(2012)05- 0053- 02

1前言

“經(jīng)濟效益評價”軟件是利用油田效益評價分析系統(tǒng),進行單井效益評價。該軟件需要按月導入單井開發(fā)數(shù)據(jù),經(jīng)過費用分攤后得出每口井開發(fā)效果。導入的數(shù)據(jù)來源有兩個:一是來自于單井的井史數(shù)據(jù),二是來自于軟件本身SQL Server服務器的基本參數(shù)。本文主要介紹在Delphi環(huán)境下,分別讀取Oracle 和 SQL Server數(shù)據(jù),并最終生成Excel格式的數(shù)據(jù),供評價軟件使用。

2井史數(shù)據(jù)下載

井史數(shù)據(jù)保存在PDPMIS的Oracle數(shù)據(jù)庫中,目前已經(jīng)單軌運行的A2系統(tǒng)也提供了相應的視圖。所以我們需要讀取這些基于Oracle的數(shù)據(jù)。

軟件采用Delphi開發(fā),自然地,我們使用ODAC組件。Oracle 數(shù)據(jù)存取組件(ODAC) 庫為Borland Delphi,C++ Builder 以及 Kylix提供了一些非可視化的組件。它們用來存?。希颍幔悖欤尻P系數(shù)據(jù)庫系統(tǒng)。與BDE類似, ODAC 也是一種可供選擇的處理數(shù)據(jù)的方法。ODAC 直接使用 Oracle 調用接口(OCI)。 OCI 是一種允許應用程序開發(fā)人員使用第三方開發(fā)語言存取Oracle數(shù)據(jù)服務器的過程或函數(shù)以及控制所有的SQL語句執(zhí)行狀態(tài)的應用程序接口(API)。OCI 通過一個動態(tài)運行庫(ORA*.DLL)提供了一個標準的數(shù)據(jù)庫存取庫及函數(shù),以在應用程序中建立連接。也可以使用ODAC的Net選項而無需在客戶機上安裝Oracle客戶端來連接到Oracle。在這種情況下,ODAC僅需要TCP/IP協(xié)議的支持,從而可以創(chuàng)建真正的、最小的數(shù)據(jù)庫應用程序。

使用ODAC有以下優(yōu)勢:

(1) 選擇Net選項使客戶機上不再需要安裝 Oracle 客戶端。

(2) 不需要分發(fā)、安裝及配置 BDE 及 ODBC。

(3) 允許用戶使用許多 Oracle 的特殊功能。

(4) 提供自動鎖定及刷新記錄機制。

(5) 允許通過使用多線程來執(zhí)行長時間的存儲過程。

(6) ODAC 組件的界面(方法,屬性)和標準的BDE數(shù)據(jù)存取組件(TDatabase,TQuery,…)非常相似。

由于下載的數(shù)據(jù)不完整(沒有包括井的靜態(tài)參數(shù)),所以需要將數(shù)據(jù)暫存起來,這里采用Access數(shù)據(jù)庫作為中間文件(因為這是微軟各版本的Windows都默認提供的)。另外,這個暫存文件還起到了數(shù)據(jù)備份的作用,如果只需要重新導出Excel文件時,不用再次下載了。

利用ADO訪問Access是最直接的。ADO是一套COM(Component Object Model,組件對象模型)組件(DLLs),它允許用戶像訪問電子郵件和文件系統(tǒng)一樣訪問數(shù)據(jù)庫。使用ADO編寫的應用程序不需要BDE。ADO編程模型圍繞著幾個ADO對象而建立,這些對象為訪問各種數(shù)據(jù)源提供多種方法。這些對象提供連接數(shù)據(jù)源、查詢與更新記錄集、報告錯誤的功能。Delphi通過幾個VCL組件通過訪問這些對象的封裝組件。

在程序中添加一個TOraSession 和 一個 TOraQuery,以及一個TADOCommand組件。

程序逐行讀?。希颍幔悖欤鍞?shù)據(jù),經(jīng)過一定的轉換,生成一條Insert語句,插入到Access。

3單井靜態(tài)數(shù)據(jù)下載

這些數(shù)據(jù)是由采油礦人員每月手工導入的,但相鄰兩個月之間數(shù)變化不大,所以為了減少不必要的中間環(huán)節(jié),不妨從SQL Server數(shù)據(jù)庫中下載下來,一起放到Excel中,只需要單獨修改個別發(fā)生變化的井即可。

這項工作需要一個TADOQuery來連接到SQL Server,仍然用前面的TADOCommand 來執(zhí)行更新。同樣,先讀取一行SQL Server數(shù)據(jù),生成一條Update語句,來更新Access。

4輸出Excel

評價軟件對Excel文件要求不高,只需要逗號分隔即可,其實就是*.CSV,但擴展名必須是“.xls”。所以代碼比較簡單。

5軟件附加功能介紹

(1) 軟件能夠在啟動時檢查 “jj.mdb”(Access數(shù)據(jù)庫)文件是否存在,否則自動建立文件和相應的數(shù)據(jù)表。

(2) 為了能夠對單井的靜態(tài)信息更新可以根據(jù)用戶的需要進行修改,我們創(chuàng)建列表。

6結論與認識

本文介紹了整個軟件的實現(xiàn)過程,在Delphi這個統(tǒng)一的IDE下,分別使用了ODAC、ADO、TextFile等多種方式,使用了包括Excel在內的4種數(shù)據(jù)庫平臺,完成了一次跨數(shù)據(jù)庫平臺的數(shù)據(jù)組織工作,作為效益評價軟件的輔助工具,在實際應用中起到了一定的作用。同時也看到目前軟件開發(fā)中存在的問題:

目前的軟件開發(fā)都會根據(jù)各自的需求選用相應的數(shù)據(jù)庫平臺,這就造成了軟件間數(shù)據(jù)的共享瓶頸,所以在今后的軟件開發(fā)中一定要在兼顧數(shù)據(jù)來源的前提下,理性地選擇數(shù)據(jù)庫平臺,以提高軟件實用性、兼容性,減少不必要的中間環(huán)節(jié)。

主要參考文獻

[1] 梁水,李方超,賽奎春. Delphi開發(fā)技術大全[M]. 北京:人民郵電出版社,2007.

珠海市| 杨浦区| 水富县| 宁陕县| 枣阳市| 连江县| 刚察县| 泰来县| 柳江县| 灵台县| 河曲县| 苍南县| 长岛县| 郓城县| 嘉禾县| 广汉市| 台江县| 麟游县| 察隅县| 九龙坡区| 伊川县| 甘南县| 洱源县| 利津县| 商南县| 宁津县| 彭水| 永丰县| 平凉市| 安达市| 玉山县| 桓仁| 乐清市| 清丰县| 彝良县| 库尔勒市| 满洲里市| 远安县| 寿宁县| 密山市| 敦化市|