Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: 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 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
3-55389
Sword
2003-06-22 17:29
2003.07.17
Связь двух таблиц


14-55854
Alex_x
2003-07-02 10:31
2003.07.17
Как получать деньги за программы с запада


3-55420
Vladimir_Shk
2003-06-24 08:31
2003.07.17
Обработка мыши в DBGrid


4-55909
fishca
2003-05-06 17:33
2003.07.17
OLE Automation & Win32API


3-55437
Карелин Артем
2003-06-24 12:55
2003.07.17
Извлечение данных из испорченной базы.