Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 11.09.2019, 23:55   #1
KBO
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 484
По умолчанию DataSet.Locate с преобразованием числового поля в стринговое не работает

Доброе время суток,
В БД firebird поле «NUMERAL_DSTU» integer, в нем числа например «302095».
В dataset, сделал вычисляемое поля типа string, и присвоил ему
Код:
ibdsDSTU.FieldByName('CALC_NUMBER_STRING').AsString := ibdsDSTU.FieldByName('NUMERAL_DSTU').AsString;
Делаю locate
Код:
DM.ibdsDSTU.Locate('CALC_NUMBER_STRING', '3020', [loPartialKey]);
Всеравно не позицонируется. Все получается только при вводе полного значения, т.е. «302095»
У других пишут выходит.

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

P.S.
вообще пишут, что должно работать, напимер в https://delphi.fandom.com/wiki/TLocateOptions_Type

Последний раз редактировалось KBO; 12.09.2019 в 00:10.
KBO вне форума Ответить с цитированием
Старый 12.09.2019, 06:38   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Сделай в запросе вычисляемое поле, а не на клиенте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.09.2019, 07:19   #3
KBO
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 484
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сделай в запросе вычисляемое поле, а не на клиенте
но подождите, если например NUMERAL_DSTU это поле типа integer,
то запросом

Код:
select NUMERAL_DSTU, NUMERAL_DSTU as ND  from DSTU
да, я сделаю ND - вычисляемое, но какого оно будет типа, наверно тоже integer, а мне нужно string, т.к. в поле типа integer, я по части значения не найду нужную строку, я вообще ничего не найду
KBO вне форума Ответить с цитированием
Старый 12.09.2019, 07:45   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

cast(NUMERAL_DSTU AS varchar(10)) AS ND
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.09.2019, 08:24   #5
KBO
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 484
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
cast(NUMERAL_DSTU AS varchar(10)) AS ND
Ага, еще раз спасибо. Помогло.
А что всетаки с вычисляемым полем в dataset - НЕ ТАК?

Последний раз редактировалось KBO; 12.09.2019 в 08:30.
KBO вне форума Ответить с цитированием
Старый 12.09.2019, 08:39   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Потому что это виртуальное поле и его значение определяется при перемещении указателя записи, тогда и срабатывает OnCalcField. Locate просто перебором ищет в буфере не меняя в процессе указатель и просто не видит значений. По идее вообще должно на ошибку вывалиться
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После добавления поля в dataset, access… при скроле KBO Помощь студентам 3 09.02.2017 18:04
Тип поля MEMO в Dataset User_IR_An Помощь студентам 2 13.04.2014 18:28
маска для числового поля adoquery haker270 БД в Delphi 3 18.11.2012 21:36
Обязательно ли создавать поля Dataset? DeveloPerchik БД в Delphi 4 15.08.2012 11:05
не работает Locate SERG1980 БД в Delphi 9 26.03.2009 17:04


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS