我有一个数据集,TQuery对象,属性Requestlive = TRUE,Tdatasource和TDBgrid,连接。当查询返回空时我面临这个问题:尝试添加第一条记录,我无法编辑它的字段。 保存此(空)第一条记录后,我可以继续正常(添加,编辑等)。 我能做些什么来避免这个问题呢?
答案 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;
删除以这种方式附加的任何虚假记录