Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.037 c
2-1177291252
Abcdef123
2007-04-23 05:20
2007.05.13
Как организовать поиск по всему проекту на наличие имени таблицы


2-1177323297
Stronger
2007-04-23 14:14
2007.05.13
Помогите решить эту задачу


2-1176958517
san655
2007-04-19 08:55
2007.05.13
Не изменяется свойство Count у компонента Listbox


1-1173948393
tytus
2007-03-15 11:46
2007.05.13
Как сделать OnTimer в RunTime в DLL?


15-1176291085
~viper~
2007-04-11 15:31
2007.05.13
Какая последняя версия Delphi?