李 欣
新疆工程學院,新疆烏魯木齊 830091
基于ADO下數據庫開發技術的分析
李 欣
新疆工程學院,新疆烏魯木齊 830091
隨著科學技術的進步,ODBC技術已經逐漸被ADO技術取代,并已經成為開發數據庫技術的主流。基于此,本文以介紹ADO技術對象與集合為基礎,闡述運用ADO技術開發數據的流程與原理,并講述在數據庫開發過程中需要注意的關鍵性問題,僅供技術人員參考。
ADO;數據庫;開發技術
現代軟件開發中,訪問數據庫是重要的工作內容之一。傳統的技術在訪問數據時的速度較慢,且僅可以訪問關系型的數據庫,類型較為單一。因此,對開發數據庫的技術進行研究與創新,ADO技術已經被廣泛的運用,簡化了傳統技術的訪問流程,并且內存小、速度快,還可以對不同的數據源展開訪問,受到廣大工作人員的喜愛。
ADO技術的對象主要包括:流對象、屬性對象、錯誤對象、參數對象、記錄對象、字段對象、記錄集對象、命令對象以及連接對象。在所有對象中記錄集對象、命令對象以及連接對象最為重要,下面分別進行介紹:
1)連接對象是與數據源開展的唯一會話交流,既可以是ODBC數據源,也可以是OLEDB數據源。如果是服務器或者客戶端,連接對象可以對將連接等結語實際的網絡連接。連接對象雖然能夠對數據庫進行操作,但是不能返回操作記錄。
2)命令對象就是訪問數據源時的指令,在查詢數據的基礎上,將記錄集對象的記錄返回,還能夠刪除、插入相關命令。
3)記錄集對象表示來自命令結果、基本表的記錄全集,無論什么時候,記錄集中都是單個的記錄。
ADO技術在單機版計算機軟件中、網站建設中得到廣泛應用,并得到VB、VC等編譯器的支持,在FoxPro、Access、Oracle等主流數據庫中都采用了ADO技術程序。在不同的編譯環境中,ADO語句的語法存在一定的差別,在此以VisualC++中開發Access為例,分析運用ADO技術發開數據庫的具體流程。
2.1 引入動態鏈接庫
ADO技術并不是MFC的基本類型,而是將其涵蓋在msa-do15.dll的文件之內,在開發數據庫時需要使用#mport語句為編譯指令,將其引入其中。通常情況下,StdAfxh文件包含于其他文件之中,以此可以添加語言代碼將其引入ADO的連接庫之中。如:#mport’c:program filescommon filessystemadomsado15.dll’no-namespace rename。在上述語句的指令中,no-namespace/為不能運用ADO名字的空間,同時為了不免發生常數沖突,rename將常數改為adoEOF。如果在建立開發數據中的過程中,ADO中的常數之間發生沖突,便可以利用rename進行解決[1]。
2.2 對OLE/COM進行初始化
值得注意的是,ADO數據庫是COM動態庫,這就說明調用ADO庫之前,必須對OLE/COM動態庫的環境進行初始化。在實際的應用程序中,通常在主類函數Initlnstance中完成數據庫環境的初始化。
2.3 使用連接對象連接數據源
在使用連接對象時,同樣具有自己的工作流程:
1)聲明連接對象的類型指針,通常可以將其程序的成員。如:m_pCnooection,_ConnectionPtr。
2)將連接對象指針實例化。此過程能夠在初始化函數中進行,如重新載入OnlnitDialog函數,只需要進行一次就可以。3)建立數據庫之間的連接。調用連接對象中的Open方法建立數據庫之間的連接,輸入相關的編譯命令,實現連接目的。需要注意的是,連接字符串的語法根據數據庫的不同而發生相應的變化,因此需要程序員結合實際工作調整字符串的語法。
2.4 打開記錄,開始操作
操作記錄的方式有以下幾種:
1)連接對象中的Execute方式。利用Execute方式執行一條無法返回結果的語句,如執行數據的存儲過程。
2)命令對象中的Execute方式。通常,命令記錄能夠返回以及數據記錄集,并提供一個相對簡單的返回記錄的存儲過程與結果。使用命令接口時,既可以使用全局接口,也可以接口中使用連接串。如果連續執行幾次訪問數據的操作,必然是后者的結果更加準確,但是訪問數據庫的較為頻繁,并要求多個記錄集被返回,此時便需要連接對象中的全局接口來創建數據之間的連接,然后運用命令接口來執行數據集存儲的過程。
3)記錄集對象中的Open方式。記錄集對象賦予記錄集較多的控制能力,例如:游標控制、記錄鎖定等。與命令對象相同,并不一定會運用創建完成的數據連接,可以使用連接串替代記錄集中的連接成員變量,讓自己能夠創建一個新的數據連接。如果程序員要運用較多的記錄集,最好與命令對象一樣,利用創建完成的全局接口,然后使用記錄集執行存儲數據的命令。
2.5 退出程序,斷開鏈接
推出ADO主程序時,必須將數據庫之間的連接釋放或者斷開。完成該項工作可以在程序中添加相關的命令語句來實現:
If(m_pConnection->State){
m_pConnection->Close();/斷開連接
m_pConnection release();/釋放連接
3.1 建立Access數據庫
要想實現Access數據源之間的連接,就要擁有Access的相關文件。通常可以在計算機系統中建立一個mdb文件,但是這樣的做法具有一定的弊端:第一,引發大量的操作重復;第二,不利于使用軟件時的交付。為了避免上述的情況發生,需要使用ADOX在程序中建立mdb文件,實現自動化創建。ADOX是對ADO技術的補充,利用其可以創建一個新的Catalog,具體操作如下:
1)在使用的過程中需要利用#mport引入連接庫。
2)運用Create建立數據庫文件。實現自動創建文件的過程,避免手動創建的文件的繁瑣,同時提高工作效率。
3.2 在程序中建立數據表
與mdb文件一樣,同樣在計算機系統中完成手動建立,同樣具有大量的重復操作、不利于軟件交付的缺點。在連接數據源之后,通過連接對象來執行建立數據表的命令。通常情況下,編譯代碼中會出現3個字段表,其中第一個字段是數據表的主鍵,能夠自動完成整段數字的遞加,另外兩個字段則是普通的字段[2]。
3.3 自動建立與鏈接
C r e a t e T a b l e()、C r e a t e M D B()、ConnectDatabase()三個函數之間的聯合,能夠在程序中自動建立數據并完成連接,然后自動生成數據表。要想實現自動化建立,可以在程序初始化函數時加入命令代碼。如:重現載入OnlnitDialog()函數時加入編譯代碼命令。如果在與exe文件存在同名,就建立數據庫連接,如果沒有便自動建立文件、數據表,然后實現連接。在應用中,一旦使用者不喜歡程序彈出信息錯誤的窗口,便可以在命令語句去掉“彈出窗口”的相關指命令。
綜上所述,運用ADO技術開發數據庫,能夠彌補傳統技術的缺點,具有儲存空間要求小、訪問靈活、便于使用的優點,同時還能對多種類型的數據庫進行訪問,還可以應用在遠程數據庫的訪問中。就廣大的軟件而言,ADO技術能夠滿足開發數據庫軟件的相關要求,并能夠簡化工作程序,提高工作質量,逐漸取代了ODBC的傳統的技術,引領科學技術的發展方向。
[1]沈智芳.基于ADO接口技術的Oracle數據庫嵌套表的開發研究[J].甘肅聯合大學學報(自然科學版),2009(5):70-73.
[2]易當祥,呂國志,谷小青.基于ADO技術的數據庫嵌套表的開發研究[J].計算機應用,2004(S1):128-129.
TP3
A
1674-6708(2017)192-0067-02
李欣,講師,新疆工程學院,研究方向為計算機網絡技術、物聯網技術。