![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Query
egormakarov © (2003-07-28 12:17:00)
У меня ошибка: Query1: DataSet not in edit or Insert mode
Как исправить
Anatoly Podgoretsky (2003-07-28 14:34:00) [1]
Раз он смог изменить запись, то это означает, что он смог перевести в режим Edit, это также означает, что перед выполнением Post у него поменялось состояние в одном из обрабтчиков.
AbrosimovA (2003-07-28 14:22:00) [2]
Извиняюсь.
Согласен, проверку сделать надо.
Соловьев (2003-07-28 14:06:00) [3]
> AbrosimovA © (28.07.03 14:03)
ты не прав. см.
> Соловьев © (28.07.03 13:00)
провреку действительно лучше сделать - вдруг пользователь неизменял данные.
Reindeer Moss Eater (2003-07-28 14:06:00) [4]
Вот именно, "что-нибудь".
Query2.Post вызывает исключение. Это значит что в Query2 никаких изменений не вносилось.
AbrosimovA (2003-07-28 14:03:00) [5]
Читай выше:
> egormakarov © (28.07.03 12:25)
>....... вводишь что-нибудь, не сохраняется, как быть
Reindeer Moss Eater (2003-07-28 14:00:00) [6]
А кто тебе сказал, что он не сделал никаких изменений?
кода нет, есть Query1, DataSource1, DBGrid1, DBEdit1.
в DBGrid одна запись, нужно ввести в DBEdit данные и записать, вводишь что-нибудь, не сохраняется, как быть
Мне сказало об этом:
Упоминание DBEdit1, DBGrid1 а также текст ошибки.
AbrosimovA (2003-07-28 13:58:00) [7]
> если пользователь не сделал никаких изменений???
А кто тебе сказал, что он не сделал никаких изменений?
Reindeer Moss Eater (2003-07-28 13:44:00) [8]
Перед тем, как записать изменения(Post), должна произойти вставка записи(Insert) или изменение(редактирование)записи(Edit). Так вот вопрошающий делает Post в режиме просмотра, без перевода в режимы Insert и Edit.
Надо сделать DBEdit.Edit, а уж затем DBEdit.Post
Неужели?
Остается ответить на вопрос: Зачем переводить в состояние Edit, а потом делать Post, если пользователь не сделал никаких изменений???
AbrosimovA (2003-07-28 13:36:00) [9]
Перед тем, как записать изменения(Post), должна произойти вставка записи(Insert) или изменение(редактирование)записи(Edit). Так вот вопрошающий делает Post в режиме просмотра, без перевода в режимы Insert и Edit.
Надо сделать DBEdit.Edit, а уж затем DBEdit.Post
Reindeer Moss Eater (2003-07-28 13:10:00) [10]
AbrosimovA © (28.07.03 13:06)
> Reindeer Moss Eater (28.07.03 12:52)
Твой пример проверяет только состояние, но не переводит в режим редактирования записей.
Смотрим на вопрос и видим:
У меня ошибка: Query1: DataSet not in edit or Insert mode
Как исправить
Кого и куда надо переводить?
Плохиш (2003-07-28 13:08:00) [11]
> AbrosimovA © (28.07.03 13:06)
А зачем что-то делать, если данные не изменялись?
AbrosimovA (2003-07-28 13:06:00) [12]
> Reindeer Moss Eater (28.07.03 12:52)
Твой пример проверяет только состояние, но не переводит в режим редактирования записей.
Reindeer Moss Eater (2003-07-28 13:02:00) [13]
Соловьев ©
Если бы переводил, то не возникало бы ошибки.
А куда надо постить мы с тобой не знаем.
Соловьев (2003-07-28 13:00:00) [14]
> Reindeer Moss Eater (28.07.03 12:53
не пофиг! так как при редактировании DBEdit автоматически переведет связаный НД в режим редактирования, вот этот НД и надо постить!
Reindeer Moss Eater (2003-07-28 12:53:00) [15]
И пофиг кто с кем связан.
Reindeer Moss Eater (2003-07-28 12:52:00) [16]
Написал Query2.Post в DBEdit1Exit
Напиши if Query2.State in dsEditModes then Query2.Post;
Соловьев (2003-07-28 12:50:00) [17]
> Написал Query2.Post в DBEdit1Exit
а DBEdit с полем кого набора данных связан?
egormakarov (2003-07-28 12:48:00) [18]
ReqvestLive=true у Query я поставил
Написал Query2.Post в DBEdit1Exit
вот и появляется ошибка
Reindeer Moss Eater (2003-07-28 12:41:00) [19]
ReqvestLive=true у Query надо поставить.
Отсутствие этого приводит к совсем другой ошибке.
Reindeer Moss Eater (2003-07-28 12:41:00) [20]
>Соловьев ©
Правило простое: нет кода - нет и ошибки.