FireBird应用开发宝典样章

上传人:新** 文档编号:493888792 上传时间:2023-04-23 格式:DOC 页数:23 大小:777KB
返回 下载 相关 举报
FireBird应用开发宝典样章_第1页
第1页 / 共23页
FireBird应用开发宝典样章_第2页
第2页 / 共23页
FireBird应用开发宝典样章_第3页
第3页 / 共23页
FireBird应用开发宝典样章_第4页
第4页 / 共23页
FireBird应用开发宝典样章_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《FireBird应用开发宝典样章》由会员分享,可在线阅读,更多相关《FireBird应用开发宝典样章(23页珍藏版)》请在金锄头文库上搜索。

1、前言从来没有过这么一种数据库,能够像InterBase/FireBird一样富有激情。这是一种完全为程序员准备的数据库,就像瑞士军刀一样小巧、方便、实用。以往的数据库,不是太大太笨重(例如,Oracle、MS SQL、DB2),就是太简陋,功能不足(例如My SQL)。而InterBase/FireBird则是在两者之间找到了一个很好的平衡点,笔者不妨称之为“中型数据库”。随着硬件环境的不断发展,普通的个人电脑的计算能力越来越逼近并不太久以前的大型计算机的能力,这种趋势同时也大大推动了与此相适应的中型数据库的应用。中型数据库逐渐蚕食大型数据库的市场,这几乎是一个明显的趋势。随着软硬件条件的不断

2、发展,很多大型数据库的很多极其复杂的特性,今天看来逐渐成为了不必要。今天的软件用户更加渴求“简单、实用、绿色”。InterBase/FireBird数据库几乎就是为这个宗旨而量身定制的。和InterBase/FireBird相当的数据库引擎还有MySQL、PostGre SQL两种数据库。和后两种数据库相比,InterBase/FireBird数据库有着最为充沛而友好的开发工具,市面上专门用于这两种数据库的建库工具,就不下十来种,几乎每个资深的Delphi/IB/FB开发者都恨不得自己也做一个管理工具。最为流行的管理开发工具,例如IBExpert,在不断的发展完善下,其功能甚至于早已超过了其他

3、商用大型数据库的企业管理器。InterBase/FireBird和Delphi、C+Builder两种工具结合非常紧密,因而,在C/S应用开发方面,InterBase/FireBird占有上风,能够开发出最为细腻友好的客户端UI。InterBase/FireBird数据库目前正在迅速发展,它们所需要的是更多实战应用的考验,其中特别包括了大型Web应用的考验。在这方面,MySQL相对而言更成熟一些。但是,随着InterBase/FireBird用户的不断增多,笔者相信,这个只是个时间的问题。中型数据库中,没有一种数据库提供了InterBase/FireBird所带来的如此完备的内在构架,如此丰富

4、强大的SQL支持,如此简洁的使用、维护方式,以及精华所在的存储过程语言。相信这些优异的特性总有一天会在业界放出应有的光芒。InterBase/FireBird数据库是两个分支的合称。InterBase是Borland/CodeGear公司的数据库产品,而FireBird则是开源组织持续开发的免费开源版本的InterBase。由于这两种数据库的核心特性几乎完全一样,所以,笔者书中阐述的特性绝大多数都同时适用于两种数据库。读者可以根据自己的情况需要,在这两种数据库之间进行选择。在InterBase/FireBird支持者的持续推动下CodeGear和FireBird开发组织都在持续的改进着这两种数

5、据库,所以,在未来还会出现更多的新特性,这些也许会在本书的后续版本中涵盖。相信本书的读者,也许会经常访问这两种数据库的官方网站,关注它们的发展,甚至于一定程度的参与到数据库引擎的改进中。目前市面上关于InterBase/FireBird数据库的书籍很早就已经有了,但是这些书籍都是关于这种数据库本身的功能阐述,相当于数据库的中文手册,这些书籍对该数据库的应用开发却论述甚少。本书的重点则在于针对这种数据库的应用开发上,面向的是实战性,包括和开发工具的结合以及系统的构架,一些应用开发层面的高级技术将被展开论述,这部分也是本书的精华所在,因而,本书的读者应该是具备一定编程经验的开发者。好,我在这里感谢

6、各方面人士的支持,我们这就开启InterBase/FireBird数据库激情之旅,执行一句:select 我们开始使用InterBase/FireBird数据库了! as result from RDB$DATABASE构建高度智能化的关系数据库系统现代的应用软件系统的用户,越来越希望软件系统更加的易于维护,使用过程透明化,希望软件本身对人的要求更低,尽量少的涉及专业的计算机知识,使计算机操作者能够更加专注于业务本身。这些,或许就是所说的“软件系统智能化”。感谢InterBase/FireBird,使这一高度挑战性的目标实现起来并不困难。由于特定的历史背景,InterBase/FireBird

7、的开发接口比其他数据库公开的更加彻底,再加之InterBase/FireBird数据库的体系结构也非常的简洁透明,所以用InterBase/FireBird构架智能化的系统就来的比较顺利。构架纯绿色客户端软件所谓的“绿色软件”,就是指,程序文件拷贝到空白电脑上面,就能直接运行,不必注册ocx文件、不必读写注册表、不必在系统文件夹下面拷贝文件、以及不必做其他特殊的操作。随着软件风格潮流的返璞归真的趋势,市面上很多的软件产品都以标榜自己为“绿色软件”为荣。“绿色软件”的标准是有一定道理的,一方面,它不会给操作系统环境带来污染,另一方面,更重要的一点,绿色软件有更好的健壮性和便携性。例如,如果系统需

8、要在系统文件夹下面放置若干动态库,那么这些动态库就有可能和其他系统的同名动态库产生冲突,或产生不同版本的混淆,因而增加了故障的概率。Client/Server数据库的绿色化并不是一件容易的事情,因为很多的大型数据库的客户端的安装必须依赖数据库开发商提供的安装程序,完全的不透明。因此,开发出小巧、绿色的客户端软件一直是商业开发者的一个话题值得一提的是,在开发语言方面,目前最适合制作绿色软件的,仍然是老牌子的Delphi/C+Builder for Win32。我们这里以经典的Delphi 7为例来考察绿色数据库软件的制作。有如往常一样,我们在Delphi中创建好一个应用程序,养成良好的习惯就是,

9、空白程序一上来,先创建后目录结构,把可执行文件输出路径和源代码路径分离开来,同时创建好数据库存放路径,路径之间的相对关系尽量和用户现场一致。如下图,可执行文件输出路径是Bin目录,而数据库文件存放在DB目录下。作为最简单的程序,我们直接在主窗体上放置了数据库连接控件,并且在数据库中创建了表,使控件在设计时连向了该数据库,几乎与以前没有什么差别:编译之后,我们发现Bin目录中多了一个999k的可执行文件,执行起来,和往常一样顺利: 运行这个程序,我们用一个动态库分析工具看看它调用了哪些动态库: 在笔者的Windows XP中,Delphi7是经过一定改造的绿色版Delphi7,因此笔者的Wind

10、ows的System32中可以说只有WinXP自己原先的动态库。从图中可以看到,这个Project1.exe所用到的动态库,除了Windows的系统动态库之外,只有gds32.dll和midas.dll两个dll。由此看来,Win32的Delphi开发出的程序相当的干净绿色。在InterBase/FireBird数据库中,其客户端就是一个小小的动态库(gds32.dll或者FBClient.dll),这样,只要把客户端动态库和应用程序文件放到一起即可完成部署。好的,我们把动态库两个动态库拷贝到Bin目录下,这样不就可以了?确实,如果按照最低的绿色软件标准来衡量,这样确实已经可以了,至少你的软件

11、拷贝到空白环境中,真的可以运行起来。然而,作为专业级别的软件开发者,我们要快速的制作脍炙人口的软件作品,那么在知识上的要求就不能仅于此了。我们要结合Delphi和InterBase/FireBird数据库的特点,总结一套专门开发绿色软件系统的思路来。幸亏Delphi是开发绿色软件的能手,这使思路总结出来后,相当的清晰。如果用更加严格的眼光来看,这个小小的范例程序立即就需要一个重要的改进,那就是在单元的Uses中加入一个单元:MidasLib。好,笔者做了这件事情,从新编译,看看目标文件,发现竟然多了200K。这究竟发生了什么?这是因为MidasLib是Midas.dll的静态库。把它囊括到可执

12、行文件之中,可执行文件就不必再部署Midas.dll动态库了。从新分析一下这个可执行文件的动态库调用,发现果然没有了Midas.dll。Midas.dll对于Delphi程序来说,是一个特殊的动态库,它本身是一个COM库,需要注册。系统在寻找这样的动态库时,并非完全遵循Path路径,而是先看看注册表记录的路径,如果不存在,则会自动注册Path内能够找到的Midas.dll。然而,Delphi的每个不同的版本,都会带有不同版本的Midas.dll,这样,机器上所有程序,都引用最后一次安装的Midas.dll,这样,必然造成混乱。所以,在单元的Uses中加入MidasLib是非常必要的举动,直接让

13、程序免去依赖MidasLib。可执行文件+gds32.dll才是比较到位的绿色软件。对于一个有经验的软件设计人员而言,他的头脑中应该很清醒设计中存在哪些影响软件绿色化的因素,以及有一套评测软件绿色程度的标准和流程。笔者在这里试图做一个详尽的总结:1、 总结系统所用到的VCL控件集列表,列出每个控件的外部依赖性。一般来说,通常所说的“纯VCL”控件都是彻底绿色的组件,也就是说不必附带任何文件。但是也有很多VCL控件包需要外带动态库、ocx、甚至驱动程序。这些都应该在列表中体现。2、 除了VCL对象之外,系统是否用到了DLL或COM库?这需要对程序本身所用到的东西做一个统计。若系统需要部署带有oc

14、x后缀的文件,很明显,系统中用了ActiveX。但是,很多的COM对象库可能是以其他的后缀结尾,例如,dll。这需要开发者自己分析和整理。3、 明确程序中用到了哪几种数据库,以及针对每种数据库的访问方式。不同的访问方式有着不同的外部依赖性。如下表:数据库引擎绿色程度通用引擎BDE/SQL Links红色通用引擎DBX绿色,但需要部署动态库InterBase/FireBirdIBX纯绿色FIBPlus纯绿色通用引擎ADO对于MS数据库平台:绿色,但依赖OS的MDAC的版本对于其他数据库平台需要部署OLE DB Provider文件数据库EasyTable纯绿色AbsoluteDB纯绿色Halcy

15、on纯绿色内存表dxMemData纯绿色KbmMemTable纯绿色ClientDataSet纯绿色(需要引用MidasLib)OracleODAC纯绿色4、 明确所访问的数据库的客户端部署需要哪些文件。最容易处理的,就是客户端只要稍许动态库即可的数据库平台,这样的环境可以算成绿色客户端环境。但很多著名的数据库并不是如此,很可能需要注册COM对象,甚至于必需运行数据库厂商提供的安装盘。5、 软件进入测试环节后,应该用动态库依赖测试工具来分析程序在运行期间加载了哪些动态库。这一点仍然是非常重要的。这是对程序运行时依赖性的一种验证。如果程序“一不小心”调用了某些“不干净”的代码,那么在这个测试环节

16、中即可直接体现出来。如果没有测试工具,则也可以直接在开发工具的调试状态下,查看程序进程的Modules列表。6、 软件在测试的后期,可以直接在干净的OS上试运转。目前诸如VMWare之类的虚拟软件非常成熟了,可以借助这种工具来方便软件的测试。在InterBase/FireBird这个专题开发领域,“绿色”的概念还有着更加深入的内涵,我们下面进行深入一些的讨论。1、 如果我们的系统是面向单机用户,那么我们不妨考虑一下Embeded FireBird。这是把整个FireBird数据库合并到客户端动态库中的一个版本。也就是说,整个Server的功能都已经包含在了gds32.dll或者fbclient.dll中,那么程序的运行也就不再依赖于必需安装FireBird Server或者InterBase Server。这样一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号