




已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第10章VisualC 編程深入 10 1ODBC數(shù)據(jù)庫應(yīng)用 數(shù)據(jù)庫應(yīng)用程序是指能夠通過數(shù)據(jù)庫管理系統(tǒng)DBMS訪問數(shù)據(jù)庫的程序 VisualC 提供了多種數(shù)據(jù)庫訪問技術(shù) 其中經(jīng)常使用的是開放式數(shù)據(jù)庫連接ODBC和數(shù)據(jù)庫存取對(duì)象DAO兩種關(guān)系數(shù)據(jù)庫訪問技術(shù) 10 1 1ODBC概述 ODBC是一個(gè)調(diào)用級(jí)接口 它使得應(yīng)用程序得以訪問任何具有ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫中的數(shù)據(jù) 使用ODBC可以創(chuàng)建具有訪問任何數(shù)據(jù)庫 最終用戶具有該數(shù)據(jù)庫的ODBC驅(qū)動(dòng)程序 的權(quán)限的數(shù)據(jù)庫應(yīng)用程序 ODBC提供了使數(shù)據(jù)庫應(yīng)用程序獨(dú)立于數(shù)據(jù)庫管理系統(tǒng) DBMS 的API ODBC是MicrosoftWindows開放服務(wù)結(jié)構(gòu) WOSA 中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分 它建立了一組數(shù)據(jù)庫訪問規(guī)范 為用戶提供了簡單 標(biāo)準(zhǔn) 透明和統(tǒng)一的數(shù)據(jù)庫訪問的編程接口 即API 使應(yīng)用程序獨(dú)立于DBMS ODBCAPI作為數(shù)據(jù)庫的一種底層訪問技術(shù) 它支持SQL語言 并且用戶可以直接將SQL語言提交給ODBCAPI 應(yīng)用程序 執(zhí)行處理并調(diào)用ODBCAPI函數(shù) 以提交SQL語句并獲取結(jié)果 ODBC驅(qū)動(dòng)程序管理器 根據(jù)應(yīng)用程序的需要加載或卸載驅(qū)動(dòng)程序 代表應(yīng)用程序加載ODBC數(shù)據(jù)庫驅(qū)動(dòng)程序的動(dòng)態(tài)鏈接庫 Odbc32 dll 包括一組ODBCAPI函數(shù) ODBC的體系結(jié)構(gòu)包括如下4個(gè)組件 ODBC數(shù)據(jù)庫驅(qū)動(dòng)程序 處理ODBCAPI函數(shù)調(diào)用 提交SQL請(qǐng)求到一個(gè)指定的數(shù)據(jù)源 并把結(jié)果返回給應(yīng)用程序 ODBC驅(qū)動(dòng)程序通常是一個(gè)DLL 數(shù)據(jù)源 應(yīng)用程序要連接一個(gè)數(shù)據(jù)庫 首先必須設(shè)置一個(gè)數(shù)據(jù)源 數(shù)據(jù)源是應(yīng)用程序的操作對(duì)象 應(yīng)用程序通過數(shù)據(jù)源就能找到對(duì)應(yīng)的數(shù)據(jù)庫物理文件 10 1 2MFCODBC數(shù)據(jù)庫類 CDatabase類 主要功能是負(fù)責(zé)與數(shù)據(jù)源的連接 CRecordset類 負(fù)責(zé)對(duì)數(shù)據(jù)源的數(shù)據(jù)記錄集合的操作 CRecordView類 負(fù)責(zé)數(shù)據(jù)記錄與視圖之間的關(guān)聯(lián) 使用對(duì)話框數(shù)據(jù)交換機(jī)制 DDX CFieldExchange類 負(fù)責(zé)記錄字段與成員變量之間的關(guān)聯(lián) CDBException類 負(fù)責(zé)ODBC產(chǎn)生的異常 常用操作 1 打開數(shù)據(jù)庫CDatabasedatabase database OpenEx T DSN stu CDatabase noOdbcDialog LPCTSTRlpszConnectString為連接字串 如 DNS memo UID sa PWD 123 DNS為數(shù)據(jù)源名稱 若lpszConnectString為NULL 則將出現(xiàn)數(shù)據(jù)源對(duì)話框 提示用戶選擇一個(gè)數(shù)據(jù)源 DWORDdwOptions為打開方式 缺省值0表示以共享方式打開數(shù)據(jù)庫 帶有寫訪問 不裝入ODBC游標(biāo)庫DLL 并且只有在沒有足夠信息形成連接時(shí)顯示ODBC連接對(duì)話框 2 關(guān)聯(lián)記錄集CRecordsetrecset 3 查詢記錄CStringsSql SELECT FROMtablename recset Open CRecordset forwardOnly sSql1 CRecordset readOnly 打開類型CRecordset dynaset 動(dòng)態(tài)記錄集 支持雙向游標(biāo) 并保持同所連接的數(shù)據(jù)源同步 對(duì)數(shù)據(jù)的更新操作可以通過一個(gè)fetch操作獲取 CRecordset snapshot 靜態(tài)快照 一旦形成記錄集 此后數(shù)據(jù)源的所有改變都不能體現(xiàn)在記錄集里 應(yīng)用程序必須重新進(jìn)行查詢 才能獲取對(duì)數(shù)據(jù)的更新 該類型記錄集也支持雙向游標(biāo) CRecordset dynamic 能在fetch操作里同步其它用戶對(duì)數(shù)據(jù)的重新排序 CRecordset forwardOnly 不支持逆向游標(biāo) sql查詢語句 查詢結(jié)果保存在記錄集中 指定創(chuàng)建記錄集時(shí)的常用選項(xiàng)CRecordset none 與其它所有選項(xiàng)互斥 可以更新 刪除 添加記錄 CRecordset appendOnly 不允許修改和刪除記錄 但可以添加記錄 CRecordset readOnly 記錄集是只讀的 CStringvar var可以轉(zhuǎn)換為其他類型的值while recset IsEOF 讀取數(shù)據(jù)庫 recset GetFieldValue id var recset MoveNext recset Close 關(guān)閉記錄集4 執(zhí)行sql語句CStringsSql sSql delete fromtablename 清空表database ExecuteSQL sSql sSql也可以為Insert Update等語句 記錄的查詢 使用CRecordSet類的Open 方法和Requery 成員函數(shù) 在使用CRecordSet的類對(duì)象之前 必須使用Open 函數(shù)來獲得有效的記錄集 再次查詢時(shí)使用Requery 函數(shù) 記錄的添加 只用AddNew 函數(shù) 不過必須保證在數(shù)據(jù)庫是在允許添加的模式打開的 記錄的刪除 調(diào)用Delete 函數(shù)完成 在使用完Delete 函數(shù)之后不用調(diào)用Update 函數(shù)了 記錄的修改 調(diào)用Edit 函數(shù)完成 在使用過Edit 函數(shù)之后需要調(diào)用Update 函數(shù)將修改結(jié)果存入數(shù)據(jù)庫 直接執(zhí)行SQL操作 調(diào)用CDatabase類的ExecuteSQL 函數(shù) 需要注意的是 由于不同DBMS提供的數(shù)據(jù)操作語句不盡相同 直接執(zhí)行SQL語句可能會(huì)破壞軟件的DBMS無關(guān)性 因此在應(yīng)用中應(yīng)當(dāng)慎用此類操作 10 1 3編程實(shí)現(xiàn) 例10 1 編寫一個(gè)基于MFC的數(shù)據(jù)庫應(yīng)用程序Myodbc 實(shí)現(xiàn)簡單的記錄瀏覽功能 并支持記錄的修改 增加和刪除 1 配置數(shù)據(jù)源APETEST用戶DSN 當(dāng)前用戶配置的數(shù)據(jù)源 只有當(dāng)前用戶可以使用系統(tǒng)DSN 系統(tǒng)配置的數(shù)據(jù)源 有訪問權(quán)限的用戶都可以使用文件DSN 由一個(gè)文本文件定義的數(shù)據(jù)源 安裝了驅(qū)動(dòng)程序的用戶可以使用 2 生成Myodbc應(yīng)用程序框架創(chuàng)建一個(gè)單文檔應(yīng)用程序Myodbc選擇 Databaseviewwithoutfilesupport 分析CMyodbcSet CMyodbcView 3 增加瀏覽記錄集和
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于黃岡的七下數(shù)學(xué)試卷
- 貨品分析培訓(xùn)課件圖片
- 肥城中考數(shù)學(xué)試卷
- 肛腸五項(xiàng)技術(shù)課件
- 燈塔市期末考試數(shù)學(xué)試卷
- 浮山中學(xué)數(shù)學(xué)試卷
- 高級(jí)中學(xué)期末數(shù)學(xué)試卷
- 2025年06月浙江溫州市蒼南縣衛(wèi)生健康系統(tǒng)面向社會(huì)招聘120編外輔助人員2人筆試歷年專業(yè)考點(diǎn)(難、易錯(cuò)點(diǎn))附帶答案詳解
- 2025年01月2025安徽池州市人民醫(yī)院勞務(wù)派遣辦公室文員招聘1人筆試歷年專業(yè)考點(diǎn)(難、易錯(cuò)點(diǎn))附帶答案詳解
- 銷售技能培訓(xùn)課件分類
- 年產(chǎn) 35 萬噸金屬結(jié)構(gòu)件項(xiàng)目(一期年產(chǎn) 6 萬噸金屬結(jié)構(gòu)件)環(huán)評(píng)報(bào)告書
- 地產(chǎn) 設(shè)計(jì)培訓(xùn)課件
- 中國古建筑行業(yè)市場發(fā)展現(xiàn)狀及投資前景展望報(bào)告
- 浙江杭州市2024-2025學(xué)年高一下學(xué)期6月期末考試物理試題及答案
- 員工勸退方案文案(3篇)
- 閔行區(qū)2024-2025學(xué)年下學(xué)期期末考試六年級(jí)數(shù)學(xué)試卷及答案(上海新教材滬教版)
- 借款合同模版
- 2025年高考全國一卷數(shù)學(xué)真題-答案
- 義務(wù)教育英語課程標(biāo)準(zhǔn)(2022年版)
- 企業(yè)異地作業(yè)管理制度
- 蛇咬傷的急救處理措施
評(píng)論
0/150
提交評(píng)論