连接数据库的方法---ODBC
2012-12-10 11:50?(分類:計算機程序)
技術博客,對抗遺忘……
1.ODBC ??Open Database Connectivity ? ?
1.1 簡介:
提供了一組對數據庫訪問的標準API(應用程序編程接口),這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
ODBC現在看來是一個比較古老的東西,然而,正因為它是一個比較成熟和古老的規范,ODBC在大多數DBMS上都做可以使用,可以說一個像樣的DBMS都應該支持ODBC 3.0或以上的版本。?
一個基于ODBC的應用程序對數據庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數據庫操作由對應的DBMS的ODBC驅動程序完成。也就是說,不論是FoxPro、Access還是Oracle數據庫,均可用ODBCAPI進行訪問。由此可見,ODBC的最大優點是能以統一的方式處理所有的數據庫。?
應用系統程序通過標準API進行數據源連接,因此開發過程中不需指定特定的數據庫系統,所以數據庫系統的開放性從此被建立。?
1.2 ?odbc API
其API共可分為以下九類:
I. 連接數據源(Connecting to a Data Source)
1. SQLAllocEnv. ?2. SQLAllocConnect. ??3. SQLConnect. ?4. SQLPriverConnect. ??5. SQLBrowseConnect.
II. 取得驅動程序及數據源的相關訊息
1.SQLDataSource ? ?2.SQLGetInfo. ?3SQLGetFunctions. ? ?4.SQLGetTypeInfo.
III. 設定及取得驅動程序的選項
1. SQLSetConnectOption. ? ?2. SQLGetConnectOption. ? ?3. SQLSetStmtOption. ? ??4. SQLGetStmtOption.
IV. 準備SQL指令之需求
1. SQLAllocStmt. ?2. SQLPrepare. ? ?3. SQLSetParam. ? ?4. SQLParamOptions. ? ?5. SQLGetCursorName. 6.SQLSetCursorName. 7. SQLSetScrollOptions.
V. 傳送及執行需求
1. SQLExecute. ? 2. SQLExecDirect. ? ?3. SQLNativeSql. ? ?4. SQLDescribeParanl. ? ?5. SQLNumParams. 6.SQLParamData. 7. SQLPutData.
VI. 取得執行結果及有關結果的訊息
1. SQLRowCount. ? ?2. SQLNumResultCols. ? ? 3. SQLDescribeCol. ? ?4. SQLColAttributes. ? 5. SQLBindCol. 6.SQLFetch. ? 7. SQLExtendedFetch. ? ?8. SQLGetData. ? 9. SQLSetDos. ? 10. SQLMoreResults. ? 11. SQLError.
VII. 取得有關數據源系統回錄(System tables or Catalog)的訊息
1. SQLColumnPrivileges. ? 2. SQLColumns. ? ?3. SQLForeignkeys. 4. SQLPrimaryKeys. 5.SQLProcedureColumns. 6. SQLProcedures. 7. SQLSpecialColumns. 8. SQLStatistics. 9. SQLTablePrivileges. 10. SQLTables.
VIII. 結束 SQL 指令需求
1. SQLFreeStmt. 2. SQLCancel. 3. SQLTransact.
IX. 結束與數據源的連接
1. SQLDisconnect. 2. SQLFreeConnect. 3. SQLFreeEnv.
以上所列之 ODBC API函數,我們發現全都以 SQL 為開頭。除以上述分類外,各個函數在其必要性或復雜度上, 更被規定在不同的幾個層級中 ODBC 函數的層級為核心層(Core level),第一層(Level 1),和第二層(Level 2)。我們再來看一個很基本的應用程序步驟是如何呢? 下圖告訴我們這個答案。
?
?
回顧 ODBC 的架構及其執行過程,ODBC 造就了"應用程序獨立性(Application Independency)"的特性,使應用程序不需在乎數據源是何種數據庫系統或者純粹是個資料或文本文件,只要相對驅動程序能完成銜接的功能,則應用程序即可達到高度的獨立性。?
?
1.3 MFC ?封裝的odbc類
MFC的?ODBC類對較復雜的ODBC API進行了封裝,提供了簡化的調用接口。?
MFC??ODBC將ODBC API封裝在類
CDatabase、主要功能是建立與數據源的連接;
CRecordSet、代表從數據源選擇的一組記錄(記錄集)
CFieldExchange支持記錄字段數據交換RFX,即記錄集字段數據成員與相應的數據庫的表的字段之間的數據交換?
CRecordView ?供了一個表單視圖與某個記錄集直接相連,利用對話框數據交替機制(DDX)在記錄集與表單視圖的控件之間傳輸數據
CDBException? ?代表ODBC類產生的異常。?
使用MFCODBC?開發數據庫應用程序的一般步驟
使用AppWizard訪問數據庫
使用類CDatabase連接數據庫
使用類CRecordSet打開記錄集、獲取數據
使用類CRecordSet的函數MoveFirst()、MoveLast()、MoveNext()、MovePrev()、IsBOF()和IsEOF()進行記錄集的遍 歷
使用類CRecordSet的函數AddNew和Update增加記錄
使用類CRecordSet的函數Edit和Update修改記錄
使用類CRecordSet的函數Delete?刪除記錄
使用類CDatabase的函數ExecuteSQL直接執行SQL命令
使用類CDatabase的函數BeginTrans、CommitTrans和Rollback處理事務
?
1.4 簡單的odbc使用方法
建立數據源后,創建包含數據源的程序,在程序中將變量與數據源字段關聯,不用編寫具體代碼,可以查看
數據庫數據,?
?
轉載于:https://www.cnblogs.com/centos2017/p/7896826.html
總結
以上是生活随笔為你收集整理的连接数据库的方法---ODBC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关禅道的学习记录
- 下一篇: Nachos LAB1 线程机制和线程调