DBGrid/DBGridEh新增或修改数据时如何验证输入的数据是否有效(不为空或唯一性)?
要求:同时新增或修改一行或多行数据。
谢谢!

解决方案 »

  1.   

    在Dataset的beforepost事件里面验证其合法性。或者建立永久字段,在字段的OnValidate事件里验证。
    例如:
    procedure TForm1.qryDayFieldOneValidate(Sender: TField);
    begin
      if Sender.AsInteger<3 then
        raise Exception.Create('输入的数字不能小于3!');
    end;
      

  2.   

    將數據檢查的SQL語句寫在要進行修改或者變更字段的onChange事件裡!當發生變化時則執行檢查數據的正確或唯一性!至於怎麼寫,那根據你自身的要求所決定!
      

  3.   

    mastersky(浪) 的方法就很好!
      

  4.   

    在OnColExit 里判断
     if SelectedIndex = 0 then
      if SelectedField.ASstring < '某值' then showmessage('提示') 
     else if SelectedIndex = 1 then
      if SelectedField.ASstring < '某值' then showmessage('提示')
      

  5.   

    楼上的方法不错
    可是有什么办法判断数据的唯一性呢?
    一定要写SQL语句来判断吗?
    另外还有最后一个小问题,怎么定位光标,使焦点定位于DBGrid/DBGridEh刚才判断数据无效的那个CELL?
    解决就结帖,谢谢各位帮忙。
      

  6.   

    delphi的例子里有一个类似的,使用cachedb,你看看是否跟你的需求类似
      

  7.   

    在DataSet的BeforePost里面统一校验就是了。