Delphi XE10, не может редактировать значения полей пустого TQuery
У меня есть набор данных, объект TQuery со свойством Requestlive=TRUE, Tdatasource и TDBgrid, связанных. Когда запрос возвращается пустым, я сталкиваюсь с этой проблемой: пытаясь добавить первую запись, я не могу редактировать ее поля. После сохранения этой (пустой) первой записи я могу продолжить в обычном режиме (добавление, редактирование и т. Д.). Что я могу сделать, чтобы избежать этой проблемы, пожалуйста?
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;
удалить любую фальшивую запись, добавленную таким образом