|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Запись в базу после нажатия Enter
Есть FibDataset (FbClient) и DbGridEh (DbClient). Я хочу дать пользователю возможность редактировать значения в некоторых ячейках в ДбГриде.
Как обычно это происходит - пользователь редактирует в таблице какое-нибудь значение, нажимает Enter, а затем чтобы значение сохранилось нужно выйти из текущей записи, нажав например на клавиатуре ВВЕРХ или ВНИЗ (мне такой подход не нравится). Так вот я хочу сделать так чтобы после того как пользователь нажал Enter, то запись сразу бы сохранялась в базу. Сделал я это так: Код:
procedure TDM.FbClientFieldChange(Sender: TField); begin FbClient.ApplyUpdates; end; НО теперь если после внесения изменения нажать не Enter, а клавишу ВВЕРХ или ВНИЗ, то выдается ошибка (хоть запись и сохраняется): Цитата:
Как от нее избавиться? Видимо Post происходит дважды... вот только где второй раз? (видимо при смене указателя записи, но где конкретно это место... я бы его закомментировал ) PS. У FbClient свойство AutoCommit=true, если это важно. Последний раз редактировалось Rusland, 13.02.2013 в 12:51. |
#2
|
||||
|
||||
при нажатии Enter в поле ID происходит Post. ApplyUpdates закомментарен по понятной причине.
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Rusland (14.02.2013)
|
#3
|
|||
|
|||
Когда ты нажимаешь на стрелки видимо набор данных переводишь из режима редактирования в dsBrowser. св-во state можешь посмотреть.
|