Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBGrid [D7, XP]


Страницы:   1 2 3 4 5

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-ой строке


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо