第一篇 Oracle Forms 1
目录 1
第一章 概述 3
1.1 Oracle Forms的基本概念及结构 3
1.1.1 Oracle Forms模块 3
1.1.2 Oracle Forms对象 4
1.2 Oracle Forms的应用开发过程 11
1.2.1 设计 12
1.2.2 生成 12
1.2.3 运行 12
1.3 Oracle Forms的用户界面 13
1.3.1 菜单 13
1.2.4 模块文件 13
1.3.2 功能键 14
1.3.3 联机帮助 15
第二章 Oracle Forms Runform——运行一个应用 16
2.1 Runform的用户界面 16
2.1.1 信息行和状态行 16
2.1.2 菜单 17
2.1.3 功能键 20
2.2 Runform的基本操作 23
2.2.1 启动和退出 23
2.2.2 在form各处移动光标 23
2.2.3 界面对象的操作 26
2.3.2 按查询条件检索记录 34
2.3 查询数据库 34
2.3.1 检索全部记录 34
2.3.3 设置查询条件 35
2.3.4 统计查询记录 41
2.4 修改数据库 41
2.4.1 删除记录 41
2.4.2 生成新记录 42
2.4.3 修改记录时的限制 42
2.5 提交/回滚事务 42
2.5.1 提交一个事务 42
2.5.2 回滚一个事务 43
2.6 使用菜单 43
2.6.2 选择菜单项 44
2.6.1 激活和退出菜单 44
2.6.3 快速选择键 45
2.6.4 背景菜单 45
2.6.5 块菜单 46
2.6.6 在菜单中使用操作系统命令 46
2.6.7 菜单参数 46
第三章 Oracle Forms Designer概述 47
3.1 Designer的用户界面 47
3.1.1 信息行和状态行 48
3.1.2 菜单 48
3.1.3 功能键 52
3.3 模块管理 54
3.3.1 打开模块 54
3.2 Designer的启动和退出 54
3.3.2 激活模块 56
3.3.3 激活窗口 56
3.3.4 模块存取位置选择 56
3.3.5 存储模块 56
3.3.6 恢复模块最近的存储版本 57
3.3.7 关闭模块 57
3.3.8 删除模块 57
3.3.9 模块改名 57
3.3.10 模块格式转换 57
3.3.11 生成模块 57
3.4 在Designer中运行form 58
3.5 设计工具及其操作 58
3.5.2 图形编辑器 59
3.5.1 默认块生成工具 59
3.5.3 菜单编辑器 60
3.5.4 对象清单 60
3.5.5 属性定义表 62
3.5.6 PL/SQL编辑器 64
3.5.7 表/列浏览清单 66
3.5.8 内部程序浏览清单 67
3.6 文本编辑 68
3.6.1 编辑命令 69
3.6.2 文本编辑器 69
3.6.3 输入/输出文本 69
3.7 对象的层次结构和Zoom命令 70
3.9.1 对象区 71
3.8 属性定义表中的Next和Previous命令 71
3.9 对象区和对象锁 71
3.9.2 对象锁 72
第四章 构造具有单一form模块的应用 73
4.1 概述 73
4.1.1 打开form模块 73
4.1.2 生成form 73
4.1.3 在Designer中运行form 74
4.1.4 设置form模块的各种属性 74
4.2 图形编辑器 77
4.2.1 图形编辑器的用户界面 77
4.2.2 存储编辑结果 82
4.2.3 对项和图形对象的基本操作 83
4.3 设置屏幕显示属性 85
4.3.1 视显属性的类型和格式元素 86
4.3.2 设置视显属性 88
4.3.3 调色板 92
4.3.4 资源文件 93
4.4 定义form对象 94
4.4.1 块和块关系 94
4.4.2 项 106
4.4.3 窗口和画板视图 117
4.4.4 对话框 125
4.4.5 编辑器 126
4.4.6 记录组 129
4.4.7 值清单 132
4.4.8 form参数 138
4.5 图象 142
4.5.1 输入图象 142
4.5.2 图象项 143
4.5.3 用于图象项的触发器和内部程序 144
4.6 触发器 145
4.6.1 事件和触发器 145
4.6.2 定义、编译和修改触发器 149
4.6.3 触发器编码 153
4.6.4 在触发器中处理运行时的错误 155
4.6.5 定义用于EnterQuery方式的触发器 158
4.7 PL/SQL 160
4.7.1 在PL/SQL语句中引用Oracle Forms对象 161
4.7.2 变量 165
第五章 在应用中使用菜单 168
5.1 使用默认的form菜单 168
5.2 构造具有用户菜单模块的应用 169
5.2.1 打开菜单模块 171
5.2.2 菜单编辑器 171
5.2.3 定义菜单 174
5.2.4 定义菜单项命令 175
5.2.5 生成菜单并连接到form上 177
5.3 在基本的用户菜单中加入特殊的属性和功能 180
5.3.1 定义特殊类型的菜单项 180
5.3.2 定义助记键和快速选择键 181
5.3.4 定义菜单标题 182
s.3.3 在菜单项中显示图符 182
5.3.5 定义背景菜单 183
5.3.6 定义可移动菜单 184
5.3.7 使用置换参数 184
5.3.8 定义菜单项提示信息 185
5.4 菜单安全机制 186
5.4.1 定义角色 187
5.4.2 修改角色定义 187
5.4.3 授予“角色管理”特权 188
5.4.4 指定菜单模块的可用角色 188
5.4.5 授权角色存取菜单项 188
5.5.2 编写启动代码 189
5.5.1 编写用户程序 189
5.5 程序控制 189
5.4.6 设置Use Security属性 189
5.5.3 用于菜单维护的内部程序 190
第六章 构造具有库模块的应用 191
6.1 概述 191
6.1.1 定义一个库 192
6.1.2 连接一个库 193
6.1.3 生成库运行文件 196
6.1.4 编辑被连接的库 196
6.2 过程和包 197
6.2.1 概述 197
6.2.2 定义用户程序 197
6.2.3 PL/SQL ProgramUnits浏览清单 198
6.2.4 过程语法 199
6.2.5 函数语法 200
6.2.6 定义参数 201
6.2.7 PL/SQL包 203
第七章 构造具有多个form模块的应用 204
7.1 form调用 204
7.1.1 内部过程CALL_FORM 205
7.1.2 内部过程NEW_FORM 207
7.1.3 在Query-Only方式下调用form 207
7.2 在form调用过程中的数据库事务管理 208
7.2.1 登记与提交 208
7.2.2 存储点 209
7.2.3 回滚 209
7.2.4 用登记和回滚方式管理事务 211
7.3 参数传递 214
7.3.1 form参数和参数列表 214
7.3.2 Default参数列表 214
7.3.3 form参数的合法性检查 215
7.3.4 被调用form中的参数初值 215
7.4 使用全局变量 216
7.5 form模块和菜单模块的集成 216
7.5.1 菜单与数据库的交互 216
7.5.2 菜单和被调用的form 216
7.5.3 主管菜单 217
7.5.4 内部过程REPLACE_MENU 217
7.6.1 拷贝和引用 218
7.6.2 拷贝对象 218
7.6 拷贝和引用机制 218
7.6.3 引用对象 219
7.6.4 模块安全性 220
第八章 Oracle Forms应用的调试 221
8.1 在调试方式下运行form 221
8.2 调试信息 221
8.3 调试器 222
8.3.1 运行时启动调试器 222
8.3.2 调试器的选项 222
8.3.3 断点处理 223
8.4 辅助调试用的报告 224
9.2 SQL*ReportWriter的构成 227
9.1 SQL*ReportWriter的基本概念 227
第九章 SQL*ReportWriter介绍 227
第二篇 报表生成器SQL*ReportWriter 227
9.3 报表的存储和运行 228
9.4 报表的构成 229
9.5 报表的类型 230
9.6 SQL*ReportWriter交互界面的启动 231
9.7 约定 234
9.8 功能键 235
第十章 定义报表 239
10.1 报表的开发过程 239
10.2 Action菜单 239
10.3 Query Screen(查询屏幕) 241
10.4 Field Screen(域屏幕) 244
10.5 Summary Screen(统计屏幕) 252
10.6 Group Screen(组屏幕) 256
10.7 Text Screen(文本屏幕) 266
10.8 Report Screen(报表屏幕) 271
10.9 Parameter Screen(参数屏幕) 272
第十一章 SQL*ReportWriter的综合实例 278
第十二章 SQL*ReportWriter的Runtime界面 283
12.1 报表运行命令RUNREP 283
12.2 报表卸出命令DUMPREP 284
12.3 报表运行文件生成命令GENREP 284
12.4 报表装入命令LOADREP 285
12.5 打印设备定义命令PRINTDEF 285
12.6 显示设备定义命令TERMDEF 285
12.7 报表版本升级命令MOVEREP 286
13.1 ORACLE预编译程序概述 289
13.1.1 ORACLE预编译程序 289
第三篇 PRO*C和OCI程序设计 289
第十三章 PRO*C程序设计基础 289
13.1.2 SQL和PL/SQL语言 290
13.1.3 ORACLE预编译程序的性能 290
13.1.4 ORACLE预编译程序遵守的工业标准 291
13.2 PRO*C程序的组成及举例 292
13.3 PRO*C程序中嵌入的SQL语句 294
13.3.1 PRO*C程序中能嵌入的SQL语句 294
13.3.2 嵌入式SQL语句的书写文法 294
13.3.3 可执行SQL语句和说明性SQL语句 295
13.4 说明段 296
13.5.2 内部数据类型 298
13.5 ORACLE数据类型及转换 298
13.5.1 ORACLE数据类型 298
13.5.3 SQL伪列和函数 299
13.5.4 外部数据类型 301
13.5.5 数据类型转换 306
13.6 SQL变量的说明和引用 307
13.6.1 宿主变量的说明和引用 308
13.6.2 指示器变量的说明和引用 311
13.6.3 指针宿主变量的说明和引用 314
13.6.4 宿主数组的说明和引用 315
13.6.5 VARCHAR变量的说明和引用 317
13.7 数据类型等价 319
13.7.1 宿主变量等价 319
13.7.2 用户定义类型等价 321
13.8 字符数据的处理 322
13.8.1 字符数组 322
13.8.2 字符指针 324
13.8.3 VARCHAR变量 325
13.8.4 指向VARCHAR变量的指针 325
13.9 SQL通讯区(SQLCA)和ORACLE通讯区(ORACA) 326
13.9.1 SQLCA的说明 326
13.9.2 ORACA的说明 330
13.9.3 SQLCODE说明 333
13.9.4 INCLUDE语句 333
13.10 应用程序与ORACLE的连接 334
13.11 并行登录 335
13.11.1 与并行登录有关的几个概念 336
13.11.2 显式登录 337
13.11.3 隐式登录 341
13.12 关于PRO*C程序格式的几点说明 343
第十四章 错误处理 345
14.1 错误处理的必要性与方法 345
14.2 使用WHENEVER语句处理错误 345
14.2.1 WHENEVER语句的格式 345
14.2.2 WHENEVER语句的使用 347
14.3 显式检查SQLCA 349
14.4 实例 349
15.1.1 INSERT语句 352
15.1 数据插入应用程序的设计 352
第十五章 嵌入SQL程序设计 352
15.1.2 数据插入应用举例 354
15.2 数据更新应用程序的设计 357
15.2.1 UPDATE语句 357
15.2.2 数据更新应用举例 359
15.3 数据删除应用程序设计 360
15.3.1 DELETE语句 361
15.3.2 数据删除应用程序设计 363
15.4 查询应用程序的设计 363
15.4.1 SELECT语句 363
15.4.2 返回单行的查询 366
15.4.3 返回多行的查询 375
16.1 使用嵌入式PL/SQL块的优点 391
第十六章 使用嵌入式PL/SQL 391
16.2 嵌入式PL/SQL块的构成 394
16.3 使用宿主变量 394
16.3.1 使用宿主变量 394
16.3.2 使用指示器变量 399
16.3.3 使用宿主数组 400
16.4 使用光标 403
16.5 存储子程序 404
16.5.1 建立存储子程序 404
16.5.2 存储子程序的引用 406
16.6 使用动态SQL方法 409
17.1.2 事务及数据库保护 410
17.1.1 有关术语 410
17.1 事务及数据保护 410
第十七章 事务的定义和控制 410
17.2 事务的提交与回滚 411
17.2.1 事务的开始和结束 411
17.2.2 事务的提交 411
17.2.3 事务保留点 413
17.2.4 事务回滚 414
17.2.5 只读事务 416
17.3 封锁数据库对象 417
17.3.1 行封锁 417
17.3.2 表封锁 418
17.3.3 分布事务处理 420
18.1.2 动态SQL的优缺点 422
18.1.1 什么是动态SQL 422
18.1 动态SQL概述 422
第十八章 动态SQL 422
18.1.3 动态SQL语句的要求 423
18.1.4 动态SQL语句的处理过程 423
18.1.5 使用动态SQL的方法 423
18.2 动态方法1 425
18.3 动态方法2 428
18.3.1 PREPARE和EXECUTE语句描述 428
18.3.2 方法2的应用实例 429
18.4 动态方法3 432
18.5 动态方法4 434
18.5.1 方法4的特殊要求 434
18.5.2 SQLDA变量 438
18.5.3 预备知识 441
18.5.4 实现方法4所用的SQL语句 444
18.5.5 方法4的处理步骤 445
18.5.6 方法4的应用实例 456
18.6 宿主数组在动态方法中的应用 467
18.7 在动态方法中使用PL/SQL块 470
第十九章 编写SQL*Forms用户出口 471
19.1 SQL*Forms用户出口的概念 471
19.1.1 什么是用户出口 471
19.1.2 为什么要写用户出口 471
19.2.3 IAF GET语句 472
19.2.1 编写用户出口所用的语句 472
19.2.2 变量 472
19.1.3 开发用户出口的步骤 472
19.2 编写用户出口 472
19.2.4 IAF PUT语句 473
19.3 用户出口的引用 474
19.3.1 用户出口的调用格式 474
19.3.2 向用户出口传递参数 474
19.3.3 把值返回给Form 475
19.4 用户出口举例 475
19.5 用户出口的编译和连接 477
19.5.1 用户出口的预编译和编译 477
19.5.2 使用GENXTB实用程序 477
19.5.3 把用户出口连接到SQL*Forms中 478
19.6 开发用户出口的注意事项 478
20.2 预编译程序可选项 479
20.2.1 可选项的作用范围 479
第二十章 运行PRO*C预编译程序 479
20.1 PRO*C预编译程序的命令 479
20.2.2 可选项的输入 481
20.2.3 可选项的描述 482
20.3 条件预编译 490
20.4 分别预编译 491
20.5 编译与连接 492
第二十一章 ORACLE调用接口 493
21.1 ORACLE调用接口概述 493
21.1.1 ORACLE调用接口 493
21.1.2 特殊术语 493
21.1.4 已过时和将要过时的OCI例程 494
21.1.3 编译和连接 494
21.2 OCI程序设计 495
21.2.1 OCI程序的基本结构 495
21.2.2 OCI程序的数据结构 496
21.2.3 SQL语句的处理 501
21.2.4 延迟语句的执行 502
21.2.5 开发OCI程序的步骤 503
21.2.6 OCI程序的编码规则 507
21.2.7 在OCI程序中使用PL/SQL 510
21.2.8 开发X/open DTP应用 513
21.3 C语言的OCI库函数 514
21.3.1 调用OCI函数的几点说明 514
一、obndra 516
21.3.2 OCI库函数 516
二、obndrn、obndrv 523
三、obreak 526
四、ocan 529
五、oclose 529
六、ocof 530
七、ocom 530
八、ocon 531
九、odefin 531
十、odescr 534
十一、odessp 538
十二、oerhms 542
十三、oexec 543
十四、oexfet 544
十五、oexn 546
十六、ofen 547
十七、ofetch 551
十八、oflng 552
十九、ologof 554
二十、oopen 555
二十一、oopt 556
二十二、oparse 556
二十三、orlon 558
二十四、orol 560
二十五、sqlld2 560
二十六、sqllda 562
21.4.1 头文件 563
21.4 OCI程序实例 563
21.4.2 实例1 574
21.4.3 实例2 583
21.4.4 实例3 593
21.4.5 实例4 599
附录A ORACLE的保留字和关键字 609
A.1 保留字 609
A.2 关键字 610
附录B ORACLE的错误信息 611
B.1 错误信息说明 611
B.2 预编译程序错误信息 612
B.3 ORACLE运行库错误 627