![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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