1.button1用来增加记录,button2用来保存记录,在dbgrid输入记.
怎样验证记录的合法性?在各事件中代码该怎样写?

解决方案 »

  1.   

    button1:用插入,
    button2:保存前对记录进行验证。您的问题有点不好回答。
      

  2.   

    procedure Tform.qryCostitemBeforePost(DataSet: TDataSet);
    begin
      if 合法条件不满足 then
      begin
        Showmessage(提示信息);
        Abort; //or dataset1.Cancel;
      end;
    end;
    Abort只是终止Post操作,你对记录作的修改还存在,不用重新录入,Cancel则取消上次Post后所有的输入,记录的字段值回到上次Post后的状态,本人觉得用Abort比Cancel方便。
      

  3.   

    其实用dbgrid可以实现记录的自动增加和保存,你写dataset的BeforPost就行了。
      

  4.   

    beforePost
    不过也可以在DBGrid的Enter 等事件中...
      

  5.   

    在数据集的beforePost事件中写代码判断
      

  6.   

    通常都是在BeforePost和PostError进行判断和错误提示
      

  7.   

    我是想知道具体该怎么做,我其实很菜,比如说在beforpost中实现,
    button1用table.append,button2用table.post,那么在beforerpost中该如何写代码呢?
      

  8.   

    写合法性检测的代码. 例如:
    if trim(adoquery1.fieldbyname('fieldone').asstring)='' then
    begin
      showmessage('该字段不可以为空,请重新输入!');
      abort;
    end;
    ..........
      

  9.   

    button1用table.append,button2用table.post可以的procedure Table1.onPostError()
    begin
      if pos(e,'NULL')  then  
      showmessage('......不能为空');  if pos(e,'key....')  then  
      showmessage('......主键重复);end;这是数据库级的数据合法性验证用户级的可以在beforepost或着field的OnValidate中判断
      

  10.   


     在 BeforePost 事件中控制 ,如果失败用 ABORT方法 !
      

  11.   

    button1:   table.insert;,
    button2:  table.pos ;
    校验
    table的beforpost事件中加
     if 合法条件不满足 then
      begin
        Showmessage(提示信息);
        Abort; 
      end;
    …………………………