Вниз
Скачать: CL | DM;

TDataSetProvider.UpdateMode = upWhereKeyOnly не действует   Найти похожие ветки 

 
AkaSaint ©   (2003-06-21 15:36) [0]

Сабж в 3-звенном приложении. 2 клиента параллельно изменяют неключевое поле одной и той же записи. Первый клиент применяет обновления удачно, для второго возникают на сервере приложений два исключения EOleException и EDatabaseError с одним и тем же сообщением: "Row cannot be located for updating. Some values may have been changed since it was last read". Значение UpdateMode провайдера проверяю в событии BeforeApplyUpdates. Подскажите, пожалуйста, что я не так делаю.


 
Eugene_e ©   (2003-06-21 16:42) [1]

В принципе у меня подобное приложение, только более усложнено общение клиента с сервером. Попробовал выполнить похожие действия - обновления произошли без проблем. Может быть стоит указать подробнее - как организовано взаимодействие с БД (единый модуль данных или организация независимых подключений в каждом из COM-модулей), как происходит обновление - средствами TDataSetProvider автоматически или какие-то доп. обработчики?


 
AkaSaint ©   (2003-06-21 19:41) [2]

Каждый COM-модуль подключается самостоятельно через свой ADOConnection с одинаковой строкой подключения к .mdb-файлу. Обновление происходит средствами TDataSetProvider. Я обнаружил странную закономерность, но понять ее не могу. Если стоит у провайдера ResolveToDataset=True, то эта ошибка есть, если False, то нет. Еще вопрос: что значит единый модуль данных? Я еще новичок в 3-звенной архитектуре.


 
Eugene_e ©   (2003-06-23 10:07) [3]

В общем это я и хотел понять, что все COM-модули имеют независимые соединения с БД, что впрочем логично. По документации когда ResolveToDataset=True, обновления производятся через DataSet, специфицированный для TDataSetProvider и этот режим нужен, если требуется обработка событий DataSet. В случае False получатся, что Update идет непосредственно по базе, т.е. получается что проблема именно в DataSet. Возможно следует посмотреть его св-ва CursorLocation, CursorType, LockType



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
14-55758
urd
2003-07-03 09:03
2003.07.17
select ... from ... не работает


14-55812
Nikkk
2003-07-01 07:33
2003.07.17
Не могу поставить систему на ядре NT


4-55894
alexus
2003-05-13 17:55
2003.07.17
получение ссылки на окно


1-55563
BillyJeans
2003-07-03 12:03
2003.07.17
Как программно вывести hint у ярлыка в трее?


8-55659
Dankin
2003-03-27 03:08
2003.07.17
PDX формат в Delphi. (Изображение Kodak Cineon)




   Наверх