说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

开 发AS/400 应 用 系 统: PB5 与Delphi3 的 比 较

HTML文档下载 WORD文档下载 PDF文档下载
开 发AS/400 应 用 系 统: PB5 与Delphi3 的 比 较

PowerBuilder 和Delphi 分 别 是SYBASE 公 司 和Borland 公 司 的 两 个 拳 头 产 品, 都 是 目 前 开 发Client/Server 应 用 两 个 最 优 秀 的 前 端 工 具, 各 有 各 的 优 势。 根 据 本 人 对 两 种 软 件 的 使 用 经 验, 现 就 具 体 在AS/400 上 作 应 用 系 统 开 发, 将 两 者 作 些 比 较。 水 平 有 限, 认 识 浅 显, 望 同 行 指 正。

一、 对AS/400 数 据 库 的 访 问

PowerBuilder 和Delphi 都 可 通 过ODBC 来 访 问DB2/400, 但 由 于 其 速 度 慢, 不 予 考 虑。

AS/400 在 全 球 的 总 装 机 量 超 过50 万 台, 而 由 于 其 开 发 工 具(RPG、COBOL 等) 又 相 对 落 后,SYBASE 公 司 和Borland 公 司 为 寻 求 扩 大 其 前 端 工 具 的 应 用 市 场, 针 对AS/400, 都 提 供 了 中 间 产 品。SYBASE 公 司 的 中 间 件 产 品 为DirectCONNECT for AS/400,Borland 公 司 的 中 间 产 品 为IDCO400。

DirectCONNECT IDCO400

结 构: 在 中 间 层 增 加 网 关 设 备(NT), 结 构 复 杂, 但 可 为 数 据 仓 库 服 务 器Sybase IQ提 供 数 据 来 源。

访 问 速 度: 不 详

支 持 双 字 节: 是

可 在 终 端 上 直 接 访 问AS/400, 结 构 简 单,操 作 简 单。

速 度 较 快

二、 应 用 开 发 编 程 比 较

应 用 开 发 编 程 从 以 下 几 个 方 面 来 比 较:

1 . 面 向 对 象 的 编 程 语 言

(a)PowerBuilder 和Delphi 都 采 用 了 面 向 对 象 编 程 方 法, 都 提 供 了 面 向 对 象 的 应 用 程 序 架 构,PowerBulder 应 用 程 序 架 构 叫 应 用 对 象(Application Object), 扩 展 名 为.pbl,Delphi 应 用 程 序 架 构 是 工 程(Project), 扩 展 名 为.dpr。Delphi 提 供 的 应 用 程 序 架 构 功 能 更 强。PowerBuilder 可 以 通 过 为 主PBL 文 件 指 定 其 它PBL 文 件 的 路 径, 将 多 个PBL 文 件 编 译 为 一 个EXE 文 件, 这 个 功 能 的 好 处 是 可 以 将 一 个 大 的 应 用 分 割 为 小 的 模 块, 即 多 个PBL 文 件, 再 合 并 编 译, 而 且 提 高 软 件 的 运 行 效 率。 而Delphi 的 一 个Project 只 能 编 译 为 一 个EXE 文 件, 这 对 于 多 人 合 作 开 发 项 目 比 较 麻 烦, 需 要 将 多 个Project 合 并 为 一 个Project, 容 易 发 生 冲 突, 除 非 每 个Project 编 译 为 一 个EXE 文 件。

(b)Delphi 提 供 的Object Pascal 语 言 是 标 准 的 面 向 对 象, 而PowerBuilder 所 使 用 的 开 发 语 言Script 封 装 在PowerBuider 提 供 的 面 向 对 象 控 件 中,Script 本 身 并 不 是 面 向 对 象 语 言。

(c) 在PowerBuilder 的Script 中 可 随 意 嵌 入SQL 语 句, 使 用 灵 活。 使 用Delphi 编 程,SQL 语 言 需 要 与Tquery 元 件 一 起 使 用。

(d)PowerBuilder 能 自 定 义 函 数,Delphi 能 自 定 义 函 数 和 过 程,PowerBuilder 不 区 分 函 数 和 过 程。

