TClientDataSet 提交时提示 Field value Required 但是未提示具体哪个字段。
2024-08-26 16:44:17
TClientDataSet 提交时提示 Field value Required 但是未提示具体哪个字段。
这个错误特别麻烦,要使用 midas 控件时,虽然很方便。但是出错了根本找不到原因,特别是这个异常。
下面的补丁,可以帮助找到错误原因。
注:我们自己在使用的时候,采用了控件继承,因此可以把这个功能变成控件基本功能,但是继承相关代码特别多,就不在这里贴了。
procedure postAndCheckValue(ds: TDataSet);
var
I: Integer;
curField: TField;
strField: TStringField;
begin
try
ds.Post;
except
on E: EDBClient do begin
if E.Message = 'Field value required.' then begin
for I := to ds.Fields.Count - do begin
curField := ds.Fields[I];
if curField.Required and ds.Fields[I].IsNull then
raise EDBClient.Create('必要的数据项“' + ds.Fields[I].DisplayLabel + '”为空值!', E.ErrorCode); if curField.Required and (curField is TStringField) then begin
strField := curField as TStringField;
if strField.FixedChar and (strField.AsString = '') then
raise EDBClient.Create('必要的数据项“' + ds.Fields[I].DisplayLabel + '”为空值!', E.ErrorCode);
end;
end;
end;
raise;
end;
end;
end;
调用时,如果出错。就用这个进行提交即可:
myDataSet.append; postAndCheckValue(myDataSet);
最新文章
- ubuntu 12.04 LTS 如何使用更快的更新源
- ebs R12.2启动报错";failed to start a managed process after the maximum retry limit";
- Oracle 正则表达式使用示例
- MySQL-Front 建表引发的一点小思考(数据表格模版)
- Go eclipse plugin
- React生命周期浅析
- CentOS 7 中firewall-cmd命令
- TTL值的含义以及与域名DNS TTL值的区别
- ACM - ICPC World Finals 2013 A Self-Assembly
- 通过org.springframework.web.filter.CharacterEncodingFilter定义Spring web请求的编码
- 用链表实现栈----《数据结构与算法分析----C语言描述》
- 如何在ubuntu 12.04下搭建Python Django环境
- Python 面向对象之一
- bzoj1233[Usaco2009Open]干草堆tower 单调队列优化dp
- 北京大学Cousera学习笔记--2-计算导论与C语言基础-第一讲.计算机的基本原理-图灵机
- Smart Link
- 【Java】自动类型转换规则
- bootstrap table数据分页查询展示
- Unity发布各平台路径
- DataTable相关
热门文章
- [基础知识]PeopleSoft应用服务器上的进程含义
- css 中可以继承的属性
- 单元测试(四)-隔离框架NSubstitute
- Sql 中存储过程详细案例
- [SSRS / RV] (.rdlc报表)冻结表头,固定行列标题
- Python+Selenium笔记(二):配置谷歌+IE环境
- 让 Angular 应用动起来!
- memcached 查看所有的key
- DataContract和DataMember的作用
- EJB Remote/Local 绑定和JNDI Lookup