《PowerBuilder高级客户/服务器开发》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Bruce Armstrong,(美)Millard F. Brown III著;李洪发等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2004
  • ISBN:7111149823
  • 页数:522 页
图书介绍:本书系统全面地介绍了包括PBNI、PFC以及数据库连接等诸多PowerBuilder高级内容。

目录 1

作者简介 1

前言 1

第一部分 PowerBuilder开发环境 1

第1章 PowerBuilder集成开发环境 1

1.1 目标 1

1.2 IDE的发展历史 1

译者序 1

1.3 工作区和目标 4

1.3.1 工作区 4

1.3.2 目标 8

1.4 IDE研究 12

1.4.1 IDE工具栏 12

1.4.2 IDE菜单选项 13

1.4.3 System Tree 16

1.4.4 Clip Window 16

1.4.5 Output Window 17

1.4.6 Design Area 18

1.5 IDE的其他有用特性 19

1.5.1 To Do List(任务列表) 19

1.5.2 Keyboard Shortcuts(键盘快捷键) 19

1.5.3 配置、跟踪和调试 20

1.5.4 其他工具 20

1.6 IDE的高级特性 21

1.7 小结 25

2.1 目标 26

2.2 为什么要实现版本控制 26

第2章 源代码控制 26

2.3 PowerBuilder和SCC的集成 27

2.3.2 早期的代码管理体系结构 28

2.3.1 PowerBuilder与SCC集成的发展简介 28

2.3.3 SCC接口中体系结构的变化 29

2.3.4 新的SCC文件类型 30

2.3.5 PBNative的体系结构变化 30

2.4 PowerBuilder 8和PowerBuilder 9中IDE的变化 31

2.4.1 工作区属性对话框 31

2.4.2 安装注意事项 33

2.4.3 系统树和库画板SCC图标 34

2.4.4 库画板 35

2.5 源代码控制菜单 35

2.5.1 工作区级上下文菜单 35

2.5.2 目标级上下文菜单 36

2.5.3 PBL级上下文菜单 36

2.5.4 对象级上下文菜单 37

2.6.1 Add to Source Control(添加到源代码控制) 38

2.6.2 Remove from Source Control 38

(从源代码控制中删除) 38

2.6 源代码控制操作 38

2.6.4 Check Out(签出) 39

2.6.5 Check In(签入) 39

2.6.3 Refresh Status(状态刷新) 39

2.6.6 Undo Checkout(撤销签出) 40

2.6.7 Get Latest Version(获取最新版本) 40

2.6.8 Show Differences(差别显示) 41

2.6.9 Show History(历史显示) 42

2.6.10 SCC Properties(SCC属性) 42

2.6.11 Backup SCC Status Cache(备份SCC状态缓存) 42

2.6.12 Run Source Control Management Tool(运行源代码控制管理工具) 42

2.6.13 Advanced Options(高级选项) 42

2.8 工程工作区和目标的计划 43

2.9  PB 9中PBNative的设置 43

2.7 PowerBuilder 9中有效的SCC实现 43

2.9.1 第一步——文件夹和PBL的结构调整 44

2.9.2 第二步——创建工作区和目标 45

2.9.3 第三步——设置PBNative知识库 45

2.9.4 第四步——添加其他开发者 46

2.9.5 第五步——有选择地使用工作PBL 46

2.10 第三方SCC提供程序的设置 47

2.11 PowerBuilder 9的分支与合并 47

2.11.1 初始化设置和注册 47

2.11.2 常用操作 48

2.11.3 建立分支工作区和视图 49

2.12 第三方SCC提供程序简介 51

2.13 小结 52

3.1 目标 53

3.2 这些年PowerBuilder部署的发展 53

第3章 应用程序的编译和部署 53

3.3 PowerBuilder 9中应用程序的部署 54

3.3.1 编译器基础 54

3.3.2 应用程序包 55

3.3.3 动态运行库的使用 55

3.3.4 外部资源的使用 56

3.3.5 工程画板 57

3.3.6 目标级部署 60

3.3.7 工作区级部署 60

3.3.8 构建运行库 61

3.4 使用OrcaScript的命令行部署 61

3.4.1 简介 62

3.4.2 体系结构 62

3.4.3 OrcaScript命令参考 63

3.4.4 Power Gen 66

3.5 向终端用户交付完成的应用程序 67

3.5.1 环境组件 68

3.5.2 应用程序组件 70

3.6 其他提示和技巧 71

3.6.1 将版本信息构建进可执行文件 71

3.6.2 从数据库中部署应用程序 72

3.7 小结 72

第4章 InfoMaker 73

