




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