Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

работа TQuery.OnUpdateRecord   Найти похожие ветки 

 
Вольный Стрелок   (2003-12-12 11:16) [0]

Не пойму в чем дело: судя по описанию, этот обработчик должен вызываться для каждой модифицированной записи. Так и происходит.
Вот только текущая запись в передаваемом ему параметром DataSet"е не меняется.
Как же определить, какую запись обрабатывать?


 
Sandman25 ©   (2003-12-12 11:20) [1]

Смотрите DataSet.FieldByName(..).OldValue и NewValue


 
Вольный Стрелок   (2003-12-12 11:24) [2]

я имел ввиду номер текущей записи - не меняется


 
Sandman25 ©   (2003-12-12 11:28) [3]

Не надо идентифицировать данные по номеру записи. У Вас в данных нет уникального ключа?


 
Вольный Стрелок   (2003-12-12 11:32) [4]

Я по нему и смотрю.
И на всех записях он одинаковый. Это в тупик и ставит.


 
Sandman25 ©   (2003-12-12 11:34) [5]

CashedUpdates = True?
Вызываете ApplyUpdates?


 
Вольный Стрелок   (2003-12-12 11:40) [6]

да, иначе как бы в обработчик попадал бы?
На входе в обработчик смотрю на первичный ключ и для каждой записи вижу одно и то же. Поэтому и определить, что за запись текущая, не могу.


 
Sandman25 ©   (2003-12-12 11:42) [7]

Странно. Попробуйте поставить Use Debug DCU и потрассировать.


 
Вольный Стрелок   (2003-12-12 16:35) [8]

Спасибо. Понял, в чем была причина.
Действительно, надо обращаться к полям через OldValue и NewValue.
А обращение через DataSet.Fields[ 0 ]. AsInteger, например, ведет к описанной ситуации. Хотя почему ведет, не знаю :(


 
Sandman25 ©   (2003-12-12 18:13) [9]

[8] Вольный Стрелок (12.12.03 16:35)

Дело в том, что для UpdateRecord создается новый Dataset, а не используется существующий. В этом новом DataSet находятся копии только тех записей, которые добавлялись/изменялись/удалялись. Но, в общем, Вы уже и сами разобрались :)



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-25410
EugenCFG
2003-12-24 14:23
2004.01.09
Мерцания при прорисовки или большой объём файлов.


1-25386
Rate
2003-12-24 20:09
2004.01.09
Нажатие кнопки


1-25348
SergLight
2003-12-22 11:32
2004.01.09
Ошибка в TCombobox


14-25520
SiJack
2003-12-17 16:15
2004.01.09
Какой струйный принтер посоветуете ?


4-25648
Islander
2003-11-08 17:18
2004.01.09
Как получить текущий системный фонт в виде объекта TFont?