前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速开发编程模型,打通数据库的错误反馈!不会这招你就亏大了。

快速开发编程模型,打通数据库的错误反馈!不会这招你就亏大了。

作者头像
加菲猫的VFP
发布2021-09-10 17:23:26
3900
发布2021-09-10 17:23:26
举报
文章被收录于专栏:加菲猫的VFP加菲猫的VFP
有些开发者,连错误信息都不会处理,比如保存失败,他们不会记录显示保存失败的原因,就直接保存失败。

保存失败,可能是自己的数据库连接没有配置好,是不是显示连接的问题,有时保存失败是单号重复的问题,反正他们不管,就一昩提示保存失败。而且还有些人,压根就没有考虑异常情况,然后程序一掉线,就弹各种窗,用户点点点,“爽歪歪”。

这就是为什么有些人写程序图省事,后期维护火葬场的由来了。

框架提供了一整套的错误处理,错误应该在源头就要处理了,起码要捕捉到错误信息。

数据完整性由数据库来控制

1、字段完整性

表达式:工号<>'' and 姓名<>''

check名: {姓名和工号不可空白}

2、唯一性限制

设置唯一索引,索引名为{订单号不能为空}

3、表间的校验或状态更新

在表的触发器中写过程,如不合要求,则

rasieError(..., '{客户欠款数超过限额啦}',..)

4、引用完整性

产品资料的信息在入库单中存在,不让用户删除.

在关系图中,只需拉一根线(产品资料.产品编号->入库单明细.产品编号)将关系名改为,{该物料已经被使用,无法删除} 一根线解决问题,一句代码也不用写。

包括字段/记录, 表间(RF), 完全利用mssql完善的功能、极好的性能、方便集中的操作。

框架取回后端的错误

MSSQLHelper

假设产品资料的信息在入库单中存在,不让用户删除.

代码语言:javascript
复制
oDBSQLHelper=newobject("MSSQLHelper","MSSQLHelper.prg")
if (oDBSQLHelper.exeCuteSQL("delete from 产品资料 where 产品编号 ='1'"))<0
  ?"删除失败",oDBSQLHelper.errmsg
  return 
endif 
?"删除成功"

DAL_CA类

假设订单号重复了

代码语言:javascript
复制
oCA=newobject("dal_订单","dal_订单.prg")
*--- 省略一些代码
if !oca.save()
  ?"保存失败",oca.msg
  return 
endif
?"保存成功"

因为MSSQL数据库有一大堆不需要的提示,我们只需要将其中{错误信息}取出来显示就好。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据完整性由数据库来控制
    • 1、字段完整性
      • 2、唯一性限制
        • 3、表间的校验或状态更新
          • 4、引用完整性
          • 框架取回后端的错误
            • MSSQLHelper
              • DAL_CA类
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档