作者簡介
前言
第一部分PowerBuilder開發(fā)環(huán)境
第1章 PowerBuilder集成開發(fā)環(huán)境
1.1 目標
1.2 IDE的發(fā)展歷史
1.3 工作區(qū)和目標
1.3.1 工作區(qū)
1.3.2 目標
1.4 IDE研究
1.4.1 IDE工具欄
1.4.2 IDE菜單選項
1.4.3 System Tree
1.4.4 Clip window
1.4.5 Output Window
1.4.6 Design Area
1.5 IDE的其他有用特性
1.5.1 To Do List(任務列表)
1.5.2 Keyboard Shortcuts(鍵盤快捷鍵)
1.5.3 配置、跟蹤和調試
1.5.4 其他工具
1.6 IDE的高級特性
1.7 小結
第2章 源代碼控制
2.1 目標
2.2 為什么要實現(xiàn)版本控制
2.3 PowerBuilder和SCC的集成
2.3.1 PowerBuilder與scc集成的發(fā)展簡介
2.3.2 早期的代碼管理體系結構
2.3.3 SCC接口中體系結構的變化
2.3.4 新的SCC文件類型
2.3.5 PBNative的體系結構變化
2.4 PowerBuilder 8和PowerBuilder 9中IDE的變化
2.4.1 工作區(qū)屬性對話框
2.4.2 安裝注意事項
2.4.3 系統(tǒng)樹和庫畫板SCC圖標
2.4.4 庫畫板
2.5 源代碼控制菜單
2.5.1 工作區(qū)級上下文菜單
2.5.2 目標級上下文菜單
2.5.3 PBL級上下文菜單
2.5.4 對象級上下文菜單
2.6 源代碼控制操作
2.6.1 Add to Source Control(添加到源代碼控制)
2.6.2 Remove from Source Control(從源代碼控制中刪除)
2.6.3 Refresh Status(狀態(tài)刷新)
2.6.4 Check Out(簽出)
2.6.5 Check In(簽入)
2.6.6 Undo Checkout(撤銷簽出)
2.6.7 Get Latest Version(獲取最新版本)
2.6.8 Show Differences(差別顯示)
2.6.9 Show History(歷史顯示)
2.6.10 SCC Propenies(SCC屬性)
2.6.11 Backup SCC Status Cache(備份SCC狀態(tài)緩存)
2.6.12 Run Source Control Management Tool(運行源代碼控制管理工具)
2.6.13 Advrdnced 0ptions(高級選項)
2.7 PowerBuilder 9中有效的SCC實現(xiàn)
2.8 工程工作區(qū)和目標的計劃
2.9 PB 9中PBNative的設置
2.9.1 第一步--文件夾和PBL的結構調整
2.9.2 第二步--創(chuàng)建工作區(qū)和目標
2.9.3 第三步--設置PBNative知識庫
2.9.4 第四步--添加其他開發(fā)者
2.9.5 第五步--有選擇地使用工作PBL
2.10 第三方SCC提供程序的設置
2.11 PowerBuilder 9的分支與合并
2.11.1 初始化設置和注冊
2.11.2 常用操作
2.11.3 建立分支工作區(qū)和視圖
2.12 第三方SCC提供程序簡介
2.13 小結
第3章 應用程序的編譯和部署
3.1 目標
3.2 這些年PowerBuilder部署的發(fā)展
3.3 PowerBuilder 9中應用程序的部署
3.3.1 編譯器基礎
3.3.2 應用程序包
3.3.3 動態(tài)運行庫的使用
3.3.4 外部資源的使用
3.3.5 工程畫板
3.3.6 目標級部署
3.3.7 工作區(qū)級部署
3.3.8 構建運行庫
3.4 使用0rcaScript的命令行部署
3.4.1 簡介
3.4.2 體系結構
3.4.3 OrcaScript命令參考
3.4.4 PowerGen
3.5 向終端用戶交付完成的應用程序
3.5.1 環(huán)境組件
3.5.2 應用程序組件
3.6 其他提示和技巧
3.6.1 將版本信息構建進可執(zhí)行文件
3.6.2 從數(shù)據(jù)庫中部署應用程序
3.7 小結
第4章 lnfoMaker
4.1 目標
4.2 InfoMaker環(huán)境
4.2.1 庫畫板
4.2.2 報表畫板
4.2.3 管道和數(shù)據(jù)庫畫板
4.2.4 表單畫板
4.3 部署
4.4 新特性
4.4.1 可執(zhí)行文件的版本編號
4.4.2 命令行參數(shù)
4.4.3 新的文件存儲格式
4.4.4 XML
4.5 在何處使用PowerBuilder
4.5.1 自定義表單樣式
4.5.2 默認表單樣式
4.5.3 行為
4.5.4 注冊表中工具欄的設置
4.5.5 非默認的表單樣式
4.6 自定義Imstyle9.pbl
4.7 局限性
4.8 代碼的調試
4.9 在InfoMakef表單中不使用PowerBuilder編寫代碼
4.10 小結
第5章 高級編碼技術
5.1 目標
5.2 開發(fā)環(huán)境
5.2.1 設置開發(fā)環(huán)境
5.2.2 操作系統(tǒng)的支持(XP)
5.2.3 庫的組織
5.2.4 庫的維護
5.3 IDE
5.3.1 快捷鍵的使用
5.3.2 PowerPanel的擴展
5.4 編碼
5.4.1 編碼框架
5.4.2 事件又是怎樣的呢
5.4.3 異常處理
5.4.4 性能
5.4.5 性能小結
5.5 數(shù)據(jù)庫的獨立性
5.5.1 數(shù)據(jù)庫設計
5.5.2 DataWindow
5.5.3 嵌入式SQL
5.6 小結
第二部分 DataWindow
第6章 高級DataWindow技術
6.1 目標
6.2 使用表達式
6.2.1 設計時的表達式
6.2.2 布爾計算
6.2.3 其他計算
6.2.4 運行時的表達式
6.2.5 使用帶的表達式
6.2.6 使用形狀的表達式
6.3 DataWindow報告
6.3.1 嵌套報告
6.3.2 復合報告
6.3.3 動態(tài)嵌套報告
6.3.4 復合和嵌套的區(qū)別在哪里
6.4 動態(tài)SQL
6.4.1 動態(tài)SQL(格式1)
6.4.2 動態(tài)SQL(格式2)
6.4.3 動態(tài)SQL(格式3)
6.4.4 動態(tài)SQL(格式4)
6.5 其他關于SQL的考慮
6.5.1 SQLPreview事件
6.5.2 TABLE.SELECT屬性
6.5.3 關于Describe函數(shù)的重要注意事項
6.5.4 SetSQLSelect函數(shù)
6.5.5 為什么TABLE/SELECT比SetSQLSelect更受歡迎
6.5.6 動態(tài)DataWindow
6.5.7 最后的關于SQL的想法
6.6 使用帶的樂趣
6.6.1 基礎
6.6.2 改變Header帶
6.6.3 刪除Detail行
6.6.4 組的使用
6.6.5 在帶之間移動對象
6.7 動態(tài)創(chuàng)建DataWindow對象
6.7.1 裸露的DataWindow
6.7.2 理解語法
6.7.3 創(chuàng)建動態(tài)對象
6.8 新的客戶/服務器DataWindow特性
6.8.1 增強的DataWindow打印功能
6.8.2 ClipText
6.8.3 OverridePrintJob
6.8.4 PrinterName
6.8.5 多副本打印
6.8.6 Collate
6.8.7 檢索子DataWindow
6.8.8 滾動Group報告
6.9 小結
第7章 終極DataWindow
7.1 目標
7.2 繪制簡單的圖形
7.3 矩形的創(chuàng)建和操縱
7.3.1 uo_lbd事件
7.3.2 uo_mm事件
7.3.3 uo_lbu事件
7.3.4 選擇對象
7.4 在DataWindow之內和之間移動圖像
7.5 在DataWindow之間移動圖像
7.6 使用元數(shù)據(jù)創(chuàng)建多圖形的DataWindow
7.6.1 控制可見的DataWindow對象
7.6.2 將元數(shù)據(jù)應用到DataWindow對象的可見屬性
7.6.3 構造元數(shù)據(jù)
7.7 操縱元數(shù)據(jù)
7.7.1 為某些DataWindow對象屬性賦負值
7.7.2 跨越多行來顯示基于行的對象
7.8 包含的源代碼
7.9 小結
第8章 XML DataWindow
8.1 介紹
8.2 什么是ML
8.3 XML解析器
8.4 DataWindow導出引擎
8.5 導出模板:圖形用戶界面
8.5.1 導出模板的報頭部分
8.5.2 導出模板細節(jié)部分
8.5.3 將DataWindow元素映射到XML節(jié)點
8.6 導出XML
8.7 示例I
8.8 示例Ⅱ
8.9 示例Ⅲ
8.10 示例Ⅳ
8.11 導入XML
8.12 新DLL
8.13 小結
第三部分 數(shù)據(jù)庫連接
第9章 Sybase Adaptive Server Enterprise
9.1 目標
9.2 連接ASE
9.3 數(shù)據(jù)類型
9.4 DateWindow
9.4.1 將SQL語句用于源
9.4.2 將存儲過程用于源
9.4.3 將存儲過程用于更新
9.5 存儲過程
9.5.1 作為遠程過程調用
9.5.2 作為嵌入式SQL
9.5.3 可選參數(shù)
9.6 嵌入式SQL
9.7 特殊問題
9.7.1 identity列
9.7.2 隱藏對象所有權
9.7.3 使用DBHandle和CT-LIB
9.7.4 使用print語句進行調試
9.8 小結
第10章 Sybase Adaptive Server Anywhere
10.1 目標
10.2 通過PowerBuilder連接
10.3 數(shù)據(jù)類型
10.4 開發(fā)需要考慮的因素
10.4.1 標識符大小寫
10.4.2 帶有所有者名稱的限定SQL
10.5 與數(shù)據(jù)庫交互
10.5.1 DataWindow
10.5.2 直接調用存儲過程
10.5.3 嵌入式SQL
lO.6 小結
第1l章 Oracle
11.1 目標
11.2 連接Oracle
11.3 數(shù)據(jù)類型
11.4 DataWindow
11.4.1 為數(shù)據(jù)源使用SQL語句
11.4.2 為數(shù)據(jù)源使用存儲過程
11.4.3 為更新而使用存儲過程
11.4.4 OLE數(shù)據(jù)庫Blob列
11.5 存儲過程
11.5.1 作為遠程過程調用(RPC)
11.5.2 作為嵌入式SQL
11.6 嵌入式SQL
11.7 特殊問題
11.7.1 用戶定義數(shù)據(jù)類型
11.7.2 非法對象
11.7.3 使用同義詞隱藏方案所有權
11.7.4 非智能(代理)主鍵
11.7.5 安全性
11.7.6 故障切換(failover)支持
11.7.7 多個Oracle Home
11.7.8 典型的0RA-xxxxx錯誤
11.7.9 慢連接
11.7.10 故障排除
11.7.11 全球語言支持
11.7.12 共享服務器
11.7.13 連接到非Oracle數(shù)據(jù)庫
11.7.14 使用DBHandle和OCI DLL
11.8 小結
第12章 ODBC
12.1 目標
12.2 什么是ODBC
12.3 如何使用ODBc
12.3.1 建立配置
12.3.2 連接數(shù)據(jù)庫
12.3.3 建立對ODBC API的調用
12.3.4 執(zhí)行對ODBC API的調用
12.3.5 槍查ODBC API調用的返回值
12.4 建立ODBC數(shù)據(jù)源
12.5 你機器上的ODBC數(shù)據(jù)源
12.6 ODBC與PowerBuilder事務對象
12.7 神奇的文件--PBODB90.INI
12.8 排除ODBC故障
12.8.1 Database Trace
12.8.2 ODBC Driver Manager Trace
12.9 ODBC資源
12.10 小結
第13章 JDBC
13.1 目標
13.2 JDBC體系結構
13.2.1 類型1驅動器
13.2.2 類型2驅動器
13.2.3 類型3驅動器
13.2.4 類型4驅動器
13.3 Sybase jConnectfor JDBC
13.4 開始
13.5 指定數(shù)據(jù)源
13.6 建立連接
13.7 執(zhí)行語句和返回結果
13.8 Resultset和數(shù)據(jù)庫元數(shù)據(jù)
13.9 DatabaseMetaData
13.10 ResultSetMetaData
13.11 使用sybase jconnect的例子
13.12 JDBC中的事務
13.13 在PowerBuilder中使用JDBC
13.13.1 準備使用JDBc接口
13.13.2 從PowerBuilder定義數(shù)據(jù)庫原型
13.13.3 為在EAServer中運行的組件配置選項
13.14 小結
第14章 通過sybase Mainframe connect的IBM DB2和CICS
14.1 目標
14.2 DirectConnect體系結構概述
14.3 通過PowerBuilder連接
14.3.1 配置Open Client(開放客戶端)
14.3.2 配置PowerBuilder連接配置文件
14.3.3 其他的連接參數(shù)
14.3.4 連接初始化
14.4 數(shù)據(jù)類型
14.4.1 Character數(shù)據(jù)類型
14.4.2 Distinct數(shù)據(jù)類型
14.4.3 不支持的數(shù)據(jù)類型
14.5 開發(fā)需要考慮的因素
14.5.1 標識符大小寫
14.5.2 用所有者名稱限定SQL
14.5.3 表清單
14.5.4 PowerBuilder擴展屬性表
14.6 訪問外部數(shù)據(jù)
14.6.1 無數(shù)據(jù)
14.6.2 遠程過程調用(RPC)
14.6.3 遠程存儲過程(RSP)
14.6.4 DB2自身存儲過程調用
14.6.5 處理警告
14.7 安全接口
14.7.1 SYPM事務
14.7.2 TRS選項
14.7.3 經由DB2 Access Service的sp_password
14.8 小結
第15章 IBM Informix
15.1 目標
15.2 連接Informix
15.2.1 Setnet32配置
15.2.2 IBM Informix的PowerBuilder數(shù)據(jù)庫配置文件的建立
15.3 數(shù)據(jù)類型
15.3.1 DATETIME和TIME數(shù)據(jù)類型
15.3.2 INTERVAL數(shù)據(jù)類型
15.3.3 SERIAL 數(shù)據(jù)類型
15.3.4 TEXT和BYTE數(shù)據(jù)
15.3.5 其他數(shù)據(jù)類型
15.4 使用存儲過程
15.4.1 在DataWindow之內
15.4.2 作為一個RPC FUNC
15.4.3 在嵌入式SQL內
15.4.4 處理RAISE EXCEPTION
15.5外部聯(lián)合語法
15.6 日志模式
15.7 AutoCommit
15.8 隔離級別(isolation level)
15.9 小結
第四部分 高級課題
第16章 PowerBuilder基礎類庫(PFC)
16.1 目標
16.2 什么是PFC
16.3 什么是SBA
16.4 PFc體系結構
16.5 PFC主要對象和服務
16.5.1 PFC對象
16.5.2 PFC服務
16.6 PFC開始向導
16.7 PFC快速入門
16.8 PFC示例應用
16.9 使用公共PFC對象和服務
16.9.1 PFC常量
16.9.2 菜單
16.9.3 數(shù)據(jù)窗口(u_dw)
16.9.4 Resize服務
16.9.5 Linkage服務
16.9.6 分隔條
16.9.7 狀態(tài)欄服務
16.10 更多預編碼腳本
16.10.1 應用程序對象
16.10.2 窗口(W_master或Descendant)
16.10.3 數(shù)據(jù)窗口
16.11 提示和訣竅--從PFC中獲得最大利益
16.12 速度要求
16.13 調試PFC
16.13.1 避免出現(xiàn)activate事件
16.13.2 PFC調試日志
16.14 PFC的變化
16.14.1 PowerBuilder 6中PFC的變化
16.14.2 PowerBuilder 7中PFC的變化
16.14.3 PowerBuilder 8中PFC的變化
16.14.4 PowerBuilder 9中PFC的變化
16.15 PFC資源
16.16 小結
第17章 第三方工具
17.1 目標
17.2 目前的狀況
17.3 如果不去找,就找不到
17.3.1 在因特網上尋找工具
17.3.2 出版文章和廣告
17.4 服務于為我們提供服務的人
17.5 購買與構建--激戰(zhàn)正酣
17.6 對選擇產品的建議
17.6.1 了解自己的需求
17.6.2 了解哪些是可用的
17.6.3 靈活性
17.6.4 考慮重組你的業(yè)務過程
17.6.5 現(xiàn)實
17.6.6 仔細考慮生產產品的公司的穩(wěn)定性
17.6.7 購買源碼
17.6.8 獲得參考
17.6.9 別為小錢出汗
17.7 工具類型
17.7.1 前期開發(fā)工具
17.7.2 協(xié)同執(zhí)行工具
17.7.3 提高效率的工具
17.8 產品列表
17.8.1 編碼實用工具
17.8.2 重新生成/構造工具
17.8.3 測試工具
17.8.4 Web移植工具
17.8.5 Case、設計和分析工具
17.8.6 代碼框架
17.8.7 終端用戶報表工具
17.8.8 其他的實用工具
17.9 其他Sybase工具
17.10 小結
第18章 公共控件
18.1 目標
18.2 Win32 API是什么
18.2.1 尋找好的文檔
18.2.2 C語言風格的文檔
18.2.3 從C的數(shù)據(jù)類型到PowerBuilder的數(shù)據(jù)類型的轉換
18.2.4 從Win32 API調用到PowerBuilder外部函數(shù)的轉換
18.2.5 SendMessageA和SendMessageW的區(qū)別
18.2.6 重載SendMessage
18.2.7 為消息ID創(chuàng)建常量
18.2.8 從C的結構到PowerBuilder結構的轉換
18.2.9 封裝Win32 API調用
18.2.10 回顧
18.3 消息子系統(tǒng)
18.3.1 窗口句柄和事件
18.3.2 編程實現(xiàn)發(fā)送消息
18.3.3 子窗口、父窗口和通知消息
18.3.4 編程創(chuàng)建窗口
18.3.5 回顧
18.4 公共控件
18.4.1 公共控件列表清單
18.4.2 公共控件DLL版本
18.4.3 如何確定安裝的COMCTL32.DLL是哪個版本
18.4.4 回顧
18.5 PowerBuilder外部可視化對象
18.6 封裝一個公共控件
18.6.1 從哪里開始
18.6.2 初始化公共控件
18.6.3 窗口風格和類名
18.6.4 消息ID
18.6.5 向公共控件發(fā)送消息
18.6.6 在函數(shù)中封裝消息
18.6.7 將實現(xiàn)與可視化控件聯(lián)系起來
18.6.8 實現(xiàn)非可視化用戶對象
18.6.9 回顧
18.7 創(chuàng)建可視化組件
18.7.1 使用公共控件
18.7.2 回顧
18.8 小結
第19章 PowerBuilder本機接口(PBNI)
19.1 目標
19.2 什么是PBNI
19.2.1 IPB_Session
19.2.2 IPB_Value
19.2.3 IPB_Arguments
19.2.4 IPB_VM
19.3 PBNI SDK
19.4 構建PBNI擴展
19.4.1 實現(xiàn)PBNI類
19.4.2 PBNI要求的功能
19.4.3 構建PBNI擴展DLL
19.5 你的第一個PBNI類
19.5.1 創(chuàng)建PBNI DLL
19.5.2 創(chuàng)建PBD
19.5.3 創(chuàng)建PB客戶端
19.5.4 示例回顧
19.6 使用PBNI對象
19.6.1 用PowerBuilder交換數(shù)據(jù)
19.6.2 調用PowerScript對象函數(shù)
19.6.3 回顧PBNI回調示例
19.7 觸發(fā)PowerBuilder事件
19.8 PBNI全局函數(shù)
19.9 從PBX內部調用PowerScript系統(tǒng)函數(shù)
19.10 訪問和操作數(shù)組
19.10.1 PBBoundedArrayCreator
19.10.2 PBUnboundedArrayCreator
19.10.3 PBArrayAccessor
19.10.4 PBBoundedObjectArrayCreator
19.10.5 PBUnboundedObjectArrayCreator
19.10.6 PB0bjectArrayAccessor
19.11 PBNI可視化對象
19.11.1 GetWindowClassname
19.11.2 CreateControl
19.11.3 可視化PBNI示例回顧
19.12 在PowerBuilder中處理PBNI異常
19.13 調試PBNI類
19.14 部署你的PBNI擴展
19.15 在第三方應用程序中加載PowerBuilder虛擬機
19.16 PBNI實用工具
19.16.1 PBSIG90
19.16.2 PBX2PBD90
19.17 小結
第20章 對象鏈接與嵌入
20.1 目標
20.2 OLE環(huán)境
20.2.1 早期綁定與晚期綁定
20.2.2 ActiveX設計器
20.3 OLE自定義控件
20.4 OLE自動化
20.5 OLEStream和OLEStorage
20.6 小結
第21章 未來的方向
21.1 目標
21.2 前景
21.3 .NET
21.3.1 對XML服務的支持
21.3.2 Data Window.NET和DataStore.NET
21.3.3 從PowerBuilder IDE中創(chuàng)建.NET對象
21.3.4 對.NET的支持
21.4 Java
21.4.1 EAServer中的Web服務
21.4.2 EJB客戶端、PowerBuilder Web服務和JSP
21.4.3 第三方應用服務器中的Power.Builder NVO
21.5 移動目標
21.6 IDE集成
21.7 小結
附錄
附錄A Sybase自適應服務器企業(yè)參考手冊
附錄B Oracle參考手冊
附錄C 第三方工具參考手冊