4.1 目标 73

4.2 InfoMaker环境 73

4.2.1 库画板 74

4 2.2 报表画板 74

4.2.3 管道和数据库画板 75

4.2.4 表单画板 75

4.3 部署 75

4.4.2 命令行参数 76

4.4.1 可执行文件的版本编号 76

4.4 新特性 76

4.4.3 新的文件存储格式 77

4.4.4 XML 77

4.5 在何处使用PowerBuilder 78

4.5.1 自定义表单样式 78

4.5.2 默认表单样式 79

4.5.3 行为 80

4.5.4 注册表中工具栏的设置 81

4.5.5 非默认的表单样式 82

4.6 自定义Imstyle9.pbl 82

4.7 局限性 83

4.8 代码的调试 83

4.9 在InfoMaker表单中不使用PowerBuilder编写代码 85

4.10 小结 86

5.2 开发环境 87

第5章 高级编码技术 87

5.1 目标 87

5.2.1 设置开发环境 87

5.2.2 操作系统的支持(XP) 92

5.2.3 库的组织 94

5.3.1 快捷键的使用 96

5.3 IDE 96

5.2.4 库的维护 96

5.3.2 PowerPanel的扩展 97

5.4.1 编码框架 100

5.4 编码 100

5.4.2 事件又是怎样的呢 104

5.4.3 异常处理 105

5.4.4 性能 118

5.4.5 性能小结 121

5.5 数据库的独立性 121

5.5.1 数据库设计 121

5.5.3 嵌入式SQL 122

5.5.2 DataWindow 122

5.6 小结 124

第二部分 DataWindow 125

第6章 高级DataWindow技术 125

6.1 目标 125

6.2 使用表达式 125

6.2.1 设计时的表达式 126

6.2.2 布尔计算 127

6.2.4 运行时的表达式 129

6.2.3 其他计算 129

6.2.5 使用带的表达式 130

6.2.6 使用形状的表达式 131

6.3 DataWindow报告 132

6.3.1 嵌套报告 132

6.3.2 复合报告 134

6.3.3 动态嵌套报告 136

6.3.4 复合和嵌套的区别在哪里 138

6.4 动态SQL 139

6.4.1 动态SQL(格式1) 139

6.4.3 动态SQL(格式3) 140

6.4.2 动态SQL(格式2) 140

6.4.4 动态SQL(格式4) 141

6.5 其他关于SQL的考虑 142

6.5.1 SQLPreview事件 142

6.5.4 SetSQLSelect函数 144

6.5.3 关于Describe函数的重要注意事项 144

6.5.2 TABLE.SELECT属性 144

6.5.5 为什么TABLE/SELECT比SetSQLSelect更受欢迎 145

6.5.6 动态DataWindow 145

6.5.7 最后的关于SQL的想法 146

6.6 使用带的乐趣 147

6.6.1 基础 147

6.6.2 改变Header带 147

6.6.3 删除Detail行 149

6.6.4 组的使用 149

6.7.1 裸露的DataWindow 151

6.7.2 理解语法 151

6.7 动态创建DataWindow对象 151

6.6.5 在带之间移动对象 151

6.7.3 创建动态对象 155

6.8 新的客户/服务器DataWindow特性 156

6.8.1 增强的DataWindow打印功能 156

6.8.2 ClipText 156

6.8.3 OverridePrintJob 156

6.8.4 PrinterName 157

6.8.5 多副本打印 157

6.8.6 Collate 157

6.8.7 检索子DataWindow 157

6.8.8 滚动Group报告 157

6.9 小结 158

第7章 终极DataWindow 159

7.2 绘制简单的图形 159

7.1 目标 159

7.3.1 uo_lbd事件 161

7.3 矩形的创建和操纵 161

7.3.2 uo_mm事件 161

7.3.4 选择对象 162

7.3.3 uo_lbu事件 162

7.4 在DataWindow之内和之间移动图像 164

7.5 在DataWindow之间移动图像 165

7.6 使用元数据创建多图形的DataWindow 167

7.6.1 控制可见的DataWindow对象 168

7.6.2 将元数据应用到DataWindow 169

7.6.3 构造元数据 169

对象的可见属性 169

7.7 操纵元数据 171

7.7.2 跨越多行来显示基于行的对象 174

7.7.1 为某些DataWindow对象属性赋负值 174

7.8 包含的源代码 176

7.9 小结 176

第8章 XML DataWindow 177

8.2 什么是XML 177

8.1 介绍 177

8.3 XML解析器 180

8.4 DataWindow导出引擎 180

8.5 导出模板:图形用户界面 182

8.5.1 导出模板的报头部分 183

