发信人: pig2609()
整理人: hunter__fox(2002-03-16 23:35:39), 站内信件
|
vfp6/7 + sql2k 开发模型
一、做法
(1)前端只是提供输入输出的傻界面
程序提供输入数据界面,提交到后台,如后台不接受,显示错误信息。
按用户要求/条件, 从后台取回数据,加工/显示(即报表)
(2)数据完整性完全是由后台维护
包括字段/记录, 表间(RF), 完全利用sql2k完善的功能、极好的性
能、方便集中的操作。比起在前端程序做,工作量少了80%,出错
机会减少了80%。
二、好处
(1) 前端写错代码,死机出错等等,都不会破坏数据完整性
(2) 由于校验在后台由sql自行完成,速度行,并行性提高了。
我们的系统只要有ip接入(电话或因特网),就可远程运行.
*在form中要有适当的机制,灵活限制取数的数量
三、难点及解决方法
(1)原委
连ms的资料都说:...如校验在后端而不在前端或中间层... 返回的错误
息..实在令用户莫名其妙....
....---> 所以就不要直接利用后端的 完整性机制了...
好多好多的vb,pb程序(我认真check过),后端只是字段.. 什么check/trigger
都没有, 真是惨不忍睹啊,真是太烂啦.
(2)解决
sql7/2k都可以,很自由的对object命名,我们可以在object名前后加上
[特定的标记], tableupdate如.f.,通过aerror()取回sql返回的错误信息,
然后再取出标记之间的、明确的 错误信息就ok了。
(3)例子
1、字段完整性
表达式:工号<>'' and 姓名<>''
check名: {b}姓名和工号不可空白{e}
2、唯一性限制
对工号字段建一unique索引以禁止其重复
索引名:{b}工号不可重复{e}
3、表间的校验或状态更新
在表的触发器中写过程,如不合要求,则
rasieError(..., '{b}客户欠款数超过限额啦{e}',..)
4、引用完整性
拜sql2k RF所赐,好多了,各位快扔了sql7.
拉几根线就好了,爽死了,上条的所提到的触发器代码,写少了90%
四、对foxer同胞的话
1、要好好研究下以前课本上关于关系数据库理论,现在有了sql2k和以上
要点,基本上可以很方便的实现啦。 vfp7+sql2k+适当的开发方法 比
pb、vb 的效率、性能都好得多啦。
2、一定要使用sql2k,我都不用vfp本地engine很久啦
3、不要将本贴告诉vber
---- max chen
senior programer
[email protected]
QQ:65004737
|
|