我想实现一个在dbgrid显示的数据库的内容,并在dbgrid中直接修改,但不知道用什么方法或属性实现确定对那一行数据的有效的验证。听高手指点

解决方案 »

  1.   

    dataset.edit;
    dbgrid.readonly:=false;
      

  2.   

    在与DBGrid相关联的那个数据集控件,如:Table、Query的BeforePost事件中编写代码进行校验,如果出错,则中止保存操作,提示用户更改数据后再保存。
    例如:procedure TForm1.Table1BeforePost(DataSet: TDataSet);
    begin
    if not (条件) then
      begin
      showmessage('请重新填写资料!');
      Abort;
      end;
    end;
      

  3.   

    对不住,可能是没表达清楚,不是对dbgrid的修改,而是像确定修改的那一行,检验的数据的合法性。
      

  4.   

    补充一下,例如,在保存数据时,要求用户已经输入了Name字段的数据,则可以在与DBGrid相关联的DataSet的BeforePost事件中这样写:procedure TForm1.Table1BeforePost(DataSet: TDataSet);
    begin
    if  (trim(DataSet.FieldByName('Name').AsString)='') then
      begin
      showmessage('请重新填写资料!');
      Abort;
      end;
    end;