




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1讀書報(bào)告基于VisualC+6.0的數(shù)據(jù)庫的連接與操作計(jì)算機(jī)0101班12號(hào)須明烽為按時(shí)保質(zhì)保量地完成本次畢業(yè)設(shè)計(jì),我進(jìn)行了充分的準(zhǔn)備。因?yàn)橛肰isualC+6.0開發(fā)系統(tǒng)相對(duì)較難,具有挑戰(zhàn)性,所以選擇VC作為本次畢業(yè)設(shè)計(jì)的開發(fā)環(huán)境。在選定開發(fā)環(huán)境為VC以后,我到圖書館借閱了相關(guān)技術(shù)書籍,主要有設(shè)計(jì)模式、MFC深入淺出、MFC開發(fā)人員指南、VisualC+圖形用戶界面開發(fā)指南、VC+編程技術(shù)與難點(diǎn)剖析、VisualC+實(shí)效編程百例、VisualC+6.0高級(jí)編程范例、VisualC+技術(shù)內(nèi)幕、VisualC+數(shù)據(jù)庫開發(fā)基礎(chǔ)及實(shí)例解析、VisualC+6.0數(shù)據(jù)庫開發(fā)實(shí)例、VisualC+6.0數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航等。此外,我還借閱了有關(guān)排隊(duì)系統(tǒng)的書籍,像建模與仿真、預(yù)測(cè)與決策技術(shù)等。在此之前我已經(jīng)進(jìn)行了VC在API編程方面的研究,為MFC編程打下了基礎(chǔ)。根據(jù)畢業(yè)設(shè)計(jì)的具體要求,我著重在VC數(shù)據(jù)庫開發(fā)談一下我的所學(xué)所想看法及其感受。信息管理系統(tǒng)(ManagementInformationSystem,MIS)通常是自有任何計(jì)算機(jī)設(shè)備或其它信息處理技術(shù)組成并用于管理信息的系統(tǒng)。所有的信息管理系統(tǒng)中待處理的信息均是來自第一手的原始資料,通常來源分散、數(shù)據(jù)量龐大、而且多有時(shí)間局限性。信息管理系統(tǒng)的重要作用之一,是對(duì)信息進(jìn)行管理并在此基礎(chǔ)上為使用者提供各種形式的幫助。對(duì)信息的管理通常由信息的采集、信息的傳輸、信息的存儲(chǔ)、信息的加工、信息的維護(hù)和使用五個(gè)方面組成。管理信息的各個(gè)組成部分如果按一定的規(guī)則相互聯(lián)系、相互作用并形成具有一定功能的整體,就構(gòu)成了信息管理系統(tǒng)。一個(gè)數(shù)據(jù)庫應(yīng)用程序在邏輯上通常由數(shù)據(jù)訪問鏈路和用戶界面兩部分組成。在設(shè)計(jì)數(shù)據(jù)庫應(yīng)用程序的時(shí)候,通常要把數(shù)據(jù)訪問鏈路構(gòu)件和用戶界面構(gòu)件分開,數(shù)據(jù)訪問構(gòu)件均放置在數(shù)據(jù)模塊上。數(shù)據(jù)模塊主要用來實(shí)現(xiàn)數(shù)據(jù)訪問鏈路,也就是引入數(shù)據(jù)集。其體系結(jié)構(gòu)模型如圖所示:常用的數(shù)據(jù)庫開發(fā)技術(shù)有ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)庫互連)、DAO(DataAccessObject,數(shù)據(jù)訪問對(duì)象)、OLEDB(ObjectLinkandEmbeddingDatabase,對(duì)象連接與嵌入數(shù)據(jù)庫)和ADO(ActiveXDataObject,ActiveX數(shù)據(jù)對(duì)象)等幾種。(1)ODBC是一種使用SQL的程序設(shè)計(jì)接口。使用ODBC讓應(yīng)用程序的編寫者避免了與數(shù)據(jù)源相聯(lián)的復(fù)雜性。這項(xiàng)技術(shù)目前已經(jīng)得到了大多數(shù)DBMS廠商們的廣泛支持。MicrosoftDeveloperStudio為大多數(shù)標(biāo)準(zhǔn)的數(shù)據(jù)庫格式提供了32位ODBC驅(qū)動(dòng)器。這些標(biāo)準(zhǔn)數(shù)據(jù)格式包括有:SQLServer、Access、Paradox、dBase、FoxPro、Excel、Oracle以及MicrosoftText。如果用窗體數(shù)據(jù)模塊數(shù)據(jù)庫引擎客戶數(shù)據(jù)集數(shù)據(jù)源用戶界面數(shù)據(jù)庫2戶希望使用其他數(shù)據(jù)格式,用戶需要相應(yīng)的ODBC驅(qū)動(dòng)器及DBMS。用戶使用自己的DBMS數(shù)據(jù)庫管理功能生成新的數(shù)據(jù)庫模式后,就可以使用ODBC來登錄數(shù)據(jù)源。對(duì)用戶的應(yīng)用程序來說,只要安裝有驅(qū)動(dòng)程序,就能注冊(cè)很多不同的數(shù)據(jù)庫。登錄數(shù)據(jù)庫的具體操作參見有關(guān)ODBC的聯(lián)機(jī)幫助。(2)ADO是Microsoft為最新和最強(qiáng)大的數(shù)據(jù)訪問范例OLEDB而設(shè)計(jì)的,是一個(gè)便于使用的應(yīng)用程序?qū)咏涌?。ADO使您能夠編寫應(yīng)用程序以通過OLE.DB提供者訪問和操作數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。ADO最主要的優(yōu)點(diǎn)是易于使用、速度快、內(nèi)存支出少和磁盤遺跡小。ADO在關(guān)鍵的應(yīng)用方案中使用最少的網(wǎng)絡(luò)流量,并且在前端和數(shù)據(jù)源之間使用最少的層數(shù),所有這些都是為了提供輕量、高性能的接口。之所以稱為ADO,是用了一個(gè)比較熟悉的暗喻,OLE自動(dòng)化接口。(3)OLEDB是一組”組件對(duì)象模型”(COM)接口,是新的數(shù)據(jù)庫低層接口,它封裝了ODBC的功能,并以統(tǒng)一的方式訪問存儲(chǔ)在不同信息源中的數(shù)據(jù)。OLEDB是MicrosoftUDA(UniversalDataAccess)策略的技術(shù)基礎(chǔ)。OLEDB為任何數(shù)據(jù)源提供了高性能的訪問,這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對(duì)象等等。也就是說,OLEDB并不局限于ISAM、Jet甚至關(guān)系數(shù)據(jù)源,它能夠處理任何類型的數(shù)據(jù),而不考慮它們的格式和存儲(chǔ)方法。在實(shí)際應(yīng)用中,這種多樣性意味著可以訪問駐留在Excel電子數(shù)據(jù)表、文本文件、電子郵件/目錄服務(wù)甚至郵件服務(wù)器,諸如MicrosoftExchange中的數(shù)據(jù)。但是,OLEDB應(yīng)用程序編程接口的目的是為各種應(yīng)用程序提供最佳的功能,它并不符合簡(jiǎn)單化的要求。您需要的API應(yīng)該是一座連接應(yīng)用程序和OLEDB的橋梁,這就是ActiveXDataObjects(ADO)。(4)DAO是基于MicrosoftJet數(shù)據(jù)庫引擎的一種重要的數(shù)據(jù)庫訪問技術(shù)。DAO是一種面向?qū)ο蟮慕缑娼涌?,但非可視化的?duì)象要通過編碼來完成。DAO是設(shè)計(jì)關(guān)系型數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的對(duì)象類的集合,提供了完成管理這樣一個(gè)系統(tǒng)所需的全部操作的屬性與方法,包括創(chuàng)建數(shù)據(jù)庫、定儀表、字段和索引、簡(jiǎn)歷表之間的關(guān)系、定位和查詢數(shù)據(jù)庫等工具。MFC提供的DAO類可以通過MicrosoftJet數(shù)據(jù)庫引擎訪問數(shù)據(jù)庫中的數(shù)據(jù)及數(shù)據(jù)庫的結(jié)構(gòu)定義。DAO類具備ODBC類的大部分功能并增加了許多自己的功能。與ODBC類的CDatabase、CRecordset、CRecordView類似,MFC為DAO也提供了相應(yīng)的CDaoDatabase、CDaoRecordset和CDaoRecordView類,分別封裝了DAO數(shù)據(jù)庫對(duì)象、DAO記錄集對(duì)象和DAO記錄視對(duì)象。此外,DAO還提供有封裝DAO工作區(qū)對(duì)象、表定義對(duì)象和查詢定義對(duì)象的CDaoWorkspace、CDaoTableDef和CDaoQueryDef等DAO類。下面以MFCODBC類來講述如何實(shí)現(xiàn)VC+與數(shù)據(jù)庫的連接:應(yīng)用VisualC+的AppWizard可以自動(dòng)生成一個(gè)ODBC應(yīng)用程序框架。方法是:打開File菜單的New選項(xiàng),選取Projects,填入工程名,選擇MFCAppWizard(exe),然后按AppWizard的提示進(jìn)行操作。當(dāng)AppWizard詢問是否包含數(shù)據(jù)庫支持時(shí),如果你想讀寫數(shù)據(jù)庫,那么選定Databaseviewwithfilesupport;而如果你想訪問數(shù)據(jù)庫的信息而不想回寫所做的改變,那么選定Databaseviewwithoutfilesupport選項(xiàng)就比較合適了。選擇了數(shù)據(jù)庫支持之后DatabaseSource按鈕會(huì)激活,選中它去調(diào)用DataOptions對(duì)話框。在DatabaseOptions對(duì)話框中會(huì)顯示已向ODBC注冊(cè)的數(shù)據(jù)庫資源,選定你所要操作的數(shù)據(jù)庫,如:Super_ES,單擊OK后會(huì)出現(xiàn)SelectDatabaseTables對(duì)話框,其中列舉了你所選中的數(shù)據(jù)庫中包含的全部表,選擇你希望操作的表后,單擊OK。在選定了數(shù)據(jù)庫和數(shù)據(jù)表之后,你可以按照慣例繼續(xù)進(jìn)行AppWizard操作。3-特別需要指出的是:在生成的應(yīng)用程序框架View類(如:CSuper_ESView)中包含一個(gè)指向CSuper_ESSet對(duì)象的指針m_pSet,該指針由AppWizard建立,目的是在視表單和記錄集之間建立聯(lián)系,使得記錄集中的查詢結(jié)果能夠很容易地在視表單上顯示出來。有關(guān)m_pSet的詳細(xì)用法可以參見VisualC+OnlineBook。-程序與數(shù)據(jù)語言建立聯(lián)系,使用CDatebase:OpenEx()或CDatabase:Open()函數(shù)來進(jìn)行初始化。數(shù)據(jù)庫對(duì)象必須在你使用它構(gòu)造一個(gè)記錄集對(duì)象之前被初始化。-下面舉例說明在VisualC+環(huán)境中ODBC的編程技巧:-1查詢記錄-查詢記錄使用CRecordSet:Open()和CRecordSet:Requery()成員函數(shù)。在使用CRecordSet類對(duì)象之前,必須使用CRecordSet:Open()函數(shù)來獲得有效的記錄集。一旦已經(jīng)使用過CRecordSet:Open()函數(shù),再次查詢時(shí)就可以應(yīng)用CRecordSet:Requery()函數(shù)。在調(diào)用CRecordSet:Open()函數(shù)時(shí),如果已經(jīng)將一個(gè)已經(jīng)打開的CDatabase對(duì)象指針傳給CRecordSet類對(duì)象的m_pDatabase成員變量,則使用該數(shù)據(jù)庫對(duì)象建立ODBC連接;否則如果m_pDatabase為空指針,就新建一個(gè)CDatabase類對(duì)象并使其與缺省的數(shù)據(jù)源相連,然后進(jìn)行CRecordSet類對(duì)象的初始化。缺省數(shù)據(jù)源由GetDefaultConnect()函數(shù)獲得。你也可以提供你所需要的SQL語句,并以它來調(diào)用CRecordSet:Open()函數(shù),例如:Super_ESSet.Open(AFX_DATABASE_USE_DEFAULT,strSQL);-如果沒有指定參數(shù),程序則使用缺省的SQL語句,即對(duì)在GetDefaultSQL()函數(shù)中指定的SQL語句進(jìn)行操作:CStringCSuper_ESSet:GetDefaultSQL()return_T(BasicData,MainSize);-對(duì)于GetDefaultSQL()函數(shù)返回的表名,對(duì)應(yīng)的缺省操作是SELECT語句,即:SELECT*FROMBasicData,MainSize-查詢過程中也可以利用CRecordSet的成員變量m_strFilter和m_strSort來執(zhí)行條件查詢和結(jié)果排序。m_strFilter為過濾字符串,存放著SQL語句中WHERE后的條件串;m_strSort為排序字符串,存放著SQL語句中ORDERBY后的字符串。如:Super_ESSet.m_strFilter=TYPE=電動(dòng)機(jī);Super_ESSet.m_strSort=VOLTAGE;Super_ESSet.Requery();對(duì)應(yīng)的SQL語句為:SELECT*FROMBasicData,MainSizeWHERETYPE=電動(dòng)機(jī)ORDERBYVOLTAGE-除了直接賦值給m_strFilter以外,還可以使用參數(shù)化。利用參數(shù)化可以更直觀,更方便地完成條件查詢?nèi)蝿?wù)。使用參數(shù)化的步驟如下:-(1)聲明參變量:CStringp1;floatp2;-(2)在構(gòu)造函數(shù)中初始化參變量4p1=_T();p2=0.0f;m_nParams=2;-(3)將參變量與對(duì)應(yīng)列綁定pFX-SetFieldType(CFieldExchange:param)RFX_Text(pFX,_T(P1),p1);RFX_Single(pFX,_T(P2),p2);-完成以上步驟之后就可以利用參變量進(jìn)行條件查詢了:m_pSet-m_strFilter=TYPE=?ANDVOLTAGE=?;m_pSet-p1=電動(dòng)機(jī);m_pSet-p2=60.0;m_pSet-Requery();-參變量的值按綁定的順序替換查詢字串中的?適配符。-如果查詢的結(jié)果是多條記錄的話,可以用CRecordSet類的函數(shù)Move(),MoveNext(),MovePrev(),MoveFirst()和MoveLast()來移動(dòng)光標(biāo)。-2增加記錄-增加記錄使用AddNew()函數(shù),要求數(shù)據(jù)庫必須是以允許增加的方式打開:m_pSet-AddNew();/在表的末尾增加新記錄m_pSet-SetFieldNull(&(m_pSet-m_type),FALSE);m_pSet-m_type=電動(dòng)機(jī);./輸入新的字段值m_pSet-Update();/將新記錄存入數(shù)據(jù)庫m_pSet-Requery();/重建記錄集-3刪除記錄-直接使用Delete()函數(shù),并且在調(diào)用Delete()函數(shù)之后不需調(diào)用Update()函數(shù):m_pSet-Delete();if(!m_pSet-IsEOF()m_pSet-MoveNext()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 阿壩清淤施工方案
- 礦渣開挖施工方案
- 兼職文案策劃聘用協(xié)議3篇
- 學(xué)生安全教育講座3篇
- 合同的承包數(shù)據(jù)3篇
- 供應(yīng)鏈客戶服務(wù)改進(jìn)承諾3篇
- 全新發(fā)布招標(biāo)文件第一號(hào)補(bǔ)遺書3篇
- 四川省高速公路擴(kuò)建招標(biāo)文件3篇
- 對(duì)招標(biāo)文件的承認(rèn)聲明3篇
- 2025年宿管個(gè)人工作心得體會(huì)總結(jié)(20篇)
- 一般企業(yè)財(cái)務(wù)報(bào)表附注(模板)
- 【MOOC】?jī)A聽-音樂的形式與審美-武漢大學(xué) 中國大學(xué)慕課MOOC答案
- 人力資源調(diào)配應(yīng)急演練
- 護(hù)士入職心得體會(huì)課件
- 藝術(shù)涂料施工協(xié)議
- 2023-2024學(xué)年遼寧省七校協(xié)作體高二下學(xué)期5月聯(lián)考地理試題(解析版)
- 電力行業(yè)設(shè)備檢修與維護(hù)規(guī)程
- 2024年大學(xué)試題(宗教學(xué))-宗教學(xué)綜合練習(xí)考試近5年真題集錦(頻考類試題)帶答案
- 企業(yè)社會(huì)責(zé)任與顧客滿意
- 急性腦梗死患者的麻醉管理與圍術(shù)期管理指南
- 一例下肢靜脈血栓疑難病例護(hù)理討論
評(píng)論
0/150
提交評(píng)論