navigator+dbgird想在post之前对数据进行验证 防止插入重复数据 如:若ID为 401的数据已存在
则取消插入请问该怎么写??谢谢

解决方案 »

  1.   

    procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    begin
      if Button = nbPost then
        //此处是你的检测代码;若存在则Abort,反之就Exit
    end;
      

  2.   

    用SQL语句呀
    到表里去找用QUERY或ADOQUERY与表连接select id from 表名 where id = '401';
    如果有数据返回则是存在的啦!
      

  3.   

    function RecordExists(sId: string): Boolean;
    begin
      result := false;
      //在这里写入判断语句;若已存在运回true;
    end;
    ...
    begin
      if Button = nbPost then
        if RecordExists(dgeStore.Fields[0].AsString) then
        begin
          ShowMessage('此记录已存在!')
          if aqStore.State in [dsInsert, dsEdit] then Abort;
        end;
    end;
      

  4.   

    新数据是用户输入到dbgird的 高级打字员的方法不行啊