Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.055 c
15-1174904932
infom
2007-03-26 14:28
2007.05.13
Комплексное решение для разработчиков ПО


15-1176277952
Kerk
2007-04-11 11:52
2007.05.13
Помогите написать перловый регэксп плиз


2-1177006647
Sapan
2007-04-19 22:17
2007.05.13
Удалить символ из поля


2-1177130069
dmdel
2007-04-21 08:34
2007.05.13
OleContainer


3-1171889776
mefisto
2007-02-19 15:56
2007.05.13
Проблема с печатью стариц на Fast report 4





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский