Вниз
Скачать: 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.013 c
1-55654
CAHbI4
2003-07-04 13:49
2003.07.17
Поиск в TListView


1-55644
MakNik
2003-07-04 11:00
2003.07.17
TerminateProcess


3-55391
Alexander Vasjuk
2003-06-20 13:12
2003.07.17
TIBDataSet: Проблема с генератором


3-55419
Relaxxx
2003-06-24 10:20
2003.07.17
Как выделить програмно нужные строки в DBGrid


3-55429
Endi
2003-06-22 12:58
2003.07.17
Длинный DBCtrlGrid




   Наверх