亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

應(yīng)用vc進(jìn)行數(shù)據(jù)庫(kù)編程與分析

時(shí)間:2020-09-21 08:13:13 MBA畢業(yè)論文 我要投稿

應(yīng)用vc進(jìn)行數(shù)據(jù)庫(kù)編程與分析

  一、VC作為數(shù)據(jù)庫(kù)編程工具必要性

  實(shí)際上從方便的角度講,VisuaIBa血和Delphi這樣的RAD環(huán)境更加適合于數(shù)據(jù)庫(kù)開發(fā),應(yīng)用這些軟件可以在使程序設(shè)計(jì)非常地容易。對(duì)大多數(shù)數(shù)據(jù)庫(kù)應(yīng)用來(lái)說(shuō),選擇VC++也許并不適宜。但是需要考慮到,單純的數(shù)據(jù)庫(kù)管理必須要和其它的功能結(jié)合才能發(fā)揮更大的作用,而數(shù)據(jù)庫(kù)軟件并不輕易地支持這些拓展的功能。由于VC對(duì)底層強(qiáng)大的支持,其高效的率的代碼結(jié)構(gòu),編寫的數(shù)據(jù)庫(kù)相關(guān)應(yīng)用程序就會(huì)有規(guī)模小、提供底層訪問(wèn)并能提供實(shí)時(shí)訪問(wèn)的特點(diǎn)。比如編寫數(shù)據(jù)庫(kù)實(shí)用程序及驅(qū)動(dòng)程序時(shí),在硬盤較小或內(nèi)存有限制時(shí),Visualc++提供了無(wú)價(jià)無(wú)限的工具。

  二、VC數(shù)據(jù)庫(kù)編程方法分析

  (一)ODBC的模式

  Mα'Os'Ofi最初是以開放數(shù)據(jù)庫(kù)互連(ODBC)為目標(biāo)的,ODBC是Micr'Os'Oft引進(jìn)的一種早期數(shù)據(jù)庫(kù)接口技術(shù),是ADO的前身。

  VisualC++的MFC類庫(kù)定義了幾個(gè)數(shù)據(jù)庫(kù)類。在利用ODBC編程時(shí),經(jīng)常要使用到CDatabase(數(shù)據(jù)庫(kù)類),CRec'OrdSet(記錄集類)和CRe∞'rdView(可視記錄集類)。其中:CDatabase類對(duì)象提供了對(duì)數(shù)據(jù)源的連接,通過(guò)它你可以對(duì)數(shù)據(jù)源進(jìn)行操作。CRecordView類對(duì)象能以控制的形式顯示數(shù)據(jù)庫(kù)記錄。這個(gè)視圖是直接連到一個(gè)CRec'OrdSet對(duì)象的表視圖。CRec'OrdSet類對(duì)象提供了從數(shù)據(jù)源中提取出的記錄集。

  1數(shù)據(jù)鏈接

  在CRecordSet類中定義了一個(gè)成員變量m_pDatabase:CDatabase*m_pDatabase;

  它是指向?qū)ο髷?shù)據(jù)庫(kù)類的指針。如果在CRec'OrdSet類對(duì)象調(diào)用OpenO函數(shù)之前,將一個(gè)已經(jīng)打開的CDatabase類對(duì)象指針傳給m-pDatabase,就能共享相同的CDatabase類對(duì)象。

  2.查詢記錄

  查詢記錄使用CRec'OrdSet::OpenO和CRec'OrdSet::R叫ueryO成員函數(shù)。在使用CRecordSet類對(duì)象之前,必須使用CRec'OrdSet::OpenO函數(shù)來(lái)獲得有效的記錄集。一旦已經(jīng)使用過(guò)CReoordSet::OpenO函數(shù),再次查詢時(shí)就可以應(yīng)用CRecordSet::RequeryO函數(shù)。在調(diào)用αecordSet::句enO函數(shù)時(shí),如果已經(jīng)將一個(gè)已經(jīng)打開的CDatabase對(duì)象指針傳給CRec'OrdSet類對(duì)象的m_pDatabase成員變量,則使用該數(shù)據(jù)庫(kù)對(duì)象建立ODBC連接;否則如果m_pDatabase為壁指針,就新建一個(gè)CDatabase類對(duì)象并使其與缺省的'數(shù)據(jù)源相連,然后進(jìn)行αec'OrdSet類對(duì)象的初始化。缺省數(shù)據(jù)源由GetDefaultC'OnnectO函數(shù)獲得。

  如果沒(méi)有指定參數(shù),程序則使用缺省的SQL語(yǔ)句,即對(duì)在GetDefaultSQL()函數(shù)中指定的SQL語(yǔ)句進(jìn)行操作。(二)ADO的模式

  ADO既能應(yīng)用到VC的強(qiáng)大功能,而且使用起來(lái)又比較方便,本文以ADO方式數(shù)據(jù)庫(kù)訪問(wèn)為例,展示VC下如何進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用。下面是使用其編程的方法。

  1.使用預(yù)處理指令#import

  #import"C:飛ProgramFiles\C'Omm'OnFiles飛System'山DO恤sad'015.

  dll"\n'O_namespaceren缸丑叭"EOF","EndOfFile")

  程序在編譯過(guò)程中,VC++會(huì)讀出msadol5.dll中的類型庫(kù)信息,自動(dòng)產(chǎn)生兩個(gè)該類型庫(kù)的頭文件和實(shí)現(xiàn)文件msad'015.tlh和msad'015.tli(在您的Debug或Release目錄下〉。在這兩個(gè)文件里定義了ADO的所有對(duì)象和方法,以及一些枚舉型的常量等。我們的程序只要直接調(diào)用這些方法就行了,與使用MFC中的COleDispatchDriver類調(diào)用Aut'Omati'On對(duì)象十分類似。

  2.使用MFC中的CIDispatchDriver就是通過(guò)讀取msad'015.dll中的類型庫(kù)信息,建立一個(gè)COleDispatchDriver類的派生類,然后通過(guò)它調(diào)用ADO對(duì)象。

  3直接用COM提供的API如使用如下代碼zCLSIDclsid;

  HRESULThr=::CLSIDFromProgID(L"ADODB.C'Onnecti'On",&clsid);

  if(FAlLED(hr?{...J

  :CoCr四teIn民ance(clsid,NULL,CLSCTX_SERVER

  IID_IDispatch,(v'Oid叫&pDispatch);

  if(FAlLED(hr

  {...J

  以上三種方法,第一和第二種類似,可能第一種好用一些,第三種編程可能最麻煩。但可能第三種方法也是效率最高的,程序的尺寸也最小,并且對(duì)ADO的控制能力也最強(qiáng)。當(dāng)需要繞過(guò)ADO而直接調(diào)用OLEDB底層的方法時(shí),就一定要使用第三種方法。ADO編程的關(guān)鍵,就是熟練地運(yùn)用ADO提供的各種對(duì)象('0ect)、方法(method)、屬性(prop町ty)和容器(00llecti'On)。

【應(yīng)用vc進(jìn)行數(shù)據(jù)庫(kù)編程與分析】相關(guān)文章:

1. PHP的基礎(chǔ)編程與應(yīng)用

2.軟件編程自動(dòng)檢查技術(shù)的實(shí)際應(yīng)用分析

3.vc++中的ADO的應(yīng)用

4.數(shù)學(xué)與應(yīng)用數(shù)學(xué)現(xiàn)狀分析與就業(yè)前景分析

5.《Access數(shù)據(jù)庫(kù)應(yīng)用》教學(xué)改革與實(shí)踐

6.javascript編程常用知識(shí)的應(yīng)用

7.OracleDBA數(shù)據(jù)庫(kù)性能進(jìn)行優(yōu)化