(e)PowerBuilder 和Delphi 都 能 调 用 动 态 连 接 库, 但Delphi 还 提 供 了 包(Package) 的 功 能, 这 比PowerBuilder 要 高 明。

2 . 可 视 化 组 件 库

(a)PowerBuilder 和Delphi 都 提 供 了 功 能 完 整 的、 与Windows95 完 全 兼 容 的 可 视 化 组 件, 这 些 组 件 的 使 用 和 继 承 大 大 减 少 了 代 码 的 编 写 与 维 护 成 本。 相 比 之 下,Delphi 比PowerBuider 提 供 的 可 视 化 组 件 要 多 不 少, 有130 多 个 元 件。

(b)PowerBuilder 提 供 用 户 自 定 义 对 象 的 功 能,Delphi 提 供 用 户 定 义 元 件 的 功 能。PowerBuilder 为 每 个 控 件、Delphi 为 每 个 元 件 都 定 义 了 属 性 和 可 能 有 的 事 件。 在 这 方 面 两 者 类 似。 但PowerBuilder 能 让 用 户 为 现 有 的 控 件 增 加 用 户 自 定 义 事 件, 来 满 足 用 户 的 一 些 特 殊 要 求, 而 并 不 需 要 定 义 新 的 用 户 对 象, 节 省 工 作 量。Delphi 不 能 为 现 有 的 元 件 再 增 加 事 件, 只 能 通 过 继 承 现 有 元 件 来 定 义 新 的 元 件, 这 样 工 作 量 大。

3 . 对 数 据 库 的 处 理

(a)Delphi 为 访 问 数 据 库 提 供 了 两 组 元 件Data Access 和Data Controls, 对 于 标 准 需 求 的 应 用 处 理 非 常 高 效、 快 速, 程 序 编 码 少。Delphi 还 具 有 一 个 突 出 优 点, 就 是 在 元 件 参 数 设 置 正 确 后, 即 能 看 见 所 需 访 问 的 数 据 库 中 的 数 据。 而PowerBuilder 则 需 要 编 译 运 行 才 能 得 到 数 据。

(b)PowerBuilder 在 处 理 数 据 库 应 用 方 面 的 突 出 贡 献 就 是 数 据 窗 口(DataWindow), 数 据 窗 口 的 功 能 强 大, 特 别 是 同 时 处 理 多 个Table 时, 显 得 得 心 应 手。PowerBuilder 的Grid 类 型 数 据 窗 口 的 字 段 对 象 不 仅 可 以 嵌 入CheckBox、RadioButtons、EditMask、DropDownListBox, 而 且 可 以 嵌 入DropDownDW,DropDownDW 可 以 是 其 它Table 的DataWindow, 这 一 功 能 非 常 有 用。 而Delphi 的DBGrid 不 具 有 这 种 功 能, 不 能 嵌 入DBEdit、DBListBox、DBComboBox 等。Delphi 在 处 理 多 个Table 时, 除 用 主、 从 表 的 处 理 方 法 外, 其 它 手 段 少, 灵 活 性 较 差。

(c) 在 处 理 报 表 功 能 方 面,PowerBuilder 似 乎 比Delphi 要 强,PowerBuilder 可 以 一 个DataWindow 嵌 入 其 它 的DataWindow。 这 与PowerBuilder 处 理 多 报 表 功 能 强 有 关。 而Delphi 在 处 理 报 表 时, 还 是 用 主、 从 表 的 处 理 方 法。

4 . 打 印 功 能

PowerBuilder 的 控 件 打 印 功 能 强 大,MultiLineEdit、RichTextEdit、DataWindow 都 具 有 打 印 功 能, 即 所 见 到 的 就 能 打 印。 而Delphi 除 了QuickReport 具 有 打 印 功 能 外, 其 它 元 件 本 身 就 没 有 打 印 功 能, 需 要 用TPrinter 编 程 实 现, 比 较 麻 烦。

5 . 数 据 统 计 分 析

