內容簡介
本書以如何建立一個visualc++.net資料庫應用程式為主線,從microsoft通用資料庫訪問體系出發,將visualc++.net支持的資料庫訪問技術odbc、dao、oledb、ado和ado.net逐一進行了詳細的介紹。以文字和片段代碼相結合的方式詳細地說明了使用各個技術建立資料庫應用程式的基本步驟,並助提供了完整的示例工程以便於讀者舉一反三,全面掌握數據訪問技術。
本書條理清楚,內容全面、深入,敘述通俗易懂,適合有一定基礎的大專院校師生、企業技術開發人員學習參考,也適合各類培訓班學員學習 Visual C++ .NET資料庫開發技術。
圖書目錄
第1部分VisualC++.NET資料庫開發技術概述
第1章.NET平台概述 2
1.1.NET平台 2
1.2.NET框架 3
1.2.1公共語言運行庫 3
1.2.2.NET框架類庫 8
第2章VisualC++.NET資料庫訪問技術概述 10
2.1VisualC++.NET資料庫訪問技術 10
2.1.1ODBC 10
2.1.2DAO 12
2.1.3OLEDB 12
2.1.4ADO 13
2.1.5ADO.NET 14
2.2通用資料庫訪問架構體系 15
2.2.1ADO和OLEDB 16
2.2.2RDS概述 17
2.2.3MDACSDK新版本特點 19
2.3VisualC++.NET資料庫開發技術的特點 19
2.4選擇VisualC++.NET資料庫開發技術 20
2.4.1選擇DAO和ODBC 20
2.4.2選擇OLEDB 21
2.4.3選擇ADO.NET和ADO 21
2.4.4總結 23
第2部分ODBC資料庫訪問技術
第3章ODBC資料庫訪問技術概述 26
3.1ODBC概述 26
3.2ODBC的體系結構 26
3.3ODBC的數據操作類型 27
3.4ODBC的跟蹤和診斷技術 28
3.4.1返回代碼 28
3.4.2診斷記錄 29
3.5使用ODBC需要包含的頭檔案和庫檔案 31
3.6配置ODBCDSN 31
3.6.1靜態地配置ODBCDSN 31
3.6.2動態地配置ODBCDSN 34
第4章ODBCAPI編程技術 39
4.1ODBCAPI概述 39
4.2句柄 39
4.3ODBCAPI應用程式開發基本步驟 40
4.3.1建立應用程式的ODBC環境 40
4.3.2分配連線句柄和設定連線的屬性 40
4.3.3連線到數據源 42
4.3.4構造和執行SQL語句 46
4.3.5記錄的添加、刪除和更新 51
4.3.6取回查詢結果 53
4.3.7斷開同數據源的連線 55
4.3.8釋放ODBC環境 56
4.3.9示例程式 56
4.4典型ODBCAPI程式示例 58
4.4.1定義全局變數和宏 58
4.4.2定義統一的錯誤處理程式 59
4.4.3定義主控程式 60
第5章MFCODBC編程技術 63
5.1MFCODBC概述 63
5.2MFCODBC基本類概述 64
5.2.1CDatabase 64
5.2.2CRecordSet 65
5.2.3CRecordView 68
5.3MFC封裝ODBCAPI的類庫技術 69
5.3.1RFX 70
5.3.2DDX 71
5.3.3DDX和RFX的關係及比較 73
5.4MFCODBC應用程式框架和開發步驟 73
5.4.1建立資料庫連線 73
5.4.2創建記錄集 74
5.4.3操作記錄集 75
5.4.4執行SQL語句 80
5.4.5斷開資料庫連線 81
5.4.6事務處理 81
5.4.7示例程式 83
第3部分DAO資料庫訪問技術
第6章DAO資料庫訪問技術概述 86
6.1DAO概述 86
6.2DAO對象 86
6.3DAO的環境支持 87
6.4MFCDAO概述 87
6.5DAO對象到MFC類的映射 88
6.5.1MFC類和對應的DAO對象 88
6.5.2MFC如何管理未映射到類的DAO對象 88
6.5.3MFC中未公開的DAO對象 89
6.5.4MFC如何訪問資料庫引擎 89
6.5.5MFC和DAO的安全性 89
6.6MFCDAO基本類概述 89
6.7MFCDAO應用程式開發的基本步驟 91
6.7.1建立資料庫連線 91
6.7.2創建記錄集 91
6.7.3操作記錄集 93
6.7.4事務處理 98
6.7.5示例程式 99
第4部分OLEDB資料庫訪問技術
第7章OLEDBAPI編程技術 104
7.1OLEDB技術概述 104
7.1.1通用數據訪問技術 104
7.1.2OLEDB技術 104
7.2OLEDB對象 106
7.2.1數據源對象 106
7.2.2會話對象 106
7.2.3命令對象 107
7.2.4行集對象 107
7.2.5事務對象 108
7.2.6枚舉器對象 108
7.2.7錯誤對象 108
7.3OLEDBAPI應用程式的基本框架和示例 108
7.3.1初始化環境 110
7.3.2初始化數據源對象 110
7.3.3獲取會話對象和執行一個命令 114
7.3.4從行集獲取數據 116
7.3.5示例程式 123
7.4OLEDBAPI的高級技術 124
7.4.1行集的增強功能 124
7.4.2處理大數據類型 126
7.4.3數據操作 131
7.4.4事務 138
第8章OLEDB使用者 140
8.1OLEDB使用者概述 140
8.2OLEDB使用者模板 140
8.2.1數據源類和會話類 141
8.2.2訪問器類和行集合類 141
8.2.3命令類和表類 143
8.2.4用戶記錄類 150
8.2.5模式行集合 152
8.3OLEDB使用者屬性 152
8.3.1db_source屬性 152
8.3.2db_table屬性 154
8.3.3db_command屬性 155
8.3.4db_column屬性 158
8.3.5db_param屬性 160
8.3.6db_accessor屬性 161
8.4建立ATLOLEDB使用者對象 162
8.4.1使用嚮導建立ATLOLEDB使用者對象 162
8.4.2手動建立ATLOLEDB使用者對象 165
8.5建立OLEDB使用者應用程式 166
8.5.1創建屬性化OLEDB使用者Win32控制台應用程式 166
8.5.2創建模板類OLEDB使用者Win32控制台應用程式 171
8.5.3創建屬性化OLEDB使用者.NET控制台應用程式 177
8.5.4創建屬性化OLEDB使用者MFC應用程式 179
第9章OLEDB使用者的增強功能 184
9.1使用資料庫屬性簡化數據訪問 184
9.1.1屬性插入的用戶記錄類 184
9.1.2設定行集合屬性 185
9.1.3示例程式 185
9.2嚮導生成的訪問器中的欄位狀態數據成員 188
9.3獲取數據的方式 190
9.4使用模式行集合獲取元數據或模式信息 191
9.4.1目錄/模式模型 193
9.4.2查詢模式信息時使用限制 193
9.4.3示例程式 194
9.5使用書籤 194
9.5.1實例化書籤 194
9.5.2從提供程式中請求書籤列 195
9.5.3將書籤項添加到列映射 196
9.5.4示例程式 196
9.6更新行集合 197
9.6.1支持更新操作 198
9.6.2在行中設定數據 198
9.6.3向行集合中插入行 198
9.6.4從行集合中刪除行 199
9.6.5立即更新和推遲更新 199
9.6.6示例程式 200
9.7遍歷簡單行集合 201
9.8使用存儲過程 203
9.8.1定義存儲過程 204
9.8.2存儲過程中的輸出參數 205
9.8.3存儲過程中的行計數 205
9.8.4擴展存儲過程 206
9.8.5創建擴展存儲過程 206
9.8.6向資料庫中註冊擴展存儲過程 207
9.8.7調用擴展存儲過程 209
9.8.8向擴展存儲過程中添加功能 209
9.8.9使用一個存儲過程返回多個結果集 210
9.8.10調試擴展存儲過程 210
9.9使用訪問器 211
9.9.1確定需要使用的訪問器類型 211
9.9.2在一個行集合上使用多個訪問器 212
9.9.3使用CDynamicAccessor訪問器 213
9.9.4使用CDynamicStringAccessor訪問器 214
9.9.5使用CDynamicParameterAccessor訪問器 215
9.9.6重寫動態訪問器 217
9.9.7使用手動訪問器 218
9.10檢索XML數據 221
9.10.1使用CStreamRowset檢索XML數據 222
9.10.2使用CXMLAccessor檢索XML數據 222
9.10.3示例程式 224
9.11使用OLEDB記錄視圖 228
9.12將接收通知功能添加到OLEDB使用者 229
9.13在OLEDB中使用現有的ADO記錄集 230
9.14OLEDB行集的持久性操作 230
9.14.1將行集持久化 230
9.14.2將已持久化的行集載入到ADO記錄集 231
9.14.3示例程式 231
9.15在行集合中檢索BLOB對象 232
第10章OLEDB提供者 234
10.1OLEDB提供者概述 234
10.2OLEDB規範級別支持 234
10.3為何要創建OLEDB提供程式 234
10.4OLEDB提供程式的類型 235
10.5OLEDB提供者體系結構 235
10.5.1數據源和會話 235
10.5.2強制接口和可選接口 236
10.5.3屬性映射 239
10.5.4用戶記錄 241
10.6創建OLEDB提供程式 242
10.6.1創建OLEDB提供程式實例 242
10.6.2創建簡單的唯讀提供程式示例 251
10.6.3創建可更新的提供程式 259
10.7增強OLEDB提供程式功能 267
10.7.1添加接口到提供程式 267
10.7.2在提供程式中引用屬性 268
10.7.3在提供程式中設定屬性 269
10.7.4在提供程式中動態綁定列 269
10.7.5在提供程式中支持自由執行緒處理 271
10.7.6轉換提供程式不支持的數據 271
10.7.7提供程式支持通知訊息的功能 271
10.7.8提供程式支持模式行集合 273
10.7.9在提供程式中實現對書籤的支持 278
10.8調試提供程式 283
10.9測試提供程式 283
10.10一致性測試提供程式 284
10.11OLEDB提供程式資源池和服務 285
10.11.1OLEDB應用程式中的資源池 285
10.11.2啟用和禁用OLEDB服務 286
第5部分ADO資料庫訪問技術
第11章ADO技術概述 290
11.1ADO概述 290
11.1.1ADO體系結構 290
11.1.2數據提供者 291
11.1.3服務提供者 291
11.1.4服務組件 292
11.1.5ADO技術特點 292
11.2ADO對象模型 292
11.3ADO編程模型 294
11.3.1ADO編程模型概述 294
11.3.2ADO編程模型細節 294
11.3.3ADO的特有數據類型 299
11.3.4ADO編程接口 305
11.4ADO事件模型 307
11.4.1事件類型 307
11.4.2捕獲ADO事件 308
11.4.3示例程式 308
第12章ADO開發應用程式技術 312
12.1ADO應用程式框架和開發流程 312
12.1.1在VisualC++中使用ADO 312
12.1.2建立資料庫連線 321
12.1.3建立ADO記錄集 324
12.1.4操作記錄集 332
12.1.5錯誤處理 341
12.1.6事務處理 342
12.1.7一個完整的示例項目 345
12.2ADO記錄集的持久性操作 349
12.2.1ADO記錄集與記憶體之間的轉化操作 349
12.2.2ADO記錄集與XML檔案之間的轉化操作 350
12.2.3示例程式 350
12.3ADO讀寫BLOB技術 356
12.3.1讀取BLOB數據 356
12.3.2寫BLOB數據 356
12.3.3示例程式 357
12.4ADO記錄集與OLEDB行集 358
12.4.1ADORecordsetConstruction接口 358
12.4.2示例程式 359
12.5VC++對ADO的擴展 360
12.5.1IADORecordBinding接口 360
12.5.2支持ADO擴展所需的頭檔案 361
12.5.3綁定Recordset的欄位 361
12.5.4綁定條目和綁定條目宏 361
12.5.5示例程式 363
第6部分ADO.NET資料庫訪問技術
第13章ADO.NET技術概述 368
13.1ADO.NET概述 368
13.2ADO.NET的設計目標 369
13.3ADO.NET結構 370
13.3.1XML和ADO.NET 370
13.3.2ADO.NET組件 370
13.3.3選擇DataReader與DataSet 371
13.4ADO.NET與ADO 372
13.4.1讀取數據 372
13.4.2DataSet、DataTable和Recordset對象 374
13.4.3轉換現有代碼 375
13.4.4數據更新 376
13.4.5對XML的擴展支持 377
13.5.NETFramework數據提供程式概述 379
13.5.1.NETFramework數據提供程式 379
13.5.2名稱空間組織 383
13.5.3選擇.NETFramework數據提供程式 384
13.6使用.NETFramework數據提供程式訪問數據 385
13.6.1連線到數據源 385
13.6.2執行命令 391
13.6.3執行資料庫操作和修改數據 393
13.6.4使用DataReader檢索數據 396
13.6.5從DataAdapter填充DataSet 398
13.6.6使用DataAdapter和DataSet更新資料庫 401
13.6.7自動生成的命令 403
13.6.8將參數用於DataAdapter 410
13.6.9將存儲過程用於命令 416
13.7ADO.NETDataSet 423
13.7.1DataTableCollection 424
13.7.2DataRelationCollection 425
13.7.3ExtendedProperties 425
13.7.4創建DataSet 425
13.7.5向DataSet添加DataTable 425
13.7.6添加表間關係和導航表間關係 426
13.7.7DataSet事件 426
13.7.8示例程式 427
第14章ADO.NET開發應用程式技術 429
14.1獲取資料庫架構信息 429
14.1.1從DataReader中獲取架構信息 429
14.1.2示例程式 430
14.2獲取錯誤信息 432
14.2.1為DataSet對象獲取擴展錯誤信息 432
14.2.2獲取數據提供程式提供的異常信息 433
14.2.3示例程式 433
14.3調用參數化存儲過程 437
14.3.1用DataReader對象獲取結果記錄集、返回值和輸出參數 437
14.3.2用命令對象的ExecuteScalar成員方法檢索參數值 437
14.3.3用命令對象的ExecuteNonQuery成員方法檢索參數值 437
14.3.4示例程式 438
14.4執行事務 447
14.4.1使用ADO.NET執行事務 448
14.4.2在分散式事務中登記 448
14.4.3示例程式 449
14.5在OleDbConnection對象中使用DataLinkFiles 450
14.5.1創建UDL檔案 451
14.5.2使用UDL檔案的優缺點 451
14.5.3示例程式 452
14.6ADO.NET操作XML技術 453
14.6.1將DataSet對象中的數據持續化到XML 453
14.6.2將XML數據讀到DataSet對象 454
14.6.3利用OpenXML方法執行批(Bulk)更新和批插入 455
14.6.4示例程式 455
14.7ADO.NET讀寫BLOB技術 463
14.7.1從資料庫中獲取BLOB值 463
14.7.2將BLOB值寫入資料庫 463
14.7.3使用Byte數組一次讀寫完整的BLOB數據 464
14.7.4以Chunking方式讀寫BLOB數據 464
14.7.5示例程式 465
14.8訪問ADO記錄集 476
14.8.1使用ADO記錄集填充DataSet 477
14.8.2示例程式 477