8.5.2 导出模板细节部分 186

8.5.3 将DataWindow元素映射到XML节点 186

8.6 导出XML 186

8.8 示例Ⅱ 189

8.7 示例Ⅰ 189

8.9 示例Ⅲ 190

8.10 示例Ⅳ 192

8.11 导入XML 193

8.12 新DLL 194

8.13 小结 194

第9章 Sybase Adaptive Server Enterprise 197

第三部分 数据库连接 197

9.1 目标 197

9.2 连接ASE 197

9.3 数据类型 198

9.4 DataWindow 199

9.4.1 将SQL语句用于源 199

9.4.2 将存储过程用于源 200

9.4.3 将存储过程用于更新 203

9.5.1 作为远程过程调用 208

9.5 存储过程 208

9.5.2 作为嵌入式SQL 210

9.5.3 可选参数 211

9.6 嵌入式SQL 213

9.7 特殊问题 213

9.7.1 identity列 214

9.7.2 隐藏对象所有权 214

9.7.3 使用DBHandle和CT-LIB 214

9.7.4 使用print语句进行调试 216

9.8 小结 217

第10章 Sybase Adaptive Server Anywhere 218

10.1 目标 218

10.2 通过PowerBuilder连接 218

10.3 数据类型 218

10.4 开发需要考虑的因素 219

10.4.1 标识符大小写 220

10.4.2 带有所有者名称的限定SQL 220

10.5 与数据库交互 221

10.5.1 DataWindow 222

10.5.2 直接调用存储过程 230

10.5.3 嵌入式SQL 232

10.6 小结 232

第11章 Oracle 233

11.2 连接Oracle 233

11.1 目标 233

11.3 数据类型 234

11.4 DataWindow 234

11.4.1 为数据源使用SQL语句 234

11.4.2 为数据源使用存储过程 239

11.4.3 为更新而使用存储过程 245

11.4.4 OLE数据库Blob列 246

11.5 存储过程 247

11.5.1 作为远程过程调用(RPC) 247

11.5.2 作为嵌入式SQL 254

11.6 嵌入式SQL 257

11.7.1 用户定义数据类型 258

11.7 特殊问题 258

11.7.2 非法对象 259

11.7.3 使用同义词隐藏方案所有权 260

11.7.4 非智能(代理)主键 260

11.7.5 安全性 262

11.7.7 多个Oracle Home 263

11.7.6 故障切换(failover)支持 263

11.7.8 典型的ORA-xxxxx错误 264

11.7.10 故障排除 265

11.7.9 慢连接 265

11.7.11 全球语言支持 266

11.7.12 共享服务器 267

11.7.13 连接到非Oracle数据库 269

11.7.14 使用DBHandle和OCl DLL 271

11.8 小结 277

第12章 ODBC 278

12.1 目标 278

12.2 什么是ODBC 278

12.3 如何使用ODBC 279

12.3.1 建立配置 279

12.3.2 连接数据库 279

12.3.3 建立对ODBC API的调用 279

12.3.5 检查ODBC API调用的返回值 280

12.4 建立ODBC数据源 280

12.3.4 执行对ODBC API的调用 280

12.5 你机器上的ODBC数据源 281

12.6 ODBC与PowerBuilder事务对象 281

12.7 神奇的文件——PBODB90.INI 286

12.8 排除ODBC故障 288

12.8.1 Database Trace 289

12.8.2 ODBC Driver Manager Trace 290

12.10 小结 291

12.9 ODBC资源 291

13.1 目标 292

第13章 JDBC 292

13.2.2 类型2驱动器 293

13.2.1 类型1驱动器 293

13.2 JDBC体系结构 293

13.2.3 类型3驱动器 294

13.2.4 类型4驱动器 295

13.3 Sybase jConnect for JDBC 296

13.4 开始 297

13.5 指定数据源 298

13.6 建立连接 298

13.8 ResultSet和数据库元数据 299

13.7 执行语句和返回结果 299

13.9 DatabaseMetaData 300

13.10 ResultSetMetaData 300

13.11 使用SybasejConnect的例 301

13.12 JDBC中的事务 304

13.13 在PowerBuilder中使用JDBC 305

13.13.1 准备使用JDBC接口 305

13.13.2 从PowerBuilder定义数据库原型 306

13.13.3 为在EAServer中运行的组件配置选项 307

13.14 小结 309

14.2 DirectConnect体系结构概述 310

14.1 目标 310

第14章 通过Sybase Mainframe Connect的lBM DB2和CICS 310

14.3.1 配置Open Client(开放客户端) 312

14.3 通过PowerBuilder连接 312