在 数 据 统 计 分 析 方 面,PowerBuilder 只 提 供 了Graph 类 型 的DataWindow, 可 作 些 简 单 的 统 计 分 析。Delphi 除 了 有 与PowerBuilder 的Graph 类 型 的DataWindow 相 类 似、 但 功 能 要 强 的TeeCharts 元 件 和QuickReport 元 件 外, 还 提 供 了Decision Cube 元 件 组, 在 交 叉 分 析 表 提 供 多 维 数 据 分 析 的 能 力 要 明 显 比PowerBuilder 强。

三、 与AS/400 系 统 的 兼 容 性 比 较

Delphi3/400 提 供 了 与AS/400 相 兼 容 的 三 组 元 件 — —SCD400 Data、SCD400 System 和SCD400 DB。 其 中SCD400 Data 和SCD400 DB 两 组 元 件 与 普 通Delphi 3.0 所 属 两 组 元 件Data Access 和Data Controls 中 元 件 具 有 相 同 或 类 似 的 功 能。 这 些 元 件 对 于 较 复 杂 的 数 据 处 理, 使 用 起 来 并 不 好 用, 灵 活 性 较 差。 在SCD400 System 元 件 组 中, 提 供 了5 个 元 件, 有 可 以 直 接 调 用AS/400 PGM 程 序 的Call400 元 件、 可 以 直 接 调 用A/400 CL 命 令 的Cmd400 元 件、 可 以 访 问AS/400 DataArea 的DataArea 元 件、 与AS/400 数 据 队 列 有 关 的DataQueue 和DeatQueueMessage 元 件。 这5 个 元 件 对 于 利 用 现 有AS/400 的Program 程 序 和AS/400 的 特 点 很 有 用。

至 于PowerBuilder 与AS/400 的 兼 容 性, 没 有 这 方 面 的 资 料。

四、 产 品 分 发 工 具 PowerBuilder 5.0 提 供 的 产 品 分 发 工 具 是InstallBuilder。Delphi3.0 提 供 的 产 品 分 发 工 具 是InstallShield。InstallBuilder 制 作 过 程 相 对 复 杂。 而InstallShield 制 作 过 程 相 对 简 单, 成 功 率 高。

五、 学 习 与 帮 助

PowerBuilder 是 一 种 开 发 数 据 库 应 用 的 优 秀 工 具; 而Delphi 则 是 一 种 语 言, 是 具 有 很 强 的 数 据 库 应 用 开 发 功 能 的 语 言。PowerBuilder 所 使 用 的 开 发 语 言Script, 好 学 易 懂, 经 过 较 短 的 时 间 学 习 便 可 进 行 程 序 开 发。 但Delphi 的Object Pascal 内 容 多, 比 较 难 学, 需 要 面 向 对 象( 类) 的 概 念, 熟 悉 编 程 语 言 的 时 间 较 长。

Delphi 提 供 了 易 学 易 用、 具 有 很 高 生 产 效 能 的 RAD C/S 开 发 工 具 ─ ─Code Insight。 此 工 具 即 能 让 程 序 员 在 写 代 码 时, 只 要 写 出 对 象 实 例,Code Insight 即 能 显 示 此 对 象 的 所 有 过 程、 函 数、 方 法 和 事 件, 及 其 参 数, 供 程 序 员 参 考 和 选 择。PowerBuilder 无 此 功 能。 PowerBuilder 提 供 的 帮 助, 分 类 条 理 清 晰, 查 找 方 便, 且 每 个 函 数 都 有 详 细 的 例 题。 而Delphi 的 函 数 使 用 例 题 相 对 少 些。

毕 竟PorwerBuilder 是 一 种 开 发 数 据 库 应 用 的 优 秀 工 具; 而Delphi 则 是 一 种 语 言, 一 种 具 有 很 强 的 数 据 库 应 用 开 发 功 能 的 语 言,Delphi 能 做 许 多PowerBuilder 不 能 做 的 事 情。

