Delphi XE10,无法编辑空TQuery的字段值

时间:2017-03-02 22:29:35

标签: delphi tquery

我有一个数据集,TQuery对象,属性Requestlive = TRUE,Tdatasource和TDBgrid,连接。当查询返回空时我面临这个问题:尝试添加第一条记录,我无法编辑它的字段。 保存此(空)第一条记录后,我可以继续正常(添加,编辑等)。 我能做些什么来避免这个问题呢?

1 个答案:

答案 0 :(得分:-1)

我没有找到导致此问题的原因,但我做了这个解决方法:

procedure TFormA.QueryNewRecord(DataSet: TDataSet);
begin
    case Query.RecordCount of
        0 : begin // if dataset is empty then append a fake record
                Query.fieldByname('aDate').AsDateTime := now;
                Query.fieldByname('fieldA').AsFloat := 0; // fieldA is a mantatory field 
                Query.Post;
            end;
        else Query.fieldByname('aDate').AsDateTime := now; 
    end;
end;

并在onCloseForm事件中我添加:

Query.SQL.Text := 'DELETE FROM NOTES WHERE fieldA=0';
Query.ExecSQL;

删除以这种方式附加的任何虚假记录