目录 1
简介 1
0.1各章摘要…………………………………………………………………………(1 )0.2约定 2
0.3 SQLSTATE返回码 2
0.4需求 2
第一章SQL和调用层接口的历史回顾 3
1.1关系模型 3
1.2 Codd的十二条规则 3
1.2.1基础规则 4
1.2.2结构化规则:只有R-表和可更改的视口 4
1.2.3数据的完整性 4
1.2.4数据操纵 5
1.2.5数据的逻辑、物理和分布无关性 5
1.3关系语言的SQL实现 5
1.4 SQL标准 6
1.5调用层接口 7
第二章ODBC的结构 9
2.1 ODBC驱动程序管理器和驱动程序 9
2.2ODBC接口 10
2.2.1分配和释放 10
2.2.2连接 11
2.2.3执行SQL语句 11
2.2.4接收结果 11
2.2.5事务控制 11
2.2.6错误处理和其它事项 11
2.3 ODBC的扩展功能 11
2.4 SQL的适应层 12
2.5数据类型 13
2.6错误处理和信息 13
2.6.6取消 14
2.6.7资源控制 14
2.6.5不能存取的句柄 14
2.6.8字符串长度 14
2.6.2连接的变化 14
2.6.3状态转换错误 14
2.6.1连接错误 14
2.6.4事务重新运行 14
2.7基本流程控制 15
第三章API函数 17
3.1返回码 17
3.2检测故障 18
3.3检索错误 18
3.3.1 SQLError 19
3.3.2解释和示例 19
3.5本地错误 22
3.6小结 22
3.4 SQL状态 22
3.3.3错误处理和返回码 22
第四章与数据源连接 23
4.1驱动程序和数据源 23
4.2分配环境 24
4.2.1 SQLAllocEnv 24
4.2.2解释和示例 24
4.2.3错误处理和返回码 25
4.3释放环境句柄 25
4.3.1 SQLFreeEnv 25
4.3.2解释和示例 26
4.4分配连接句柄 26
4.4.1 SQLAllocConnect 26
4.4.2解释和示例 27
4.5利用核心函数与数据源连接 28
4.5.1 SQLConnect 28
4.4.3错误处理和返回码 28
4.5.2解释和示例 29
4.5.3错误处理和返回码 32
4.6与数据源断开 32
4.6.1 SQLD)isconnect 32
4.6.2解释和示例 33
4.6.3错误处理和返回码 33
4.7释放连接句柄 34
4.7.1 SQLFreeConnect 34
4.7.2解释和示例 34
4.7.3错误处理和返回码 34
4.8找出系统可用资源 35
4.8.1 SQLDataSource 35
4.8.3错误处理和返回码 37
4.8.2解释和示例 37
4.9扩展层连接函数 41
4.10连接字符串 41
4.10.1 SQLDriverConnect 41
4.10.2解释和示例 43
4.10.3驱动程序管理器提示 43
4.10.4驱动程序提示 45
4.10.5错误处理和返回码 46
4.11找出系统的驱动程序 46
4.11.1 SQLDrivers 46
4.11.2解释和示例 46
4.11.3文件用途 47
4.12.1应用系统的类型 48
4.12如果挑选连接函数 48
4.12.2互用程度 48
4.11.5连接函数 48
4.11.4文件掩码 48
4.11.6错误处理和返回码 48
4.12.3应用系统和用户 49
4.13核心之外:使用数据源 49
4.14与驱动程序连接 53
4.14.1建立驱动程序清单 53
4.14.2 自动注册的实现 57
4.15设置和检索连接选项 62
4.15.1 SQLSetConnectOption 62
4.15.2解释和示例 63
4.15.3错误处理和返回码 66
4.15.4 SQLGetConnectOption 66
4.15.5解释和示例 67
4.17确定驱动程序的能力和API支持 68
4.17.1 SQLGetInfo 68
4.16驱动程序定义的连接选项 68
4.17.2解释和示例 69
4.17.3错误处理和返回码 70
4.17.4 SQLGetFunctions 70
4.17.5解释和示例 71
4.17.6错误处理和返回码 71
5.2.1规则一:驱动程序必须支持语句 73
5.2三个规则 73
5.1 SQL适应层 73
第五章SQL语句 73
5.2.2规则二:重视各个数据源之间的区别 74
5.2.3用参数代替常数 74
5.3适应层的SQL语句 74
5.3.1确定SQL的适应性 74
5.3.2最小层语句 75
5.3.3核心层语句 82
5.3.4扩展层语句 90
5.4真实情况 91
5.5.1 读/写能力 92
5.5确定支持的语句 92
5.5.2 SELECT 93
5.5.3联合 97
5.5.4 ALTER TABLE 97
5.5.5定位语句 97
5.5.6 CREATE TABLE 97
5.5.7其它语句 98
5.6建立语句 98
5.6.1表的标识 98
5.6.2相关名 100
5.6.3列别名 102
5.6.4带引号的标识符 103
5.7参数 104
5.8小结 104
6.1.1 SQLAllocStmt 107
第六章语句执行 107
6.1分配和释放语句 107
6.1.2解释和示例 108
6.1.3错误处理和返回码 109
6.1.4 SQLFreeStmt 109
6.1.5解释和示例 111
6.1.6错误处理和返回码 112
6.2目录函数 112
6.2.1公共函数 113
6.2.2公共结果列 114
6.3表的信息 115
6.3.1 SQLTables 115
6.3.2解释和示例 116
6.4.1 SQLColumns . 121
6.4列的信息 121
6.3.3错误处理和返回码 121
6.3.4 SQLTables标准结果集合 121
6.4.2解释和示例 122
6.4.3 SQLColumns标准结果集合 124
6.5索引信息 125
6.5.1 SQLStatistics 125
6.5.2解释和示例 125
6.5.3 SQLStatistics标准结果集合 127
6.6特殊列的信息 129
6.6.1 SQLSpecialColumns 129
6.6.2解释和示例 131
6.6.3 SQLSpecialColumns标准结果集合 131
6.7.2 SQLPrimaryKeys和SQLForeignKeys 133
6.8语句执行 133
6.7.3SQLProcedures和SQLProcedureColumns 133
6.7.1 SQLTablePrivileges和SQLColumnPrivileges 133
6.7第二扩展层目录函数 133
6.8.1直接执行 134
6.8.2有准备的执行 135
6.8.3参数化的执行 137
6.9在执行时传递参数数据 141
6.9.1 SQLParamData 141
6.9.2 SQLPutData 142
6.9.3解释和示例 143
6.94错误处理和返回码 147
6.10传递参数数组 147
6.10.1 SQLParamOptions 147
6.10.2解释和示例 148
6.10.3错误处理和返回码 148
6.11异步执行 149
6.11.1 SQLCancel 150
6.11.2解释和示例 150
6.12ODBC的SQL扩展 151
6.11.3错误处理和返回码 151
6.12.1外部结合 152
6.12.2例程 153
6.12.3 日期、时间和时间戳数据 153
6.12.4 LIKE谓词转义字符 154
6.12.5标量函数 155
6.13本地SQL 157
6.13.1 SQLNativeSql 157
6.13.2解释和示例 158
6.13.3错误处理和返回码 158
6.14小结 158
第七章检索结果 159
7.1何谓结果? 159
7.2检索与结果集合相关的信息 160
7.2.1 SQLNumResultCols 162
7.2.2 SQLDescribeCol 163
7.2.3 SQLColAttributes 166
7.2.4结果集合代码示例 169
7.2.5 SQLRowCount 174
7.3基本结果函数 176
7.3.1 SQLFetch 183
7.3.2 SQLGetData 186
7.4扩展的结果函数 190
7.4.1 SQLExtendedFetch 190
7.4.2块光标 191
7.4.3可滚动光标 192
7.4.4一个SQLExtendedFetch示例 195
7.5修改结果集合中的数据 199
7.5.1步骤1 199
7.5.2步骤2 200
7.5.3步骤3 200
7.5.4步骤4 201
7.5.6 SQLSetCursorName 204
7.5.5 SQLGetCursorName 204
7.6检索多个结果集合 205
7.6.1 SQLMoreResults 205
7.6.2解释和示例 206
7.7小结 207
第八章事务处理 209
8.1用ODBC进行事务处理 209
8.1.1 SQLTransact 212
8.1.2解释和示例 213
8.2隔离层 214
8.2.1读未提交的 215
8.2.4系列化 216
8.3显式加锁 216
8.2.5版本化 216
8.2.2读提交的 216
8.2.3可重复的读 216
8.4小结 217
第九章创建表 219
9.1一个可互用的CREATETABLE 219
9.2获得驱动程序支持的数据类型 219
9.2.1 SQLGetTypeInfo 221
9.2.2解释和示例 222
9.3.2函数 224
9.3 CREATETABLE例程 224
9.3.1数据结构 224
9.4小结 254
附录A SQLSTATE返回码 255
附录B SQL数据类型的缺省转换和支持的转换 281
附录C源代码文件 287
关于作者 289
磁盘担保 291