Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TDataSetProvider.OnUpdateError: в DataSet нет ключевого поля [D6, MSAccess]


AkaSaint ©   (2003-07-15 21:22:00) 

Сабж! Ситуация: 2 клиента изменяют одно и то же поле в одной записи. Хочу в обработчике события сабж сделать в исходной таблице Locate по ключевому полю из DataSet и перечитать запись с жесткого диска, но в DataSet значени ключевого поля - Null! Что думаете по этому поводу?


AkaSaint   (2003-07-16 01:27:00) [1]

Да, довольно сумбурно получилось... :) Попробую по-русски. Есть 3-звенное приложение. Если 2 клиента изменяют одно и то же поле в одной записи, то при выполнении метода ApplyUpdates вторым клиентом произойдет ошибка обновления - так и должно быть - и будет вызван обработчик TDataSetProvider.OnUpdateError, в который в качестве одного из параметров под именем DataSet передается набор данных, текущая запись которого является той, которую прислал второй клиент и которая вызвала ошибку обновления. Я хочу считать из БД тот вариант записи, который туда записал первый клиент, для этого мне нужно позиционироаться на эту запись (используя Locate и ключ из DataSet - ведь ключ не меняется в моем случае) и перечитать ее с жесткого диска. Но, т.к. почему-то DataSet.FieldByName("ClientNum").Value оказывается Null, Locate не выполняется и запись не перечитывается... :-)


sniknik   (2003-07-15 22:12:00) [2]

неплохо былобы еще раз и по русски. (just my think)


Наверх

Титульная страница Поиск, карта сайта Написать письмо