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

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

помогите разобраться с DBGrid [D6, MSSQL]


Страницы:   1 2

Sim0n ©   (2002-08-08 08:54:00) 

Доброго времени суток!
Есть такая проблема...
Запрос ADOQuery возвращающий кучу столбцов...
При редактировании оных в DBGrid изменения тутже заносятся в БД...
Нужно чтобы изменения скажем постились на выходе с формы,
это понятно как... Но что нужно сделать чтобы изменения
не происходили на лету, т.е данные не отправлялись в БД сразу...
спасибо!


Jeer   (2002-08-08 21:36:00) [1]

>ЮЮ © (08.08.02 11:28)
>Открывать трангзакцию на непределенное время для работы >пользователя с Гридом - не лучший выход.

Не просто "не лучший..", а худший !
О чем говорим ?

>nikolo © (08.08.02 10:27)
>в котором заносить все поля в обычные Edit, Combo

Вот надежный и безотказный способ !
Чтобы не писать все ручками надо немного подумать "ножками".
Создается и наследуется среда (формы, фреймы,компоненты) значительно облегчающие работу с данными.
А если каждый раз и все ручками - никакого потенциала не хватит..


SergCat   (2002-08-08 21:28:00) [2]

Надеюсь, что я правильно понял вопрос...
Можно создать TADOQuery в отдельном TDataModule и делать UpdateBatch когда захочешь.


AlexSam   (2002-08-08 11:46:00) [3]

Мое мнение насчет таймера - откатывать вместе с предкпреждением и закрытием формы ред. данных.


MikeP   (2002-08-08 11:46:00) [4]

Можно спросить об этом юзера, по аналогии с тем, как работает автосохранение в Office. Только не "откатывать", а "не завершать". Откат только при нажатии Cancel в форме.


ЮЮ   (2002-08-08 11:41:00) [5]

А таймер будет подтверждать транзакцию или откатывать ?


MikeP   (2002-08-08 11:39:00) [6]

2ЮЮ
Зачем же на неопределенное, тимер поставить.


AlexSam   (2002-08-08 11:36:00) [7]

Я вообще не пользуюсь TDBGrid для редактирования данных, а только хранимыми процедурами c insert, update. Это муторнее в написании программы, но надежнее. Мы вообще не знаем, что должна делать программа и говорим слишком в общем.


ЮЮ   (2002-08-08 11:28:00) [8]

Никто не спорит в необходимости транзакции при больших объемах модификаций. Но в данном случае вопрос-то в другом. Открывать трангзакцию на непределенное время для работы пользователя с Гридом - не лучший выход.


AlexSam   (2002-08-08 11:18:00) [9]

Для ЮЮ, просто производилась большая конвертация данных из текстовой базы в SQL7.

Для wicked, для этого и существуют блокировки, представь, что на разных ПК будут бессвязно редактировать одни данные и накладывать измненеия друг на друга. Что получится?


Johnmen   (2002-08-08 11:13:00) [10]

>AlexSam (08.08.02 09:18) - Да !
>ЮЮ © (08.08.02 11:05) - Ха-ха...Сарказм необоснован.


ЮЮ   (2002-08-08 11:05:00) [11]

>Уважаемый ЮЮ, я не только начитался, но и наработался. Для ускорения процесса записи я в одной программе объединял в танзакции 200.000 Insert-ов.

Неужели в Январе открыли, в Декабре, когда пользователь через грид вбил 200 000 строк, закрыли? :-)


MikeP   (2002-08-08 10:56:00) [12]

TClientDataSet


SaS13   (2002-08-08 10:45:00) [13]

>При редактировании оных в DBGrid изменения тутже заносятся в БД...
>Нужно чтобы изменения скажем постились на выходе с формы
я так понял что на форме отображается Грид и в нем правка производится, а потом всем скопом либо сохр. либо нет


3JIA9I CyKA   (2002-08-08 10:41:00) [14]

А как Вы в гриде правите "целый набор"?


SaS13   (2002-08-08 10:32:00) [15]


> nikolo © (08.08.02 10:27)

А если требуется не одну запись, а целый набор?


nikolo   (2002-08-08 10:27:00) [16]

Проще не редактировать в Grid, а открывать обычное Dialog-окно, в котором заносить все поля в обычные Edit, Combo и т.д., а по событию OnClose спрашивать "сохранить" или нет, ну и соответственно делать транзакцию. Может не совсем круто, но точно надежно, давно так делаю и никаких проблем.


wicked   (2002-08-08 10:22:00) [17]

транзакции подойдут, если ты один будешь работать с данными...
если же не один, то все, кто напорется на строчки в таблице, которые находятся под транзакцией, будут вынуждены ждать её завершения... или mssql распознает deadlock и отошьёт их сам...
то есть совет SaS13 © более предпочтителен...


AlexSam   (2002-08-08 10:00:00) [18]

Уважаемый ЮЮ, я не только начитался, но и наработался. Для ускорения процесса записи я в одной программе объединял в танзакции 200.000 Insert-ов.


SaS13   (2002-08-08 09:41:00) [19]


> Sim0n (08.08.02 08:54)

Используй временный НД


ЮЮ   (2002-08-08 09:31:00) [20]

Устанавливать такую продолжительную транзакцию? Где это ты такого начитался? ?-)


Страницы:   1 2

Наверх

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