设为首页 加入收藏

TOP

TClientDataSet 提交时提示 Field value Required 但是未提示具体哪个字段。
2019-08-23 00:30:40 】 浏览:51
Tags:TClientDataSet 提交 提示 Field value Required 但是 具体 哪个

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);

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Delphi 10.3 Rio + iOS 12.1 SDK .. 下一篇Delphi解析修改Json文件,基于sup..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目