14.3.2 配置PowerBuilder连接配置文件 313

14.3.3 其他的连接参数 314

14.3.4 连接初始化 318

14.4.1 Character数据类型 319

14.4 数据类型 319

14.4.2 Distinct数据类型 320

14.4.3 不支持的数据类型 320

14.5 开发需要考虑的因素 321

14.5.1 标识符大小写 321

14.5.2 用所有者名称限定SQL 322

14.5.3 表清单 322

14.5.4 PowerBuilder扩展属性表 324

14.6.1 元数据 325

14.6.2 远程过程调用(RPC) 325

14.6 访问外部数据 325

14.6.3 远程存储过程(RSP) 326

14.6.4 DB2自身存储过程调用 328

14.6.5 处理警告 329

14.7 安全接口 330

14.7.1 SYPM事务 330

14.7.2 TRS选项 331

14.7.3 经由DB2 Access Service的sp_password 332

14.8 小结 333

第15章 IBM Informix 334

15.1 目标 334

15.2 连接Informix 334

15.2.1 Setnet32配置 335

15.2.2 IBM Informix的PowerBuilder数据库配置文件的建立 335

15.3 数据类型 337

15.3.1 DATETIME和TIME数据类型 338

15.3.2 INTERVAL数据类型 338

15.3.3 SERIAL数据类型 339

15.3.4 TEXT和BYTE数据 340

15.3.5 其他数据类型 342

15.4 使用存储过程 344

15.4.1 在DataWindow之内 344

15.4.2 作为一个RPC FUNC 345

15.4.3 在嵌入式SQL内 346

15.4.4 处理RAISE EXCEPTION 347

15.5 外部联合语法 348

15.6 日志模式 348

15.7 AutoCommit 349

15.8 隔离级别(isolation level) 349

15.9 小结 350

16.1 目标 351

16.2 什么是PFC 351

第16章 PowerBuilder基础类库(PFC) 351

第四部分 高级课题 351

16.3 什么是SBA 352

16.4 PFC体系结构 353

16.5 PFC主要对象和服务 354

16.5.1 PFC对象 355

16.5.2 PFC服务 357

16.6 PFC开始向导 361

16.7 PFC快速入门 362

16.9 使用公共PFC对象和服务 363

16.8 PFC示例应用 363

16.9.1 PFC常量 364

16.9.2 菜单 364

16.9.3 数据窗口(u_dw) 366

16.9.4 Resize服务 366

16.9.5 Linkage服务 367

16.9.6 分隔条 368

16.9.7 状态栏服务 369

16.10 更多预编码脚本 369

16.10.1 应用程序对象 370

16.10.3 数据窗口 371

16.10.2 窗口(W_master或Descendant) 371

16.11 提示和诀窍——从PFC中获得 372

最大利益 372

16.13 调试PFC 373

16.13.1 避免出现activate事件 373

16.12 速度要求 373

16.14.1 PowerBuilder 6中PFC的变化 374

16.14 PFC的变化 374

16.13.2 PFC调试日志 374

16.15 PFC资源 375

16.14.4 PowerBuilder 9中PFC的变化 375

16.14.3 PowerBuilder 8中PFC的变化 375

16.14.2 PowerBuilder 7中PFC的变化 375

16.16 小结 376

17.1 目标 377

第17章 第三方工具 377

17.2 目前的状况 378

17.3 如果不去找,就找不到 378

17.3.1 在因特网上寻找工具 378

17.3.2 出版文章和广告 379

17.4 服务于为我们提供服务的人 379

17.5 购买与构建——激战正酣 381

17.6 对选择产品的建议 381

17.6.1 了解自己的需求 381

17.6.2 了解哪些是可用的 382

17.6.3 灵活性 382

17.6.4 考虑重组你的业务过程 382

17.6.5 现实 382

17.6.6 仔细考虑生产产品的公司的稳定性 382

17.6.7 购买源码 383

17.6.8 获得参考 383

17.6.9 别为小钱出汗 383

17.7 工具类型 383

17.7.1 前期开发工具 383

17.7.2 协同执行工具 384

17.7.3 提高效率的工具 384

17.8 产品列表 384

17.8.1 编码实用工具 384

17.8.2 重新生成/构造工具 384

17.8.5 Case、设计和分析工具 385

17.8.4 Web移植工具 385

17.8.6 代码框架 385

17.8.3 测试工具 385

17.8.8 其他的实用工具 386

17.9 其他Sybase 工具 386

17.8.7 终端用户报表工具 386

17.10 小结 387

18.2 Win32 API是什么 388

18.1 目标 388

18.2.1 寻找好的文档 388

