Тема: Некорректная работа функции Locate после добавления в набор данных

Проблема в следующем:
Получаю набор данных (позиции Спецификации), затем его сравниваю с другим набором позиций Спецификаций, полученных из таблицы на sql-сервере:

Перемещаясь в цикле по набору, полученному  из внешней таблицы, каждый раз делаю поиск в наборе позиций спецификаций (полученный заранее перед циклом) по номеру позиции и затем делаю не хитрые действия:
В случае, если нахожу позицию с тек. номером позиции, по делаю Edit в наборе позиций СП ТКС, а если не нахожу, делаю CreateNew в наборе позиций СП ТКС.

Что получаю на выходе:
Пока в цикле я нахожу тек. позицию и выполняю Edit - всё хорошо, как только стоит в наборе позиций СП ТКС добавить новую позицию (CreateNew ) сразу после этого в наборе позиций СП ТКС стандартной функцией Locate (на набор данных) невозможно найти позицию, хотя она там есть, тем самым каждый раз добавляется новая позиция (вместо редактирования), дублируя уже имеющиеся. Функция Locate просто не отрабатывает и не позиционируется на нужную позицию в наборе позиций СП ТКС


Прога на Delphi

Re: Некорректная работа функции Locate после добавления в набор данных

По каким свойствам делается Locate?

Re: Некорректная работа функции Locate после добавления в набор данных

Олег Зырянов пишет:

По каким свойствам делается Locate?

SPF_Pos.Locate('POSITION', Num_Pos, 0) ....

по полю 'POSITION' , я ж писал

Re: Некорректная работа функции Locate после добавления в набор данных

В скриптах все работает.

Попробуйте добавить перед вызовом Locate такой код (возможно в этом причина?)

YOUR_SPEC_INTERFACE.DbTree.RootNodes.Item(0).Selected = True