精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖多层应用〗>>vfp6/7 + sql2k 开发模型

主题:vfp6/7 + sql2k 开发模型
发信人: 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

[关闭][返回]