Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
ВнизADOQuery Найти похожие ветки
← →
Lamer666 (2007-04-24 22:03) [0]Доброго времени СУТОК!
Подскажите мне пожалуйста МАСТЕРА, как сделать так, чтобы
ИСПРАВЛЯЯ данные DBGrid они записывались в базу не сразу после изменения а при нажатии кнопки.
То есть отредактировали все поля на форме, и только после нажатия ОК, данные сохраняються в Access?
Спасибо!
← →
MsGuns © (2007-04-25 11:14) [1]Буферизация (кеширование) изменений, смотреть в справке по TDataSet
← →
Megabyte © (2007-04-25 11:17) [2]Запускаешь транзакцию, а Commit вешаешь на кнопку!
← →
Sergey13 © (2007-04-25 11:19) [3]> [2] Megabyte © (25.04.07 11:17)
Достаточно вредный совет.
← →
Megabyte © (2007-04-25 11:21) [4]
> Sergey13 © (25.04.07 11:19) [3]
> [2] Megabyte © (25.04.07 11:17)
Достаточно вредный совет.
Поясните :) Буду благодарен.
← →
Sergey13 © (2007-04-25 11:25) [5]> [4] Megabyte © (25.04.07 11:21)
Транзакция должна стремиться по времени к минимуму времени, т.к. (в разных СУБД немного по разному, но все же) требует ресурсов и блокирует (по разному) информацию.
← →
ЮЮ © (2007-04-25 11:43) [6]
> смотреть в справке по 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 написано :)
← →
iXT © (2007-04-25 11:51) [7]> Запускаешь транзакцию, а Commit вешаешь на кнопку!
Совет не вредный, а не всегда выполнимый. Автор молчит, и крому ADOQuery ничего не расказывает.
И что означает:
> То есть отредактировали все поля на форме
и
> ИСПРАВЛЯЯ данные DBGrid
← →
Megabyte © (2007-04-25 12:18) [8]
Sergey13 © (25.04.07 11:25) [5]
> [4] Megabyte © (25.04.07 11:21)
Транзакция должна стремиться по времени к минимуму времени, т.к. (в разных СУБД немного по разному, но все же) требует ресурсов и блокирует (по разному) информацию.
СУБД Аксес, БД явно локальная, многопользовательский доступ скорее всего не требуется.
Ну и iXT © (25.04.07 11:51) [7] все сказал о ходе моих мыслей :)
← →
sniknik © (2007-04-25 12:27) [9]> Совет не вредный, а не всегда выполнимый.
совет не вредный, а очень вредный... из разряда диверсии в программе. (смысл поставить эти все хваленые движки/sql сервера на колени... пусть знают наших)
← →
iXT © (2007-04-25 12:37) [10]> совет не вредный, а очень вредный... из разряда диверсии
> в программе. (смысл поставить эти все хваленые движки/sql
> сервера на колени... пусть знают наших)
Ну зачем так сразу. Никто же не знает, чего там делается. Телепатор мне подсказывает что там все намного проще и использование транзакций в данном случае неоправданно, но иногда без них никуда :) .
Опять же из контекста телепатора я бы убрал Grid (куда подальше, накрайняк Enable:=вранье) и т.п, и по кнопке делал все че надо
← →
Sergey13 © (2007-04-25 13:02) [11]> [8] Megabyte © (25.04.07 12:18)
> СУБД Аксес, БД явно локальная, многопользовательский доступ скорее всего не требуется.
Из всего этого я пока вижу только про Аксес. 8-)
Но транзакция, если это действительно транзакция, штука достаточно универсальная. Посему и совет (в универсальном смысле) все таки вредненький. 8-)
Без разницы что там юзер делает. Главное то, что начав транзакцию он может целый день (может и дольше) не подтверждать ее.
← →
sniknik © (2007-04-25 14:38) [12]> Ну зачем так сразу. Никто же не знает, чего там делается.
а никто и не говорит ничего про то что делается... обсуждается совет (т.е. то что будет сделано если последуют)
> Запускаешь транзакцию, а Commit вешаешь на кнопку!
данный для создания подобия отложенных изменений.
и что означает старт транзакции в начале редактирования и завершения по желанию пользователя. другие пользователи, особенно для sql серверов блокировочников, будут очень рады неожиданной возможности отдохнуть пока первый курит...
← →
iXT © (2007-04-25 14:56) [13]> [12] sniknik © (25.04.07 14:38)
Ну может там вовсе и не одна таблица редактируется. Или целая последовательность действий
З.Ы.
Я всего лишь утверждаю (и только), что использование транзакций в некоторых случаях неизбежно (для корректной работы). Про оправданность использования можно утверждать только после того, как будет озвучены подробности
← →
sniknik © (2007-04-25 15:25) [14]> вовсе и не одна таблица редактируется.
еще лучше, тогда возможно не один человек неожиданному отдыху порадуется, а целый отдел...
> Я всего лишь утверждаю (и только), что использование транзакций в некоторых случаях неизбежно (для корректной работы).
а я в свою очередь утверждаю, что использование ручки в некоторых случаях неизбежно (для корректной работы).
а ведь и верно! если взять зубочистку то письмо ей практически не написать..., а потом ктото берет эту ручку и втыкает в глаз соседу... и? а ведь мы только что вывели, что использование ручки корректно и неизбежно...
а про оправданность использования ручки в этом случае можно утверждать только после явки с повинной (на которой будет обсуждаться, ну почему ты не взял шило? им же удобнее)
;о))
p.s. неважен случай который привел к варианту зависимости завершения транзакции от пользователя, важно что этого допускать ни в коем случае нельзя. даже для однопользовательского аксесса, во избежание устойчивых дурных привычек.
← →
ByakaBuka (2007-04-25 15:47) [15]И ручкой зубы не почистить :)
В общем результат таков что Lamer666 почитав сей "манускрипт" убежал, удалив сей зложастный кнопарь
з.ы.
Кроме этого предлагаю ввести лицензирование на приобретение ручек и др. концелярско-опасных девайсов, после прохождения осмотров в уполномоченных учреждениях, и в последующем удостоверения User-а
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c