当前位置: 移动技术网 > IT编程>开发语言>Delphi > TClientDataSet 提交时提示 Field value Required 但是未提示具体哪个字段。

TClientDataSet 提交时提示 Field value Required 但是未提示具体哪个字段。

2018年12月06日  | 移动技术网IT编程  | 我要评论

tclientdataset 提交时提示 field value required 但是未提示具体哪个字段。

这个错误特别麻烦,要使用 midas 控件时,虽然很方便。但是出错了根本找不到原因,特别是这个异常。
下面的补丁,可以帮助找到错误原因。

注:我们自己在使用的时候,采用了控件继承,因此可以把这个功能变成控件基本功能,但是继承相关代码特别多,就不在这里贴了。

 

 1 procedure postandcheckvalue(ds: tdataset);
 2 var
 3   i: integer;
 4   curfield: tfield;
 5   strfield: tstringfield;
 6 begin
 7   try
 8     ds.post;
 9   except
10     on e: edbclient do begin
11       if e.message = 'field value required.' then begin
12         for i := 0 to ds.fields.count - 1 do begin
13           curfield := ds.fields[i];
14           if curfield.required and ds.fields[i].isnull then
15             raise edbclient.create('必要的数据项“' + ds.fields[i].displaylabel + '”为空值!', e.errorcode);
16 
17           if curfield.required and (curfield is tstringfield) then begin
18             strfield := curfield as tstringfield;
19             if strfield.fixedchar and (strfield.asstring = '') then
20               raise edbclient.create('必要的数据项“' + ds.fields[i].displaylabel + '”为空值!', e.errorcode);
21           end;
22         end;
23       end;
24       raise;
25     end;
26   end;
27 end;

调用时,如果出错。就用这个进行提交即可:

mydataset.append;

postandcheckvalue(mydataset);

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网