如题,老出现不能插入空行的问题,如何在提交之前将空行删除?

解决方案 »

  1.   

    你如果是用DBNavigater和DBGrid同时绑定一个数据源的话,用DBNavigater新增一行时,如果数据库表设置了逐渐的话就会报错。建议你先不要用DBNavigater去操作数据库,还是用临时表或者StringGrid吧,退出时再批量修改数据库
      

  2.   

    不是向数据库插入空行,是使用DBGrid不小心会出现插入空行的情况,如何在向数据库中保存数据之前将空行处理掉?
      

  3.   

    在dataset的Beforepost事件中写:var
      I:Integer;
      Empty:Boolean;
    begin
      Empty:=True;
      for I:=0 to Dataset.FieldCount-1 do
      begin
        if not DataSet.Fields[I].IsNull then
          Exit;
      end;
      if Empty then
        DataSet.Cancel;
    end;
      

  4.   

    怎么会有这样的问题呢,如果保存之前做了数据的修改或增加,应该在修改和增加之后写post语句,不然插入的肯定是空行,我认为是忘了写post语句
      

  5.   

    To mastersky:你漏掉了将 Empty 设为 False 的语句了!var
        I:Integer;
        Empty:Boolean;
    begin
        Empty:=True;
        for   I:=0   to   Dataset.FieldCount-1   do
        begin
            if   not   DataSet.Fields[I].IsNull   then
            begin
              Empty := False;
              Exit;
            end;
        end;
        if   Empty   then
            DataSet.Cancel;
    end; 
      

  6.   

    可以把LockType属性改为ltBatchOptimistic,在本地可以随意插入空行
      

  7.   

    To Freedom1010 :
    已经Exit了,Empty:=False;是多余的。