|
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公司的中间件产品为DirectCONNECTforAS/400,Borland公司的中间产品为IDCO400。
DirectCONNECTIDCO400
结构:在中间层增加网关设备(NT),结构复杂,但可为数据仓库服务器SybaseIQ提供数据来源。
访问速度:不详
支持双字节:是
可在终端上直接访问AS/400,结构简单,操作简单。
速度较快:是
二、应用开发编程比较
应用开发编程从以下几个方面来比较:
1.面向对象的编程语言
(a)PowerBuilder和Delphi都采用了面向对象编程方法,都提供了面向对象的应用程序架构,PowerBulder应用程序架构叫应用对象(ApplicationObject),扩展名为.pbl,Delphi应用程序架构是工程(Project),扩展名为.dpr。Delphi提供的应用程序架构功能更强。PowerBuilder可以通过为主PBL文件指定其它PBL文件的路径,将多个PBL文件编译为一个EXE文件,这个功能的好处是可以将一个大的应用分割为小的模块,即多个PBL文件,再合并编译,而且提高软件的运行效率。而Delphi的一个Project只能编译为一个EXE文件,这对于多人合作开发项目比较麻烦,需要将多个Project合并为一个Project,容易发生冲突,除非每个Project编译为一个EXE文件。
(b)Delphi提供的ObjectPascal语言是标准的面向对象,而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为访问数据库提供了两组元件DataAccess和DataControls,对于标准需求的应用处理非常高效、快速,程序编码少。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元件外,还提供了DecisionCube元件组,在交叉分析表提供多维数据分析的能力要明显比PowerBuilder强。
三、与AS/400系统的兼容性比较
Delphi3/400提供了与AS/400相兼容的三组元件——SCD400Data、SCD400System和SCD400DB。其中SCD400Data和SCD400DB两组元件与普通Delphi3.0所属两组元件DataAccess和DataControls中元件具有相同或类似的功能。这些元件对于较复杂的数据处理,使用起来并不好用,灵活性较差。在SCD400System元件组中,提供了5个元件,有可以直接调用AS/400PGM程序的Call400元件、可以直接调用A/400CL命令的Cmd400元件、可以访问AS/400DataArea的DataArea元件、与AS/400数据队列有关的DataQueue和DeatQueueMessage元件。这5个元件对于利用现有AS/400的Program程序和AS/400的特点很有用。
至于PowerBuilder与AS/400的兼容性,没有这方面的资料。
四、产品分发工具
PowerBuilder5.0提供的产品分发工具是InstallBuilder。Delphi3.0提供的产品分发工具是InstallShield。InstallBuilder制作过程相对复杂。而InstallShield制作过程相对简单,成功率高。
五、学习与帮助
PowerBuilder是一种开发数据库应用的优秀工具;而Delphi则是一种语言,是具有很强的数据库应用开发功能的语言。PowerBuilder所使用的开发语言Script,好学易懂,经过较短的时间学习便可进行程序开发。但Delphi的ObjectPascal内容多,比较难学,需要面向对象(类)的概念,熟悉编程语言的时间较长。
Delphi提供了易学易用、具有很高生产效能的RADC/S开发工具──CodeInsight。此工具即能让程序员在写代码时,只要写出对象实例,CodeInsight即能显示此对象的所有过程、函数、方法和事件,及其参数,供程序员参考和选择。PowerBuilder无此功能。PowerBuilder提供的帮助,分类条理清晰,查找方便,且每个函数都有详细的例题。而Delphi的函数使用例题相对少些。
毕竟PorwerBuilder是一种开发数据库应用的优秀工具;而Delphi则是一种语言,一种具有很强的数据库应用开发功能的语言,Delphi能做许多PowerBuilder不能做的事情。
|