Есть FibDataset (FbClient) и DbGridEh (DbClient). Я хочу дать пользователю возможность редактировать значения в некоторых ячейках в ДбГриде.
Как обычно это происходит - пользователь редактирует в таблице какое-нибудь значение, нажимает Enter, а затем чтобы значение сохранилось нужно выйти из текущей записи, нажав например на клавиатуре ВВЕРХ или ВНИЗ (мне такой подход не нравится).
Так вот я хочу сделать так чтобы после того как пользователь нажал Enter, то запись сразу бы сохранялась в базу.
Сделал я это так:
Код:
procedure TDM.FbClientFieldChange(Sender: TField);
begin
FbClient.ApplyUpdates;
end;
Получилось то что хотел: после Enter-а сразу идет запись в базу,
НО теперь если после внесения изменения нажать не Enter, а клавишу ВВЕРХ или ВНИЗ, то выдается ошибка (хоть запись и сохраняется):
Цитата:
FbClient: Dataset not in edit or insert mode'.
|
Как от нее избавиться?
Видимо Post происходит дважды... вот только где второй раз? (видимо при смене указателя записи, но где конкретно это место... я бы его закомментировал

)
PS. У FbClient свойство AutoCommit=true, если это важно.