在tdataset的beforepost事件中写代码,
table1.field[i].value=^^^^^^^
后面你写就的了

解决方案 »

  1.   

    在 BeforePost 中写校验代码是可行的。
    可以根据TField.DataType属性得到该字段的数据类型,然后编写几个函数对不同类型的数据进行校验。
      

  2.   

    不行的,程序还没运行到BEFOREPOST时,已经出错。我认为,在BEFOREPOST之前,是不是已经校验了?
    我的代码:
    procedure TFormTrsPower.FormCreate(Sender: TObject);
    var
      sql : string;begin
      inherited;
      Sql := 'select * from TabA';
      ..检索数据
    end;
    procedure TFormTrsPower.AdsDestinationBeforePost(DataSet: TDataSet);
    begin
          if Length(dbg.SelectedField.curvalue) > 3 then
            begin
              showmessage('to longer');
              abort;
            end;
    end;
      

  3.   

    一些数据类型的转换是在 BeforePost 之前进行的,例如字符型数据到日期数据的转换(DBGRID中的数据被认为是String),这样您可以尝试翻译Delphi的错误提示。 其他的校验看能否通过字段级别的属性处理!