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

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

запись в базу через 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 автоматически
> редактирует запись и в базе тоже.

Откуда такие выводы?


Наверх

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