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

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

ADOQuery [D7]


Lamer666 ©   (2007-04-24 22:03:00) 

Доброго времени СУТОК!
Подскажите мне пожалуйста МАСТЕРА, как сделать так, чтобы
ИСПРАВЛЯЯ данные DBGrid они записывались в базу не сразу после изменения а при нажатии кнопки.
То есть отредактировали все поля на форме, и только после нажатия ОК, данные сохраняються в Access?
Спасибо!


ByakaBuka   (2007-04-25 15:47:00) [1]

И ручкой зубы не почистить :)

В общем результат таков что Lamer666 почитав сей "манускрипт" убежал, удалив сей зложастный кнопарь

з.ы.
 Кроме этого предлагаю ввести лицензирование на приобретение ручек и др. концелярско-опасных девайсов, после прохождения осмотров в уполномоченных учреждениях, и в последующем удостоверения User-а


sniknik   (2007-04-25 15:25:00) [2]

> вовсе и не одна таблица редактируется.
еще лучше, тогда возможно не один человек неожиданному отдыху порадуется, а целый отдел...

> Я всего лишь утверждаю (и только), что использование транзакций в некоторых случаях неизбежно (для корректной работы).
а я в свою очередь утверждаю, что использование ручки в некоторых случаях неизбежно (для корректной работы).
а ведь и верно! если взять зубочистку то письмо ей практически не написать..., а потом ктото берет эту ручку и втыкает в глаз соседу... и? а ведь мы только что вывели, что использование ручки корректно и неизбежно...
а про оправданность использования ручки в этом случае можно утверждать только после явки с повинной (на которой будет обсуждаться, ну почему ты не взял шило? им же удобнее)
;о))

p.s. неважен случай который привел к варианту зависимости завершения транзакции от пользователя, важно что этого допускать ни в коем случае нельзя. даже для однопользовательского аксесса, во избежание устойчивых дурных привычек.


iXT   (2007-04-25 14:56:00) [3]

> [12] sniknik ©   (25.04.07 14:38)

Ну может там вовсе и не одна таблица редактируется. Или целая последовательность действий

З.Ы.
   Я всего лишь утверждаю (и только), что использование транзакций в некоторых случаях неизбежно (для корректной работы). Про оправданность использования можно утверждать только после того, как будет озвучены подробности


sniknik   (2007-04-25 14:38:00) [4]

> Ну зачем так сразу. Никто же не знает, чего там делается.
а никто и не говорит ничего про то что делается... обсуждается совет (т.е. то что будет сделано если последуют)
> Запускаешь транзакцию, а Commit вешаешь на кнопку!
данный для создания подобия отложенных изменений.
и что означает старт транзакции в начале редактирования и завершения по желанию пользователя. другие пользователи, особенно для sql серверов блокировочников, будут очень рады неожиданной возможности отдохнуть пока первый курит...


Sergey13   (2007-04-25 13:02:00) [5]

> [8] Megabyte ©   (25.04.07 12:18)
> СУБД Аксес, БД явно локальная, многопользовательский доступ скорее всего не требуется.
Из всего этого я пока вижу только про Аксес. 8-)
Но транзакция, если это действительно транзакция, штука достаточно универсальная. Посему и совет (в универсальном смысле) все таки вредненький. 8-)
Без разницы что там юзер делает. Главное то, что начав транзакцию он может целый день (может и дольше) не подтверждать ее.


iXT   (2007-04-25 12:37:00) [6]

> совет не вредный, а очень вредный... из разряда диверсии
> в программе. (смысл поставить эти все хваленые движки/sql
> сервера на колени... пусть знают наших)

Ну зачем так сразу. Никто же не знает, чего там делается. Телепатор мне подсказывает что там все намного проще и использование транзакций в данном случае неоправданно, но иногда без них никуда :) .
Опять же из контекста телепатора я бы убрал Grid (куда подальше, накрайняк Enable:=вранье) и т.п, и по кнопке делал все че надо


sniknik   (2007-04-25 12:27:00) [7]

> Совет не вредный, а не всегда выполнимый.
совет не вредный, а очень вредный... из разряда диверсии в программе. (смысл поставить эти все хваленые движки/sql сервера на колени... пусть знают наших)


Megabyte   (2007-04-25 12:18:00) [8]


Sergey13 ©  (25.04.07 11:25) [5]

> [4] Megabyte ©  (25.04.07 11:21)

Транзакция должна стремиться по времени к минимуму времени, т.к. (в разных СУБД немного по разному, но все же) требует ресурсов и блокирует (по разному) информацию.

СУБД Аксес, БД явно локальная, многопользовательский доступ скорее всего не требуется.
Ну и iXT ©  (25.04.07 11:51) [7] все сказал о ходе моих мыслей :)


iXT   (2007-04-25 11:51:00) [9]

> Запускаешь транзакцию, а Commit вешаешь на кнопку!

Совет не вредный, а не всегда выполнимый. Автор молчит, и крому ADOQuery ничего не расказывает.
И что означает:
> То есть отредактировали все поля на форме

и
> ИСПРАВЛЯЯ данные DBGrid


ЮЮ   (2007-04-25 11:43:00) [10]


> смотреть в справке по TDataSet

У наследников они разные
у TBDEDataSet - CachedUpdates [+ TUpdateSQL],
у TCustomADODataSet вообще всё законспирировано(To use batch updating, the CursorType property of the dataset component must be either ctKeySet (the default) or ctStatic and the LockType property must be ltBatchOptimistic)

а ты говоришь - у TDataSet написано :)


Sergey13   (2007-04-25 11:25:00) [11]

> [4] Megabyte ©   (25.04.07 11:21)

Транзакция должна стремиться по времени к минимуму времени, т.к. (в разных СУБД немного по разному, но все же) требует ресурсов и блокирует (по разному) информацию.


Megabyte   (2007-04-25 11:21:00) [12]


> Sergey13 ©  (25.04.07 11:19) [3]

> [2] Megabyte ©  (25.04.07 11:17)

Достаточно вредный совет.

Поясните :) Буду благодарен.


Sergey13   (2007-04-25 11:19:00) [13]

> [2] Megabyte ©   (25.04.07 11:17)

Достаточно вредный совет.


Megabyte   (2007-04-25 11:17:00) [14]

Запускаешь транзакцию, а Commit вешаешь на кнопку!


MsGuns   (2007-04-25 11:14:00) [15]

Буферизация (кеширование) изменений, смотреть в справке по TDataSet


Наверх

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