Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизPost данных из DataSet в базу Найти похожие ветки
← →
gunner (2004-08-23 10:01) [0]Приветствую !
Каким образом сделать чтобы при редактировании данных в датасете и скролировании на следущую запись, данные не постились в БД ?
← →
Sergey13 © (2004-08-23 10:10) [1]Не редактировать?
← →
gunner (2004-08-23 10:13) [2]> Sergey13 ©
Например если в DBGrid редактирую строчку, а потом скролируюсь на след запись, то датасет пытается запостить изменённые данные в БД. Вот этого мне как раз и не нада !
← →
Sergey13 © (2004-08-23 10:18) [3]2[2] gunner (23.08.04 10:13)
Тогда напиши чего нада!
← →
Anatoly Podgoretsky © (2004-08-23 10:20) [4]Read Only
← →
gunner (2004-08-23 10:24) [5]Похоже я излагаю не совсем ясно !
Вобщем есть датасет с данными есть грида отображающая их !
Так вот мне нужно в гриде редактировать данные тобиш в датасете, но мне не нужно чтобы они при этом постились в БД. А именно так и происходит когда я пытаюсь проскролироваться по гриде с отредактированными данными !
← →
Erik1 (2004-08-23 10:25) [6]Во время AftePost возбудиить исключение, например Abort;
← →
Sergey13 © (2004-08-23 10:27) [7]Отключить датасет от БД. Например копировать НД в таблицу в памяти RxMemoryData или нечто похожее и работать с ней.
← →
gunner (2004-08-23 10:30) [8]> Sergey13
Это будет решением как говорится в ЛОБ.
Интересней было бы заставить датасет постить данные не автоматом а по комманде !
← →
AleKo (2004-08-23 10:31) [9]Создай ClientdataSet переноси туда записи и делай с ними что хочешь.
← →
Sergey13 © (2004-08-23 10:32) [10]2[8] gunner (23.08.04 10:30)
>Это будет решением как говорится в ЛОБ.
Как решаешь - так (по тому месту 8-) и получаешь. 8-)
← →
gunner (2004-08-23 10:39) [11]> AleKo
Спасибо за совет ! Наверное это самое правельное решение !
← →
Zacho © (2004-08-23 10:42) [12]Похоже, ему просто надо CachedUpdates
← →
gunner (2004-08-23 10:48) [13]> Zacho
И на какой эвент его повесить BeforePost ?
← →
roottim © (2004-08-23 10:51) [14]>Zacho © (23.08.04 10:42) [12]
ага, только он пользуется "компонентом" TDataSet
← →
gunner (2004-08-23 10:54) [15]ок ща проверю !
← →
AleKo (2004-08-23 10:55) [16]Попробуй это.
TDataSet.OnPostError
Occurs when an application attempts to modify or insert a record and an exception is raised.
type TDataSetErrorEvent = procedure(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction) of object;
property OnPostError: TDataSetErrorEvent;
Action is
Value Meaning
daFail Abort the operation that led to an error and display an error message.
daAbort Abort the operation that led to an error without displaying a message.
daRetry Repeat the operation that led to an error. The cause of the error should be corrected within the event handler before returning this value.
← →
gunner (2004-08-23 11:03) [17]> AleKo
Предлагаешь вызвать OnPostError в BeforePost вручную, чтобы спровацировать отмену Поста ?
← →
AleKo (2004-08-23 11:10) [18]Да.
← →
AleKo (2004-08-23 11:12) [19]Канечно нужно подкмать откуда вызывать исключение.
Может попробовать BeforeScroll
← →
gunner (2004-08-23 11:20) [20]> AleKo
Не прокатывает... всёравно он данные пытается запостить. Наверное самое правельно это использовать ClientDataSet
← →
roottim © (2004-08-23 12:59) [21]когданибуть прозвычит тут фраза компонент доступа?
для BDE см ответ Zacho
← →
KSergey © (2004-08-23 13:08) [22]А кто-то может объяснить чем ClientDataSet отличсется от RxMemoryData да еще так, что ClientDataSet не есть "решение в лоб"??
А вообще услышать про компоненты доступа конечно хотелось бы...
← →
gunner (2004-08-23 15:27) [23]> KSergey
В RxMemoryData данные пришлось бы загонять вручную, а в ClientDataSet на автомате !
← →
gunner (2004-08-23 15:27) [24]Удалено модератором
← →
Sergey13 © (2004-08-23 16:21) [25]2[23] gunner (23.08.04 15:27)
>В RxMemoryData данные пришлось бы загонять вручную, а в ClientDataSet на автомате !
Там просто автомат другой системы. 8-)
← →
gunner (2004-08-24 08:27) [26]Вобщем стандартного механизма решения этой задачи нет ! Только через доболнительные нахлабучки !
← →
roottim © (2004-08-24 08:41) [27][21]
← →
Sergey13 © (2004-08-24 09:10) [28]2[26] gunner (24.08.04 08:27)
>Вобщем стандартного механизма решения этой задачи нет !
Так и задача то не совсем стандартная - редактировать но не запоминать.
← →
gunner (2004-08-24 13:11) [29]> Sergey13 ©
ДА ! А вобще история вся начилась с того что в ADOQuery банально не работает Post !
← →
KSergey © (2004-08-24 13:39) [30]> [29] gunner (24.08.04 13:11)
> ДА ! А вобще история вся начилась с того что в ADOQuery
Ну неужели мы таки дождались озвучания компонент доступа?! О, слава всевышнему!
Тогда см. в сторону UpdateBatch и вокруг этого (LockType) - вот и все. И будет буквально
> при редактировании данных в датасете и скролировании на
> следущую запись, данные не постились в БД
← →
elected (2004-08-24 14:31) [31]включи CashedUpdate
← →
gunner (2004-08-24 16:45) [32]> elected
Прошу прощения, это что такое CashedUpdate ?
← →
gunner (2004-08-24 16:50) [33]> KSergey ©
UpdateBatch решит проблему с Post в ADOQuery или всего лишь позволит не постить данные в БД при изменения в датасете ?
← →
KSergey © (2004-08-24 16:58) [34]> [33] gunner (24.08.04 16:50)
Перечитав (бегло) я не нашел какого-либо описания проблемы с постом. Лишь упоминание, да и то совершенно не понятно как относящееся к теме. А потому не понятно что должно решиться.
← →
A_N_D © (2004-08-24 17:20) [35]TADOQuery.LockType поставь ltBatchOptimistic
← →
AleKo (2004-08-25 02:18) [36]Можно использовать StringGrid.
Никаких проблем с сохранением данных.
← →
gunner (2004-08-25 09:41) [37]> A_N_D ©
Спасибо TADOQuery.LockType с этим ясно !
> KSergey ©
Тут этой проблемы не было озвучено, но я пришёл к озвученной проблеме с постом при редактировании из - за того что если отредактировать данные в датасете (ADOQuery), а потом сделать Post, то ADOQuery вылетает с экскепшином "table name is an undefined name"
Вот и пришлось мне делать все апдейты в ручную и заставлять кверю не постить данные при их редактировании.
Вот !
← →
KSergey © (2004-08-25 10:04) [38]> [37] gunner (25.08.04 09:41)
Мдя..
Такой ошибки еще не видел, обычно имею другую.
Настоятельно рекомендую прочитать все 3 части опуса
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=408
Лучшего мне не попадалось.
← →
gunner (2004-08-25 12:33) [39]> KSergey ©
Щас заценю обязательно :)
← →
gunner (2004-08-25 13:14) [40]> KSergey ©
Прочитал статейку ! Там только теория, и как я понял у автора небыло проблем с постом в квери... Странно всё это !
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.053 c