关于DELPHI的数据控件DBGrid的置疑
关于DELPHI的数据控件DBGrid的质疑.
鄙人不才,从VFP中开始学习DELPHI.接触了DELPHI一段时间,觉得DELPHI的数据库组件远比VFP的弱智和不知所谓,尤其是DBEdit和DBGrid.VFP的数据控件常用的就Text和Grid,但是用得叫人省心.另外在数据实际操纵方面VFP也比DELPHI便捷N多倍.在VFP中的一个SCAN...ENDSCAN在DELPHI中就要用上好多代码.另外在指针类型方面常常是叫人莫名其妙的摸不着北.因为有太多的类型定义了,而且有些类型还不能直接转换,必须通过曲线求解.
下面先来讲讲DBEdit:
其中的Text控件其功能与DBEdit相当,但人家可以根据绑定的字段类型限制用户输入的内容.如果没有绑定字段的,只要赋上一个初值,就可以确定这个框可以接受的数据类型.字符,数值,日期,全部智能化.尤其是日期类型的,人家可以自动检测出日期是否合法.可能你说你可以用DBMaskEdit呀,但是这个在设定的掩码后仍然有不少的漏洞.如月份超出12,日子大于32等等,还不包含用粘贴功能插入非法的数据等.
在DBEdit中如果字符的内容全为空格,如果不全选内容的情况下就靠光标位置然后输入,根本不能输入任何内容.
其次再来讲讲DBGrid:
VFP的Grid控件要比DBGrid易用数倍,从外观控制到数据采集再到列中显示不同控件等等,都在设计时通过鼠标点击设定就可以达到所要求.而DBGrid则只能说:麻烦你自己写代码实现吧.
综上所述,我只能说:DELPHI号称智能,快速的设计软件,尤其在数据库方面享有盛名,但在VFP面前设计数据界面真的是三脚猫.
可能你会质疑:相关的第三方控件很多呀,你可以自行下载安装不就解决问题了吗?
那我只能回答:那是软件生产商(包括以前的Borland和现在的Embarcadero)极不负责任的表现,也是没有用心做产品的直接后果.你随便搞了一个毛坯品,然后就给了用户,当用户用着很不爽的时候,你就说:自己动用,风衣足食.我的产品没有问题呀.况且不是很多相关的附件你可以再另外安装来用吗?
用户都是希望自己用的产品能满足日常工作所需的,如果每次干同样的事都要写一大段代码来实现普通得不能再普通的功能的话,为何在做的时候不把这些功能做进去呢? 虽然类可以方便的继承来扩展,但为何不用心做得更好或者更易用呢?
我觉得现在的RAD真的一点也不RAD,相比VFP,稍为复杂一点的日常应用就必须自己大动干戈.以上只是鄙人的拙见.还望大家多提意见...
------解决方案--------------------
VFP了解不多,但了解一点并听人说过的,论数据的显示及操作,最好的应该是PB了。
------解决方案--------------------
VFP就是一垃圾,好几个版本之间都不兼容,还有直接修改dbf格式的数据库语句及其变态,和SQL92标准相差很大,不及VB的十分之一,更何况delphi的百分之一
------解决方案--------------------
我很羡慕你提的VFP那些方便。
不知道你有没有办法把你说的做一个小小的例子(最好是*.exe)
发给我看看。
我希望我正在改的类似DBGrid的控件可以像你说的VFP做的系统那么好用。
谢谢。
frank6600 at qq.com
------解决方案--------------------
Delphi 自帶的數據控件的確陽春...不過若搭配第三方之 EhLib 則無敵...懂得 VCL 門道的都知道如何將控件調整到最符合操作的型態~
每一種編程語言或編程工具皆有其優點...有時候不能因為自己不熟悉的領域未深入了解就說三道四的......
------解决方案--------------------
绝对的口水。VFP 比D 更少人用。还是在学校时的教学用的
------解决方案--------------------
没什么可比的,有人喜欢买毛坯房自己设计装修,最求更高的格调和品味,有人喜欢买开发商的精装房,省事,就象oracle和sql server一样,追求不一样,没有可比性
------解决方案--------------------
其实只要描述的方式跨了语言,读起来就会有不舒服的感觉。
但凭心而论,楼主提的弱项只要是事实就没必要在意。
Borland确实不太重视大家的需求呼声,
这些确实是Borland让人诟病的所在。
Delphi的标准数据控件真的有些让人哭笑不得的设计,
各位当初初学时不觉得奇怪吗?
比如D3用DBE连SQLServer,SELECT了一个数据表获得10笔数据,APPEND一笔,
POST后,仍然是10笔数据。最新APPEND那笔不见了。
这个让我当年苦不堪言。
当时在News上问了老外,老外说像SQLServer这类数据,这样的设计是合理的。
直到今天回想起,我仍然觉得“合理个屁!”
还有DBGrid,连SQLServer时,它不会一次把数据全读进来,
而是一次读一个Page的内容,当需要下一Page数据时再读下一Page的数据进来。
其结果导致DBGrid的ScrollBar只有四个状态,Top,Previous,Next,Bottom,不能任何拖曳。
其结果导致DBGrid的行为有点怪怪的。
不用问,其原因一定是:像SQLServer这类数据,这样的设计是合理的。
就是这些原因,所以DBGrid几乎不能用,一定要用Ehlib等第三方控件。
就是这些原因,ADO最后“几乎”完胜BDE。
这么多年了,不知道DBGrid改了上述问题没有。
当年花了一个多月Trace DBGrid的Source Code才明白它之所以不合理的地方在哪。
现在实在没有办法再抽一个多月时间来验证它进步了多少。
最后选择自己开发。
到现在,我仍在等官方的垃圾回收,
到现在,我仍在等官方的Exception Stack List。
这两个,Java和C#都是内置功能,Borland和EMB却认为是第三方的事,唉。
------解决方案--------------------
说实话Delphi自带的数据控件这么多年还真没用过,都是用的EhLib.
VFP是专注小型数据库的,在数据处理细节方面如果跟Delphi一样,还有活路吗?但Delphi还能做其他的事,术有专攻嘛。
------解决方案--------------------
总结一下之前看到的一些文档,就是一个结论:单论和数据库打交道,VFP不少效果比DELPHI强;论功能的强大与全面,DELPHI比VFP要强;在所有功能比较强、比较全面的语言中,DELPHI操作数据库能力是比其他语言要好的。
鄙人不才,从VFP中开始学习DELPHI.接触了DELPHI一段时间,觉得DELPHI的数据库组件远比VFP的弱智和不知所谓,尤其是DBEdit和DBGrid.VFP的数据控件常用的就Text和Grid,但是用得叫人省心.另外在数据实际操纵方面VFP也比DELPHI便捷N多倍.在VFP中的一个SCAN...ENDSCAN在DELPHI中就要用上好多代码.另外在指针类型方面常常是叫人莫名其妙的摸不着北.因为有太多的类型定义了,而且有些类型还不能直接转换,必须通过曲线求解.
下面先来讲讲DBEdit:
其中的Text控件其功能与DBEdit相当,但人家可以根据绑定的字段类型限制用户输入的内容.如果没有绑定字段的,只要赋上一个初值,就可以确定这个框可以接受的数据类型.字符,数值,日期,全部智能化.尤其是日期类型的,人家可以自动检测出日期是否合法.可能你说你可以用DBMaskEdit呀,但是这个在设定的掩码后仍然有不少的漏洞.如月份超出12,日子大于32等等,还不包含用粘贴功能插入非法的数据等.
在DBEdit中如果字符的内容全为空格,如果不全选内容的情况下就靠光标位置然后输入,根本不能输入任何内容.
其次再来讲讲DBGrid:
VFP的Grid控件要比DBGrid易用数倍,从外观控制到数据采集再到列中显示不同控件等等,都在设计时通过鼠标点击设定就可以达到所要求.而DBGrid则只能说:麻烦你自己写代码实现吧.
综上所述,我只能说:DELPHI号称智能,快速的设计软件,尤其在数据库方面享有盛名,但在VFP面前设计数据界面真的是三脚猫.
可能你会质疑:相关的第三方控件很多呀,你可以自行下载安装不就解决问题了吗?
那我只能回答:那是软件生产商(包括以前的Borland和现在的Embarcadero)极不负责任的表现,也是没有用心做产品的直接后果.你随便搞了一个毛坯品,然后就给了用户,当用户用着很不爽的时候,你就说:自己动用,风衣足食.我的产品没有问题呀.况且不是很多相关的附件你可以再另外安装来用吗?
用户都是希望自己用的产品能满足日常工作所需的,如果每次干同样的事都要写一大段代码来实现普通得不能再普通的功能的话,为何在做的时候不把这些功能做进去呢? 虽然类可以方便的继承来扩展,但为何不用心做得更好或者更易用呢?
我觉得现在的RAD真的一点也不RAD,相比VFP,稍为复杂一点的日常应用就必须自己大动干戈.以上只是鄙人的拙见.还望大家多提意见...
控件
borland
delphi
数据库
------解决方案--------------------
VFP了解不多,但了解一点并听人说过的,论数据的显示及操作,最好的应该是PB了。
------解决方案--------------------
VFP就是一垃圾,好几个版本之间都不兼容,还有直接修改dbf格式的数据库语句及其变态,和SQL92标准相差很大,不及VB的十分之一,更何况delphi的百分之一
------解决方案--------------------
我很羡慕你提的VFP那些方便。
不知道你有没有办法把你说的做一个小小的例子(最好是*.exe)
发给我看看。
我希望我正在改的类似DBGrid的控件可以像你说的VFP做的系统那么好用。
谢谢。
frank6600 at qq.com
------解决方案--------------------
Delphi 自帶的數據控件的確陽春...不過若搭配第三方之 EhLib 則無敵...懂得 VCL 門道的都知道如何將控件調整到最符合操作的型態~
每一種編程語言或編程工具皆有其優點...有時候不能因為自己不熟悉的領域未深入了解就說三道四的......
------解决方案--------------------
绝对的口水。VFP 比D 更少人用。还是在学校时的教学用的
------解决方案--------------------
没什么可比的,有人喜欢买毛坯房自己设计装修,最求更高的格调和品味,有人喜欢买开发商的精装房,省事,就象oracle和sql server一样,追求不一样,没有可比性
------解决方案--------------------
其实只要描述的方式跨了语言,读起来就会有不舒服的感觉。
但凭心而论,楼主提的弱项只要是事实就没必要在意。
Borland确实不太重视大家的需求呼声,
这些确实是Borland让人诟病的所在。
Delphi的标准数据控件真的有些让人哭笑不得的设计,
各位当初初学时不觉得奇怪吗?
比如D3用DBE连SQLServer,SELECT了一个数据表获得10笔数据,APPEND一笔,
POST后,仍然是10笔数据。最新APPEND那笔不见了。
这个让我当年苦不堪言。
当时在News上问了老外,老外说像SQLServer这类数据,这样的设计是合理的。
直到今天回想起,我仍然觉得“合理个屁!”
还有DBGrid,连SQLServer时,它不会一次把数据全读进来,
而是一次读一个Page的内容,当需要下一Page数据时再读下一Page的数据进来。
其结果导致DBGrid的ScrollBar只有四个状态,Top,Previous,Next,Bottom,不能任何拖曳。
其结果导致DBGrid的行为有点怪怪的。
不用问,其原因一定是:像SQLServer这类数据,这样的设计是合理的。
就是这些原因,所以DBGrid几乎不能用,一定要用Ehlib等第三方控件。
就是这些原因,ADO最后“几乎”完胜BDE。
这么多年了,不知道DBGrid改了上述问题没有。
当年花了一个多月Trace DBGrid的Source Code才明白它之所以不合理的地方在哪。
现在实在没有办法再抽一个多月时间来验证它进步了多少。
最后选择自己开发。
到现在,我仍在等官方的垃圾回收,
到现在,我仍在等官方的Exception Stack List。
这两个,Java和C#都是内置功能,Borland和EMB却认为是第三方的事,唉。
------解决方案--------------------
说实话Delphi自带的数据控件这么多年还真没用过,都是用的EhLib.
VFP是专注小型数据库的,在数据处理细节方面如果跟Delphi一样,还有活路吗?但Delphi还能做其他的事,术有专攻嘛。
------解决方案--------------------
总结一下之前看到的一些文档,就是一个结论:单论和数据库打交道,VFP不少效果比DELPHI强;论功能的强大与全面,DELPHI比VFP要强;在所有功能比较强、比较全面的语言中,DELPHI操作数据库能力是比其他语言要好的。