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