你应该在DataSet的OnBeforePost事件中进行判断

解决方案 »

  1.   

    你可以在DBNavigator的BeforeAction事件中做判断,
    比如:
    如果点了post按钮,
    procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    begin
      if Button=nbPost then
      begin
        //在这里取得记录值,加入你对新增记录的判断
        Abort;
      end;
    end;
      

  2.   

    好像不行
    procedure TMainData.DBBookClassBeforePost(DataSet: TDataSet);
    var
      ls_str,ls_b: Integer;
    begin
      if DBBookClass.FieldByName('Column1').Value = '' then
      begin
        处理
     end;
    end;
    提交是还是会出现英文提示的column1不能为空
      

  3.   

    procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    begin
      if button =nbPost then
       if 条件不成立 then
         abort;
    end;
      

  4.   

    procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    }
    begin
      case Button of
        nbFirst  : do something;
        nbPrior  : do something;
        nbNext   : do something;
        nbLast   : do something;
        nbInsert : do something;
        nbDelete : do something;
        nbEdit   : do something;
        nbPost   : do something;
        nbCancel : do something;
        nbRefresh: do something;
      end;
    end;