Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 dataset.locate по вычисляемому полю типа string  [new]
Kos-2010
Member

Откуда:
Сообщений: 216
Доброе время суток,

В БД 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
12 сен 19, 08:04    [21969088]     Ответить | Цитировать Сообщить модератору
 Re: dataset.locate по вычисляемому полю типа string  [new]
Kos-2010
Member

Откуда:
Сообщений: 216
Нужно было в самом запросе создавать вычисляемое поле, а не в dataset
12 сен 19, 08:25    [21969092]     Ответить | Цитировать Сообщить модератору
 Re: dataset.locate по вычисляемому полю типа string  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48132

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

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

Posted via ActualForum NNTP Server 1.5

12 сен 19, 12:30    [21969319]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить