最近几天想搞搞Interbase,也算除了SQL Server之外另外掌握一门网络数据库,但是发现Interbase对于开发者简直是一种折磨. 下面将几天遇到的一些问题列一下: 1.SQL不完全支持数据结构的修改功能,比如建立了一个表,对表加了一个描述(Description),在Interbase系统表中这个描述是BLOB类型的,不能用SQL直接操作,因此想用建模工具生成脚本的方式无法将设计创建到物理数据库.晕. 2.数据表一旦创建无法改名,系统又不提供改名用的存储过程,如果强行在系统表里改名,则基于此表的所有索引等依存对象将丢失.因此只有自己写一个存储过程在所有系统表内有依存关系的所有对象数据关联更新才行.难道这不是系统本身应该提供的基本功能吗?再晕! 3.可恶的主键.不知道Interbase怎么考虑的,一个用户表的主键竟然是一个系统对象,不让删除,还不让改主键字段名!晕晕晕. 4.字段类型改动居然要清空数据表所有数据,我在改动一个表的字段时遇到,晕倒.
.... 总而言之,Interbase总是让一个开发者为一些不该考虑的基本问题分神,花主要时间在不相关的东西上.在数据库里创建任何对象都可以,但是一旦创建想改想删,嘿嘿,搞死你.不玩了,3天时间算白费了.
如果我错了,此贴就算讨论帖,您拍砖.
.... 总而言之,Interbase总是让一个开发者为一些不该考虑的基本问题分神,花主要时间在不相关的东西上.在数据库里创建任何对象都可以,但是一旦创建想改想删,嘿嘿,搞死你.不玩了,3天时间算白费了.
如果我错了,此贴就算讨论帖,您拍砖.
我正在把翠前香港用的INTERBASE轉成MSSQL呢,那東西太垃圾了,慢得讓人發瘋。
纯粹Delphi自身的多层框架的实现,几乎都只是达到了玩具的程度,也只能做做Demo给人看,真的到了实战场合,就会暴露出完全不可行:
1)COM+虽然好,却部署困难,难于管理,无法穿透防火墙,诚然有scktsrvr.exe或httpsrvr.dll这样的转接桥程序,却会因为多出一个数据转接口模块从而品质大为下降;
2)exe形态的DCOM的Midas Server部署起来好一些,但是其稳定性、性能却比较低下,没有object pooling,是instance per connection的方式,几乎无法应对大量客户端的场合,而且往往很难直接使用,大多是配合scktsrvr.exe,用socket的方式连接;
3)Delphi的Web Service只能说是“权宜之计”,是稍微可用一点的Delphi的互联网解决方案。不过,相比于其他的支持Web Service的开发平台,Delphi的Web Service毫无突出之处:开发方便性和性能,都不如Asp.Net;跨平台、绿色性、成熟性,不如Java及其一大堆基于Java的Application Server。Delphi是个高效率的语言,可是在其自身的Web Service实现上,并没有作很好的优化。
4)IntraWeb也同样是一套玩具级别的开发平台,高不成、低不就,纵然发挥到了极致,不过是和asp.net差不太多。
5)直接用ActiveForm开发Web系统,这种方法不加变通的来用的话,几乎完全不可行,如果你的系统是一大堆每个1、2M的OCX文件,这将是一件多可怕的事情:每个模块都要注册,同时每个模块更新后,打开页面要等很长时间安装这个模块。
独头蒜的Delphi就是这么一个东西:貌似有很多路可以走,但实际上每条路都走不通。不过熟悉Delphi的人都明白,Delphi的好处并非是它提供了现成的好东西,而是用它能做出好东西来。Delphi的很多思想和模式是好的,只是实现的并不很到位,比如说Midas。实现的不到位,那我们自己来实现好了。
CBX RIA框架就是这么个东西,其实是发扬了Delphi的特色,同时又把欠缺的东西补齐了:
1、采纳一个强有力的Web Server(例如Apache或IIS)直接当作应用服务器
2、发挥优势,客户端用VCL,用bpl的机制给客户端减肥
3、中间层无状态,Pooling
4、直接采用http协议通讯,天然穿透防火墙
5、热部署程序模块,解决部署的麻烦
6、用一个小exe初始化程序,来初始化浏览器,绕开浏览器安全设定的麻烦。CBX RIA框架几乎是国产多Delphi层框架中最好的一个,同时体现SmartClient和RIA思想。
CBX RIA Demo(需要客户端初始化): http://117.21.247.37/cbx/AppSvr.dll/Splash.ao
有关CBX RIA的评论:http://www.firebird.net.cn/forum_view.asp?forum_id=2&view_id=2251
刚创建的CBX RIA讨论区
http://www.firebird.net.cn/forum_list.asp?forum_id=11
CBX RIA案例:
http://www.firebird.net.cn/forum_list.asp?forum_id=12CBX RIA QQ群
主讨论群:53623431(已满)
第二群:16169282(已满)
第三群:63756040
第四群:64740999
第五群:511572126CBX的作品:
IBEXPERT等工具也是非常强大
LZ不要碰到一点问题就说IB不行啊
进来凑热闹。。
我平时还是选用MS-SQL和Access。Access非常小巧,可TMD就是缺少存储过程,很不爽。
个人觉得不甚满意的主要的问题是:
1,字符集问题,utf8字符集不好用,不是按codepoint来算字,而是按字节算字。在stored-proc里使用汉字字符串常量要小心,有时候会导致问题,但是没有提示。好像新版本2.0解决了这个问题。
2,索引字段的最大字节数比较小。
3,安全性比较差,用户密码最大长度8
4,不支持动态sql的cursor,只支持stored-proc里面定义的cursor不过优点也是有的,感觉挺稳定的,好几年了,没给我添过什么麻烦。性能方面没比较过,不好说,但在原理上它是属于快的那种。其他方面比较吸引的,就是这个数据库比较小巧。如果上面几个问题都解决好了,我给它打80分,现在只能打75分。不过,如果用在关键业务或者并发更新较多的环境,应该慎重,没这方面经验。