Показать сообщение отдельно
  #1  
Старый 13.02.2013, 12:36
Rusland Rusland вне форума
Прохожий
 
Регистрация: 12.10.2010
Сообщения: 25
Репутация: 10
По умолчанию Запись в базу после нажатия Enter

Есть 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, если это важно.
Ответить с цитированием