第18章 公共控件 388

18.2.2 C语言风格的文档 389

18.2.3 从C的数据类型到PowerBuilder的数据类型的转换 389

18.2.4 从Win32 API调用到PowerBuilder外部函数的转换 390

18.2.5 SendMessageA和SendMessageW的区别 390

18.2.6 重载SendMessage 391

18.2.7 为消息ID创建常量 391

18.2.8 从C的结构到PowerBuilder结构的转换 392

18.2.9 封装Win32 API调用 393

18.2.10 回顾 393

18.3 消息子系统 394

18.3.1 窗口句柄和事件 394

18.3.2 编程实现发送消息 394

18.3.3 子窗口、父窗口和通知消息 396

18.3.4 编程创建窗口 396

18.3.5 回顾 398

18.4 公共控件 398

18.4.1 公共控件列表清单 399

18.4.2 公共控件DLL版本 399

18.4.3 如何确定安装的COMCTL32.DLL是哪个版本 400

18.4.4 回顾 402

18.5 PowerBuilder外部可视化对象 402

18.6.1 从哪里开始 404

18.6.2 初始化公共控件 404

18.6 封装一个公共控件 404

18.6.3 窗口风格和类名 405

18.6.4 消息ID 406

18.6.5 向公共控件发送消息 407

18.6.6 在函数中封装消息 408

18.6.7 将实现与可视化控件联系起来 408

18.6.8 实现非可视化用户对象 409

18.6.9 回顾 417

18.7 创建可视化组件 418

18.7.1 使用公共控件 418

18.7.2 回顾 420

18.8 小结 421

第19章 PowerBuilder本机接口(PBNI) 422

19.1 目标 422

19.2.2 IPB_Value 423

19.2.1 IPB Session 423

19.2 什么是PBNI 423

19.2.3 IPB_Arguments 424

19.2.4 IPB_VM 424

19.3 PBNI SDK 424

19.4 构建PBNI扩展 424

19.4.1 实现PBNI类 425

19.4.2 PBNI要求的功能 426

19.4.3 构建PBNI扩展DLL 428

19.5 你的第一个PBNI类 429

19.5.1 创建PBNI DLL 429

19.5.2 创建PBD 433

19.5.3 创建PB客户端 433

19.5.4 示例回顾 434

19.6 使用PBNI对象 435

19.6.1 用PowerBuilder交换数据 435

19.6.2 调用PowerScript对象函数 436

19.6.3 回顾PBNI回调示例 438

19.7 触发PowerBuilder事件 440

19.8 PBNI全局函数 440

19.9 从PBX内部调用PowerScript系统函数 442

19.10 访问和操作数组 443

19.10.1 PBBoundedArrayCreator 444

19.10.2 PBUnboundedArrayCreator 445

19.10.3 PBArrayAccessor 445

19.10.4 PBBoundedObjectArrayCreator 446

19.10.5 PBUnboundedObjectArrayCreator 446

19.10.6 PBObjectArrayAccessor 447

19.11 PBNI可视化对象 447

19.11.1 GetWindowClassname 448

19.11.2 CreateControl 448

19.11.3 可视化PBNI示例回顾 455

19.12 在PowerBuilder中处理PBNI异常 455

19.13 调试PBNI类 457

19.14 部署你的PBNI扩展 458

19.15  在第三方应用程序中加载PowerBuilder虚拟机 459

19.16 PBNI实用工具 461

19.16.1 PBSIG90 461

19.16.2 PBX2PBD90 462

19.17 小结 462

第20章 对象链接与嵌入 464

20.1 目标 464

20.2 OLE环境 464

20.2.1 早期绑定与晚期绑定 465

20.2.2 ActiveX设计器 465

20.3 OLE自定义控件 466

20.4 OLE自动化 471

20.5 OLEStream和OLEStorage 478

20.6 小结 478

21.1 目标 479

21.2 前景 479

第21章 未来的方向 479

21.3 .NET 480

21.3.1 对XML服务的支持 481

21.3.2 Data Window.NET和DataStore.NET 481

21.3.4 对.NET的支持 482

21.4 Java 482

21.4.1 EAServer中的Web服务 482

.NET 对象 482

21.3.3 从PowerBuilder IDE中创建 482

21.4.2 EJB客户端、PowerBuilder Web服务和JSP 483

21.4.3 第三方应用服务器中的Power-Builder NVO 483

21.5 移动目标 483

21.6 IDE集成 483

21.7 小结 484

附录 485

附录A Sybase自适应服务器企业参考手册 485

附录B Oracle参考手册 495

附录C 第三方工具参考手册 501