码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-11-30 14:18:27      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:error   stand   提交   dataset   数据   pen   integer   char   null   

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

 

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

标签:error   stand   提交   dataset   数据   pen   integer   char   null   

原文地址:https://www.cnblogs.com/delphi2006/p/10043288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!