![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid [D7, XP]
AlekseyB © (2008-06-24 08:59:00)Подскажите плиз. Есть грид, где отображаются данные, необходимо в грид вносить данные и чтобы они сохранялись. Когда меняю несколько записей то сохраняет нормально, хотя не всегда, а если одну запись меняю, то совсем не сохраняет. Не подскажите в чем проблема ?
Ega23 (2008-06-24 15:11:00) [61]
> В любом случае надо потратить время чтобы разобраться и
> навсегда забыть о подобных проблемах
Проблема-то как раз в другом. Есть, например, справочная таблица. Всего с двумя десятками записей, но с 15 столбцами. Для корректного редактирования мне их ВСЕ 15 надо в грид тащщить. А по-идее, достаточно трёх-пяти, т.к. все остальные - сугубо служебные.
Ну и всяческие многопользовательские доступы - тоже с гридом тяжело решаются.
Наконец, это просто неудобно (назовите мне хоть одну программу того же Microsoft, где в гриде надо что-то редактировать. Ёксель не в счёт.)
MsGuns (2008-06-24 14:54:00) [62]При "гридной" корректировке по умолчанию используется то механизм "отсылки" изменений на сервер, который используется применяемыми компонентами, с учетом тех свойств этих компонентов, которые влияют на кэширование изменений и на старт и подтверждение (откатов) транзакций. Вам, очевидно, следует или научиться управлять явно пересылкой изменений серверу или отказаться от "гридной" технологии или поменять датасет, например на TClientDataSet, у кторого целый арсенал методов и свойств для этого.
В любом случае надо потратить время чтобы разобраться и навсегда забыть о подобных проблемах
korneley (2008-06-24 14:23:00) [63]
> Sergey13 © (24.06.08 14:13) [27]
Тем, что считаю это наследием экселевского (или суперкальковского) подхода к интерфейсу. Там - да, в моём приложении - нет. Меняешь/вставляешь/удаляешь запись - получаешь форму. Пользователь хоть знает, что делает :) Ну ладно... иногда можно. :))) Но, иногда. Всё, естественно, имхо
Sergey13 (2008-06-24 14:13:00) [64]> [25] korneley © (24.06.08 14:07)
> я даже редактирование "данных в гриде" считаю "мове тон"
Чем же оно так плохо?
stas (2008-06-24 14:13:00) [65]AlekseyB (24.06.08 08:59)
1. СУБД
2. Компоненты доступа
3. Какие меняли настройки компонентов?
korneley (2008-06-24 14:07:00) [66]
> Sergey13 © (24.06.08 14:03) [24]
Не спорю, для D1, он может и был прорывом, но сейчас, я даже редактирование "данных в гриде" считаю "мове тон". Как следствие - "скрипач не нужен" (с)
Sergey13 (2008-06-24 14:03:00) [67]> [22] Ega23 © (24.06.08 13:50)
А чего его многие так не любят? Нормальный компонент. А для новичков так вообще очень даже хороший. ИМХО.
korneley (2008-06-24 14:02:00) [68]Вот пользую EMS InterBase & FireBird Manager. Почти во всём нравится (может, потому, что слаще морковки ничего не пробовал :), но как я ненавижу эти УБОГИЕ DBNAVIGATOR - ы !!!
Ega23 (2008-06-24 13:50:00) [69]
> Ты вообще используешь кнопки навигации по БД? Tnavigator
> попробуй
Фу, какая гадость...
lewka-serdceed (2008-06-24 13:45:00) [70]Ты вообще используешь кнопки навигации по БД? Tnavigator попробуй
Галинка (2008-06-24 11:25:00) [71]добавить либо кнопку типа "Update" (в которой и производить апдэйт с сохранением всех исправленных записей, там вроде у скула есть для этого спец модификатор типа rsEdited). Либо повесить это действие на Leave грида. Но UPDATE TABLE обязательно делать надо.
Плохиш (2008-06-24 10:53:00) [72]
> AlekseyB (24.06.08 10:46) [17]
> Проблема в том, что данные не сохраняются в базе при внесении
> их в грид
Хм, а у меня сохраняются, вот ведь как удивительно, правда...
Ega23 (2008-06-24 10:51:00) [73]
> Не в этом проблема !!! Проблема в том, что данные не сохраняются
> в базе при внесении их в грид
Проблема как раз в непонимании того, что в DBGrid нет никаких данных. Данные - в TDataSet. И вносишь ты их не в грид, а в ДатаСет. И для того, чтобы записи "появились" в базе, их нужно из датасета туда отправить. Как - это уже отдельная песня, есть много всяческих способов.
AlekseyB (2008-06-24 10:46:00) [74]ну мало ли как выразился, ну ошибся, что теперь ? Не в этом проблема !!! Проблема в том, что данные не сохраняются в базе при внесении их в грид
korneley (2008-06-24 10:42:00) [75]
> Ega23 © (24.06.08 10:28) [15]
Так это ж как... акыны, что ли. Что вижу, о том и пою. Если буковки/циферьки набираются в гриде, то и данные там же. А за всё остальное ответственный уже назначен: П.А.С. :))
Ega23 (2008-06-24 10:28:00) [76]> Подскажите плиз. Есть грид, где отображаются данные,
Блин. Начал читать. Так порадовался - новичок наконец-то знает, что в гриде нет никаких данных.
> необходимо в грид вносить данные и чтобы они сохранялись.
Однако нет, всё в порядке. Мир, к сожалению, не изменился.
korneley (2008-06-24 10:07:00) [77]
> Юрий Зотов © (24.06.08 09:55) [13]
Присоединяюсь. Хотя, по идее, при нажатии "Enter" в гриде, Post должен быть и без навигации. Но кодом, с проверкой, что датасет в эдит/инсерт моде - надёжнее :)
Юрий Зотов (2008-06-24 09:55:00) [78]> Когда меняю несколько записей то сохраняет нормально, хотя не всегда, а
> если одну запись меняю, то совсем не сохраняет
Можно предположить вот что.
Когда меняется несколько записей, то идет навигация по датасету и автоматом посылается Post. Данные сохраняются (возможно, кроме последней записи).
Когда меняется одна запись, навигации нет и Post автоматом не посылается. Видимо, Post не посылается и кодом - вот данные и не сохраняются.
Sergey13 (2008-06-24 09:50:00) [79]> [0] AlekseyB (24.06.08 08:59)
> хотя не всегда
Типа по пятницам не сохраняет? Или другие какие закономерности есть?
> [8] AlekseyB (24.06.08 09:29)
> компоненты ADO
Все сразу или какие то конкретные?
По ходу нет фиксации изменений в датасете и/или в БД.
engine (2008-06-24 09:50:00) [80]Ну теперь всё понятно. Такие ошибки чаще всего происходят в 17-ой строке