![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запись в базу через DBGrid [D6, 2000]
tyo © (2006-09-29 12:58:00)Редактирую табличку через DBGrid.
Похоже что если отредактировал какую-то запись на экране, то при переходе курсором на др. запись этот DBGrid автоматически редактирует запись и в базе тоже.
Нельзя ли этого избежать? (т.е. хочется чтобы все изменения происходили в базе например только по нажатию кнопки "Сохранить")
Игорь Шевченко (2006-09-29 22:31:00) [1]MsGuns © (29.09.06 17:46) [17]
Я как бы высказываюсь против того, чтобы после обновлений теми самыми "своими" запросами перечитывать набор данных, об чем, собстна и говорил, упирая на непроизводительность.
MsGuns (2006-09-29 17:46:00) [2]>All
В чем глупость - то ? В редактировании гридом или "снижении производительности при отказе от методов датсета в пользу "своих" параметрических запросов ?
Если первое, то я не против него в принципе, а против использования "потому что так проще".
Если второе, то просто недоумеваю: или я дурак или сегодня пятница ;))
Johnmen (2006-09-29 16:41:00) [3]
> MsGuns © (29.09.06 15:13) [12]
> Вы, батенька, глупость городите
Серёга, ты опять за своё? Сколько можно?
Сколько можно тебе доказывать (с примерами), что ты неправ? Разве мало 3-ёхлетнего обсасывания?
evvcom (2006-09-29 16:25:00) [4]> [12] MsGuns © (29.09.06 15:13)
Т.е. по-твоему, если написать так, чтобы не перечитывать НД после правки тобою же, дабы повысить производительность путем снижения нагрузки на сервер, и что порою важнее, как сказал Сергей в [13], на каналы связи, это глупость?
Игорь Шевченко (2006-09-29 15:38:00) [5]MsGuns © (29.09.06 15:13) [12]
Опыт сын ошибок трудных.
Sergey13 (2006-09-29 15:17:00) [6]> [12] MsGuns © (29.09.06 15:13)
Отнють. Это ты ее отстаиваешь. 8-)
Особенно она будет видна, если по предлагаемой тобой технологии, работать по очень медленному каналу связи.
MsGuns (2006-09-29 15:13:00) [7]>Игорь Шевченко © (29.09.06 14:37) [11]
>Это непроизводительно
Вы, батенька, глупость городите
Игорь Шевченко (2006-09-29 14:37:00) [8]
> 2. Отказаться от редактирования в DBGrid и использовать
> не DB-aware контролы. Полученные изменения вносить в таблицы
> отдельным запросом. Отображаемый НД после внесения правки
> в БД перечитывать.
Это непроизводительно
evvcom (2006-09-29 14:29:00) [9]> [8] Desdechado © (29.09.06 14:00)
> Пункт 2, мягко говоря, спорный, особенно
Поддерживаю. Достаточно было оставить
> [7] MsGuns © (29.09.06 13:40)
> 2. Отказаться от редактирования в DBGrid
остальное или вредно, или очень не оптимально, что для сервера и пользователя опять вредно.
MsGuns (2006-09-29 14:07:00) [10]>Desdechado © (29.09.06 14:00) [8]
>Или ты любишь городить препятствия и героически их преодолевать?
Я люблю, когда человек ясно себе представляет, ЧТО он хочети сделать и имеет достаточные знания о том КАК это делается.
А не тупо кидает контролы "по Фаронову" , а потом недоумевает, почему оно "пишет в базу" или "не пишет в базу".
Я бы запретил всем новичкам правки через гриды до сдачи некоего минимума по основам программирования БД в Дельфи и вообще СУБД. Тогда бы количество программ-уродов резко бы уменьшилось
Desdechado (2006-09-29 14:00:00) [11]MsGuns © (29.09.06 13:40) [7]
Пункт 2, мягко говоря, спорный, особенно "использовать не DB-aware контролы". Зачем их тогда придумали, не подскажешь? Или ты любишь городить препятствия и героически их преодолевать?
MsGuns (2006-09-29 13:40:00) [12]1. Использовать буферизацию и исследовать событиядатасетов, в частности BeforePost (читать "библию" датасетов TDataSet до изнеможения !!!)
2. Отказаться от редактирования в DBGrid и использовать не DB-aware контролы. Полученные изменения вносить в таблицы отдельным запросом. Отображаемый НД после внесения правки в БД перечитывать.
3. Для обмена данными с БД использовать ClientDataSet, дающий "клиенту" практически неограниченные возможности манипулирования полученными из БД фрагментами, в том числе буферизации, кэширования изменений, отката-подтверждения изменений, версирования "клиентских" данных и т.д..
ЮЮ (2006-09-29 13:15:00) [13]Какого типа DBGrid. DataSource.DataSet ?
А проще, какие компоненты используешь для доступа к таблицам?
Плохиш (2006-09-29 13:09:00) [14]
> Elen © (29.09.06 13:02) [3]
>
> > Из справки
>
> !? Какой? Я тоже хочу почитать
По TDBGrid.
Elen (2006-09-29 13:05:00) [15]
> автоматически редактирует запись и в базе тоже.
А, пардон, база имеется ввиду файл или каго?
Elen (2006-09-29 13:02:00) [16]
> Из справки
!? Какой? Я тоже хочу почитать
Плохиш (2006-09-29 13:01:00) [17]
> Elen © (29.09.06 13:00) [1]
>
> > Похоже что если отредактировал какую-то запись на экране,
>
> > то при переходе курсором на др. запись этот DBGrid автоматически
>
> > редактирует запись и в базе тоже.
>
> Откуда такие выводы?
Из справки, из генофонда ....
Elen (2006-09-29 13:00:00) [18]
> Похоже что если отредактировал какую-то запись на экране,
> то при переходе курсором на др. запись этот DBGrid автоматически
> редактирует запись и в базе тоже.
Откуда такие выводы?