![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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)