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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 12.09.2019, 00:55   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 469
Репутация: 16
По умолчанию 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 в 01:10.
KBO вне форума   Ответить с цитированием
Старый 12.09.2019, 07:38   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,901
Репутация: 6688
По умолчанию

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

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

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

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

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

Последний раз редактировалось KBO; 12.09.2019 в 09:30.
KBO вне форума   Ответить с цитированием
Старый 12.09.2019, 09:39   #6
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,901
Репутация: 6688
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


02:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.