dataset.locate по вычисляемому полю типа string

Kos-2010
Дата: 12.09.2019 08:04:12
Доброе время суток,

В БД firebird 3, есть 2 поля «DSTU» - string и «NUMERAL_DSTU» - integer,

в них такие значения "ДСТУ 3607-97" и во втором поле «NUMERAL_DSTU» содержится только цифры с поля «DSTU» - это «360797».

Т.к. мне необходимо делать locate только по «NUMERAL_DSTU» и по части значения, я в dataset делаю вычисляемое поле типа string и присваиваю ему значение
ibdsDSTU.FieldByName('CALC_NUMBER_STRING').AsString := ibdsDSTU.FieldByName('NUMERAL_DSTU').AsString;

но locate
DM.ibdsDSTU.Locate('CALC_NUMBER_STRING', '360', [loPartialKey]);


Всеравно не позицонируется. Все получается только при вводе полного значения, т.е. «360797»
У других пишут выходит.
и в поле «DSTU» например locate = "ДСТУ 360" также работает

Где ошибка?
Заранее спасибо за ответ

P.S.
вообще пишут, что должно работать, напимер в https://delphi.fandom.com/wiki/TLocateOptions_Type
Kos-2010
Дата: 12.09.2019 08:25:59
Нужно было в самом запросе создавать вычисляемое поле, а не в dataset
Dimitry Sibiryakov
Дата: 12.09.2019 12:30:32

Kos-2010
Где ошибка?

В ДНК. У тебя уже есть эти данные в виде теста в DSTU, вот по ним и ищи.

Posted via ActualForum NNTP Server 1.5