第一部分 基本概念与使用 1
第1章 了解PowerBuilder 1
1.1 传统开发工具的不足 1
1.2 PowerBuilder的特点 1
1.2.1 专业的客户机/服务器开发工具 1
1.2.2 面向对象的开发工具 2
1.2.3 交叉平台的开发环境 2
1.2.4 强大、灵活的PowerScript 3
1.2.5 操作方便和有机结合的集成开发环境 3
1.2.6 数据窗口 4
1.2.7 对Web的完整支持 4
1.2.8 配套工具产品包 4
1.3 关于CPD 5
1.4 小结 5
第2章PowerBuilder与DBMS 6
2.1 与主要的数据库管理系统连接 6
2.1.1 Oracle 6
2.1.2 Microsoft SQL Server 6
2.1.3 内置数据库管理系统Adaptive Server Anywhere6.0 7
2.2 通用数据库接口ODBC 8
2.2.1 ODBC的工作原理 8
2.2.2 通过ODBCINSTINI查看数据库驱动程序 9
2.2.3 使用ODBC定义数据源 10
2.3 配置PowerBuilder中的数据库描述文件 12
2.3.1 Database Profile配置窗口 12
2.3.2 描述文件的设置 12
2.3.3 使用描述文件与数据库连接 15
2.3.4 导出与导入 15
2.3.5 PB.INI文件的使用 16
2.4 小结 17
第3章 第一个PowerBuilder应用程序 18
3.1 示例功能说明 18
3.2 准备工作 18
3.2.1 示例的数据库结构 18
3.2.2 为新的应用程序创建一个新文件夹 19
3.3 应用程序画板 19
3.3.1 启动PowerBuilder7,创建应用程序对象 19
3.3.2 给应用程序Lib_admin添加代码 20
3.4 数据窗口画板 21
3.4.1 创建数据窗口对象 21
3.4.2 设计数据窗口 23
3.5 窗口画板 27
3.5.1 创建窗口对象 27
3.5.2 设计窗口 28
3.5.3 为控件添加代码 30
3.6 运行应用程序 31
3.7 项目画板 32
3.8 回顾应用程序创建过程 33
3.9 小结 33
第4章PowerBuilder7的新特点 34
4.1 高度集成的开发环境 34
4.1.1 第一次启动PowerBuilder7 34
4.1.2 以对象为中心的开发 35
4.1.3 非模态开发 35
4.1.4 不同画板子窗口的共同特征 36
4.1.5 子窗口的控制方法 37
4.1.6 画板的新特点 38
4.1.7 工作任务列表 42
4.1.8 定制快捷键 43
4.1.9 其他关于开发环境的新特征 44
4.2 数据库连接性 45
4.2.1 新的和增强的数据库接口 45
4.2.2 不再支持的数据库接口 46
4.2.3 数据库描述文件的导出和导入 46
4.2.4 快速访问数据库实用工具 46
4.3 组件的开发和部署 47
4.3.1 关于Jaguar CTS 47
4.3.2 创建Jaguar组件 49
4.3.3 创建Jaguar客户 49
4.3.4 创建COM/MTS组件 50
4.3.5 创建COM/MTS客户 50
4.3.6 远程调试 50
4.3.7 创建自动服务器 51
4.4 其他新特点 51
4.4.1 ActiveX和OLE特点 51
4.4.2 Internet图像格式的支持 51
4.4.3 新的窗口控件 52
4.4.4 使用存储过程更新数据库 52
4.4.5 数据窗口Web控件 52
4.5 小结 53
第5章 SQL和PowerBuilder 54
5.1 SQL的数据定义语言和PowerBuilder的交互界面 55
5.1.1 创建和删除数据库 55
5.1.2 创建和删除表 56
5.2 数据的完整性 65
5.2.1 数据完整性的类型 66
5.2.2 用来实现数据完整性的特性 66
5.2.3 约束 67
5.2.4 使用IDENTITY性质实施数据完整性 71
5.3 索引 72
5.3.1 使用索引的好处 72
5.3.2 使用索引的坏处 73
5.3.3 选择建立索引的列 73
5.3.4 选择性 73
5.3.5 建立索引的准则 73
5.3.6 不使用索引的准则 73
5.3.7 索引的特性 73
5.3.8 唯一索引 74
5.3.9 复合索引 74
5.4 用户表间关系 75
5.5 添加、更新和删除数据 76
5.5.1 SQL语句的执行环境 76
5.5.2 向表中插入行 77
5.5.3 更新表中的数据 79
5.5.4 从表中删除数据 81
5.6 通过交互方式操纵数据 82
5.7 数据操纵的安全性 82
5.8 SQL的数据查询功能 83
5.8.1 SQL查询初步 84
5.8.2 无数据源检索 84
5.8.3 指定检索的列 84
5.8.4 检索表中所有的列 85
5.8.5 指定检索的行:WHERE子句 85
5.8.6 处理查询结果 89
5.9 高级SQL查询 93
5.9.1 多表连接 94
5.9.2 使用子查询 94
5.10 视图 96
5.10.1 视图的好处 96
5.10.2 建立视图 96
5.10.3 删除视图 98
5.11 存储过程和触发器 98
5.11.1 存储过程 98
5.11.2 创建和执行存储过程 99
5.11.3 触发器 99
5.12 小结 101
第6章 应用程序画板 102
6.1 应用程序对象 102
6.1.1 新建应用程序对象 103
6.1.2 选择当前应用程序对象 105
6.2 应用程序画板介绍 106
6.3 应用程序对象属性 106
6.3.1 General属性 106
6.3.2 Toolbar属性 107
6.3.3 附加属性 108
6.4 应用程序对象事件 109
6.4.1 Open事件 109
6.4.2 Close事件 110
6.4.3 Idle事件 111
6.4.4 SystemError事件 111
6.4.5 ConnectionBegin和ConnectionEnd事件 111
6.5 应用程序对象函数 112
6.6 库搜索路径 112
6.7 小结 113
第7章 PowerScript编程 114
7.1 PowerScript基础 114
7.1.1 大小写 114
7.1.2 注释 114
7.1.3 断行、分隔符和继续符 115
7.1.4 标识符 115
7.1.5 标签 115
7.1.6 保留字 116
7.1.7 对象、属性和方法 116
7.1.8 操作符 117
7.1.9 操作符的优先级 118
7.1.10 ASCII字符 118
7.2 PowerScript数据类型 119
7.2.1 标准数据类型 119
7.2.2 增强数据类型 120
7.2.3 数据类型转换 123
7.2.4 字符和字符串 123
7.2.5 数组 124
7.3 变量 127
7.3.1 变量的访问控制 127
7.3.2 变量的作用域 128
7.4 常量 129
7.5 函数 129
7.5.1 函数搜索链 129
7.5.2 参数传递方式 130
7.5.3 特殊类型的参数传递 130
7.5.4 函数调用方式 130
7.5.5 使用Windows系统对话框 132
7.6 代词 132
7.6.1 This 133
7.6.2 Parent 133
7.6.3 Super 134
7.7 语句 134
7.8 PowerBuilder的长度单位 135
7.9 系统对象 136
7.9.1 Error 136
7.9.2 Message 138
7.10 小结 140
第8章PowerScript编程环境 141
8.1 Script子窗口 141
8.2 定制编程环境 142
8.2.1 Font选项页 142
8.2.2 Coloring选项页 142
8.2.3 AutoScript选项页 143
8.2.4 Script选项卡 143
8.2.4 Prefixes1和Prefixes2选项页 143
8.3 编程工具和编译 144
8.3.1 注释 144
8.3.2 粘贴 144
8.3.3 查找和替换 145
8.3.4 编译 146
8.4 使用对象浏览器 146
8.5 函数画板的使用 147
8.5.1 新建全局函数 147
8.5.2 修改全局函数 148
8.6 结构画板的使用 148
8.7 小结 149
第9章 窗口画板 150
9.1 窗口对象类型 150
9.1.1 主窗口 150
9.1.2 子窗口 150
9.1.3 多文档窗口 151
9.1.4 弹出窗口 151
9.1.5 响应窗口 152
9.2 应用程序风格 152
9.3 窗口画板 152
9.3.1 窗口画板介绍 152
9.3.2 定制窗口画板 153
9.3.3 创建窗口对象 154
9.3.4 打开窗口对象 154
9.3.5 在窗口上放置控件 154
9.3.6 控件的操纵 155
9.4 窗口对象属性 157
9.4.1 常规属性 157
9.4.2 高级属性用法举例 158
9.5 窗口对象事件 160
9.5.1 Activate和Deactivate事件 160
9.5.2 Open事件 160
9.5.3 Close和CloseQuery事件 160
9.5.4 Resize事件 161
9.5.5 用户自定义事件 162
9.6 窗口对象函数 162
9.6.1 ChangeMenu函数 162
9.6.2 SetRedraw函数 162
9.6.3 Resize函数 163
9.6.4 WorkSpaceHeight函数 163
9.6.5 用于MDI窗口的函数 164
9.7 Open与Close函数 164
9.7.1 Open函数 164
9.7.2 Close函数 166
9.8 使用窗口控件 167
9.8.1 命令按钮 168
9.8.2 图形命令按钮 169
9.8.3 静态文本 169
9.8.4 单行编辑框 169
9.8.5 多行编辑框 170
9.8.6 掩码编辑框 170
9.8.7 富文本编辑框 171
9.8.8 选择按钮和复选框 173
9.8.9 列表框和下拉列表框 173
9.8.10 选项卡控件 174
9.8.11 数据窗口控件 176
9.8.12 OLE控件 177
9.8.13 修饰作用的控件 178
9.8.14 用户自定义控件 179
9.9 PowerBuilder7新增控件 179
9.9.1 HtrackBar和VtrackBar控件 179
9.9.2 HprogressBar和VprogressBar控件 182
9.9.3StaticHyperLink和PictureHyperLink控件 183
9.10 控件的Tab Order 183
9.11 预览和运行窗口 184
9.12 窗口举例 184
9.12.1 w_center窗口 184
9.12.2 w_splash窗口 185
9.13 小结 186
第10章 库管理 187
10.1 库的组织原则 187
10.2 Library画板 188
10.3 定制Library画板 188
10.4 Library画板的使用 189
10.4.1 库的操作 189
10.4.2 对象的操作 190
10.5 对象安全控制 194
10.5.1 注销对象 194
10.5.2 注册对象 195
10.5.3 撤销注销 195
10.5.4 查看注销信息 195
10.6 升级低版本应用程序 196
10.7 查看工具 196
10.8 小结 197
第11章 数据窗口对象 198
11.1 概述 198
11.2 数据窗口对象创建向导 199
11.3 数据窗口的显示样式 201
11.3.1 Freeform样式 201
11.3.2 Grid样式 201
11.3.3 Tabular样式 201
11.3.4 Label样式 202
11.3.5 Crosstab样式 203
11.3.6 Group样式 203
11.3.7 N-Up样式 204
11.3.8 Graph样式 204
11.3.9 Composite样式 205
11.3.10 RichTex样式 206
11.3.11 OLE2.0样式 207
11.4 数据源 207
11.4.1 Quick Select数据源 208
11.4.2 SQL Select数据源 209
11.4.3 Query数据源 212
11.4.4 External数据源 213
11.4.5 Stored Procedure数据源 213
11.5 数据窗口画板 214
11.5.1 子窗口简介 214
11.5.2 定制数据窗口画板 215
11.6 设计数据窗口对象 216
11.6.1 数据窗口属性 216
11.6.2 区域 218
11.6.3 带的属性 219
11.6.4 大小、对齐和间距 219
11.6.5 对象属性 220
11.6.6 Tab次序 228
11.6.7 创建分组 228
11.6.8 压缩重复值 229
11.6.9 压缩字段间空间 229
11.7 行操纵 230
11.7.1 过滤 230
11.7.2 排序 231
11.7.3 检索 231
11.8 控制更新属性 232
11.8.1 Key Modification组框 233
11.8.2 Where Clause for Update/Delete组框 233
11.8.3 Identity Column选项 235
11.9 预览数据窗口 235
11.9.1 Describe对话框 235
11.9.2 Zoom属性 236
11.9.3 数据操纵 236
11.9.4 导出和导入数据 236
11.10 使用存储过程更新 237
11.11 数据窗口增强对象 238
11.11.1 Button对象 238
11.11.2 Computed Field对象 239
11.11.3 Report对象 240
11.11.4 Group Box对象 241
11.11.5 Graph对象 241
11.11.6 OLE Database Blob 242
11.11.7 其他对象 246
11.12 小结 246
第12章 数据窗口控件 247
12.1 数据窗口控件和数据窗口对象 247
12.2 数据窗口控件属性 247
12.3 事务对象 248
12.3.1 事务对象属性 248
12.3.2 SQLCA 249
12.3.3 连接数据库 250
12.3.4 事务管理 251
12.4 为数据窗口控件分配事务对象 251
12.5 数据窗口控件事件 252
12.5.1 Clicked事件 253
12.5.2 错误处理事件 253
12.5.3 记录处理事件 256
12.5.4 检索与更新事件 257
12.5.5 打印事件 259
12.6 数据窗口控件函数 260
12.6.1 缓冲区 260
12.6.2 可编辑控件 262
12.6.3 数据窗口控件函数 264
12.7 小结 275
第13章 菜单和菜单画板 276
13.1 菜单设计原则 276
13.2 菜单术语 276
13.3 菜单画板 277
13.3.1 菜单画板简介 277
13.3.2 创建菜单对象 277
13.3.3 添加菜单项 278
13.3.4 Script子窗口 279
13.4 菜单项属性 279
13.4.1 General属性页 279
13.4.2 Toolbar属性页 281
13.5 菜单事件 282
13.6 菜单函数 282
13.7 菜单实例 283
13.7.1 Undo菜单的实现 283
13.7.2 使用API菜单函数 284
13.8 小结 286
第14章 调试 287
14.1 调试画板 287
14.2 调试画板的使用 288
14.2.1 选择脚本 288
14.2.2 设置断点 289
14.2.3 调试应用程序 291
14.2.4 其他进入调试状态的方法 294
14.3 PBDebug 295
14.3.1 .dbg文件 295
14.3.2 .pbp文件 297
14.4 其他调试技术 302
14.4.1 MessageBox函数 302
14.4.2 Beep函数 303
14.4.3 SqlPreview事件 303
14.5 小结 304
第二部分 高级应用 305
第15章 用户对象 305
15.1 创建用户对象 305
15.1.1 设计用户对象 305
15.1.2 使用用户对象 307
15.2 用户对象分类 308
15.2.1 创建标准用户对象 308
15.2.2 外部用户对象 309
15.2.3 自定义类 309
15.2.4 标准类 312
15.3 运行时创建用户对象 313
15.3.1 OpenUserObject函数 314
15.3.2 OpenUserObjectWitParm函数 314
15.3.3 CloseUserObject函数 315
15.4 动态用户对象示例 315
15.5 小结 320
第16章 MDI应用程序 321
16.1 MDI基本概念 321
16.2 工作表管理器对象 323
16.3 重置用户工作区 325
16.4 工具栏的控制 326
16.5 MDI应用程序实例 328
16.6 小结 331
第17章 使用高级控件 332
17.1 ListView控件 332
17.1.1 ListView控件属性 333
17.1.2 ListView函数 335
17.1.3 ListView控件事件 337
17.1.4 ListView控件实例 337
17.2 TreeView控件 340
17.2.1 TreeView控件属性 341
17.2.2 TreeView控件函数 341
17.2.3 TreeView控件事件 344
17.2.4 TreeView控件实例 345
17.3 图形控件 349
17.3.1 PowerBuilder图形基础 349
17.3.2 图形控件属性 350
17.3.3 图形控件函数 355
17.4 小结 359
第18章 数据窗口进阶 360
18.1 访问属性的直接语法 360
18.1.1 属性值 361
18.1.2 表达式值 361
18.1.3 示例 362
18.2 Describe函数 363
18.2.1 函数语法 363
18.2.2 SQL应用 365
18.2.3 运算表达式 365
18.3 Modify函数 366
18.3.1 函数语法 367
18.3.2 创建对象 367
18.3.3 删除对象 367
18.3.4 修改对象属性 368
18.3.5 使用表达式 370
18.4 Data Window Syntax工具 370
18.4.1 Destribe窗口 370
18.4.2 Modify窗口 371
18.4.3 SyntaxFromSQL窗口 372
18.5 访问数据的直接语法 373
18.5.1 按列名访问数据 373
18.5.2 按列号访问数据 374
18.5.3 访问选中行数据 375
18.5.4 访问整行数据 376
18.5.5 数据访问小结 376
18.6 数据存储对象 376
18.6.1 使用数据存储对象 377
18.6.2 使用数据存储对象的函数 377
18.7 动态创建数据窗口 377
18.7.1 Create函数 378
18.7.2 LibraryExport函数 378
18.7.3 SyntaxFromSQL函数 379
18.8 在字段间移动焦点 381
18.9 小结 382
第19章 PowerBuilder7与API调用 383
19.1 声明外部函数 383
19.2 数据类型转换 384
19.3 传递变量参数 384
19.3.1 传址方式传递参数 385
19.3.2 传递结构 385
19.4 使用外部函数用户对象 386
19.5 调用外部函数实例 388
19.5.1 设计用户对象 388
19.5.2 使用用户对象 389
19.6 小结 389
第20章 DDE与OLE 390
20.1 共享资源 390
20.2 动态数据交换 390
20.2.1 DDE概述 390
20.2.2 DDE概念 390
20.2.3 编写DDE应用程序 391
20.2.4 DDE应用程序举例 395
20.3 对象的链接和嵌入 399
20.3.1 OLE概述 399
20.3.2 编写OLE应用程序 400
20.4 小结 404
第21章 PowerBuilder7与注册表 405
21.1 Windows注册表 405
21.2 在PowerBuilder7中修改注册表信息 406
21.2.1 PowerBuilder7提供的函数 406
21.2.2 函数的具体用法 406
21.3 应用示例 408
21.3.1 自动配置数据源的重要性 408
21.3.2 通过函数自动配置数据源 409
21.4 小结 411
第22章PowerBuilder7的邮件功能 412
22.1 PowerBuilder7对MAPI的支持 412
22.1.1 Mailsession对象 412
22.1.2 Mailsession对象具体用法 413
22.2 发送数据窗口对象 424
22.3 小结 424
第23章 拖放技术 425
23.1 拖放技术的概念 425
23.2 拖放组件和规则 426
23.2.1拖放组件 426
23.2.2 拖放规则 427
23.3 实现拖放功能 427
23.3.1 拖放对象的属性 427
23.3.2 拖放对象的事件 428
23.3.3 拖放对象的方法 429
23.4 拖放编程示例 433
23.4.1 示例简介 433
23.4.2 设计方法 433
23.5 小结 438
第24章 数据管道 439
24.1 数据管道 439
24.2 数据管道画板 439
24.2.1 源表 442
24.2.2 目标表 442
24.2.3 数据管道选项 443
24.2.4 执行数据管道 444
24.2.5 数据管道错误 444
24.2.6 保存数据管道对象 445
24.2.7 处理Blob数据 445
24.3在应用程序中使用数据管道 446
24.3.1 管道用户对象 447
24.3.2 数据管道用户对象编码 449
24.4 小结 451
第25章 面向对象的概念与PFC编程 452
25.1 面向对象编程 452
25.1.1 类 452
25.1.2 抽象 453
25.1.3 多态 454
25.1.4 封装 455
25.1.5 继承 455
25.1.6 超类和子类 456
25.1.7 初始化类对象 456
25.1.8 析构类对象 456
25.1.9 垃圾收集函数 456
25.2 面向对象的实例 457
25.3 PFC组件 461
25.3.1 PFC库 461
25.3.2 命名约定 462
25.3.3 PFC对象服务 463
25.4 设计PFC应用 463
25.4.1 应用程序服务 463
25.4.2 菜单 465
25.4.3 窗口 466
25.4.4 数据窗口与服务 468
25.4.5 标准可视用户对象 472
25.5 添加服务 472
25.6 小结 472
第26章 应用程序的创建和分配 473
26.1 创建各组件 473
26.1.1 可执行文件 473
26.1.2 资源文件 473
26.1.3 动态库文件 474
26.2 Project画板 475
26.3 EXE文件和动态库文件的性能 477
26.4 应用程序的分配 477
26.5 小结 478
第27章 用InstallShield创建安装程序 479
27.1 InstallShield 479
27.2 创建安装程序 480
27.2.1 使用项目向导建立项目 480
27.2.2 添加文件并修改代码 484
27.3 卸载应用程序 487
27.4 小结 488