VB如何使你的程序同文件扩展名建立关联? VB如何提高调用WINDOWS API函数编程技巧 VB如何为你的应用程序设置热键? VB如何隐藏鼠标指针 VB如何用api检查任务栏中有多少种输入法 VB如何在函数中传递数量不定的参数? VB使用 kb_event 函数模拟键盘操作 VB使用API获取颜色 VB使用标签控件调出浏览器 VB使用调用外部程序函数实现API函数高级功能 未公开API函数揭秘——通用对话框-VB资料 显示文件属性对话框-VB资料 VB用 API 打开打印对话框 VB用API函数改进ListView控件的显示效果 VB用API函数控制光驱的开关 VB用注册表保存数据(VB函数篇) 有关Tray系统盒的VB API函数 在VB中调用API函数动态改变及恢复屏幕设置 在VB中控制Ctrl+Del+Alt键 在VB中使用API函数 (之二) 在VB中使用API函数 (之三) 在VB中使用API函数 (之四) 在VB中使用API函数 (之五) 在VB中使用API函数 (之一) 在VB中用API实现多媒体 VB怎样用VB在应用程序中调用API VB怎样在DELPHI中使用API函数 指定文件夹-VB资料 VB5中注册控件三法 Bug:维护 Internet Transfer Control 之 Username 及 Pass VB对低层硬件访问控制 EJB菜鸟级问题,我有分可捐赠,那位要请在这里说 报错的原因(Invalid cursor state) infopower有没有for BCB5的呢??哪里可以下载?? 奇怪的现象! 关于接口 请大家提供方案 同志们我想问的是高程中考的是标准C还是C++ SQL查询结果问题 在Delphi中我如何得到,打印机任务个数? 刚上来散分了 安装softice后,机器不能启动了!!!!!! datawindow的edit有editchanged事件,即一改变内容就触发,我想将这个事件加在multilineedit控件里,自定义事件要选择哪个EventID? 在存储过程中如何使用表名变量? 一点小问题,请帮帮忙 菜鸟求助 用VC对WORD文档进行一些操作,高分求救 Suspicious pointer conversion 是什么警告啊? 有哪位高手知道微软提供的的简繁互转的组件是哪个,在线等待,高分送 紧急求助!!既可以选择还可以接受用户输入的下拉选框!!万分感谢!! 在jsp页面中如何实现显示一行文字消息后再更改该文字的内容?? 高分求Excel基本操作代码,如打开关闭文件、取单元格数据之类的 关于MSHFLexGrid与ADODC的几个问题 什么是内建数据库? 请问Delphi 6怎么样才能激活Invokable向导? 安装softice后,不能启动机器了!!!!!!!! 听听StringGrid 隐藏行的好建议,别讲RowHeight[i]=0阿 关于VB调用Excel打印报表的问题 哪有电脑知识问答题? 我有项目,有谁参加??? 请问哪儿能下载模块 ming? 这样的情况还能用StringGrid吗???如果不可以那用什么?DBgrid? 致JAVAMAIL配置不成功者--即编译通过但运行不了的朋友 请问asp.net 项目开发中,页面设计与代码编写如何分工 这个地方怎么回事?(代码) 不能上网??为什么?我想不明白?? ASP包含文件问题,给分50,在线等候ING。。。。 怎樣在applet中控制button的大小和具體位置? 从Microsoft操作系统的发展中,我们可以看到操作系统最终目标是OFS,它基于一种内建数据库技术,最终什么样的数据库,也就是何为内建数据 鼠标左键按下拖动是对应的windows消息是哪个?(像WM_LBUTTONDOWE) 与市场上通过网站的web发送短信相反,web能接受短信吗?如何完成? 与市场上通过网站的web发送短信相反,web能接受短信吗?如何完成? 我有项目,有谁参加??? 要用jdbc连接两个用户怎么办? 怎样取出字符串? 请问哪里有支持代理服务器的telnet客户端? 用vbscript将list框里的多选的值读出来,急!在线等待 想在北京找个JAVA或XML及相关技术开发方面的工作(大学毕业后工作三年,然后读了统招的研究生) 用VBscript 取当前页form 中项目的值。 请问在JBuilder7中,如何引入javax.xml.parsers.*;org.xml.sax.*;org.w3c.dom.*; 急需要原代码 如何在delphi 6中的 采单加入图片背景?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