-2

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

4

1 回答 1

-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;

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

于 2017-03-03T11:11:01.503 回答