Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2018, 21:06   #1
Wolfire
 
Регистрация: 23.09.2018
Сообщений: 6
Вопрос Поиск наиболее подходящего значения в БД

Здравствуйте. Может кто сможет подсобить с реализацией поиска наиболее подходящего значения в БД.

Фрагмент кода:
N_двDBmax:= FloatToStr(StrToFloat(N_двDB)+500);
FDM.QEngine.SQL.Text:=('Select * from Engine where [Мощность на максимальном режиме, кВт] >= '+N_двDB+' and [Мощность на максимальном режиме, кВт] <= '+N_двDBmax+';');
FDM.QEngine.Open;
mass:=FDM.QEngine.FieldValues['Масса (кг)'];
power:=FDM.QEngine.FieldValues['Мощность на максимальном режиме, кВт'];
MK:=FDM.QEngine.FieldValues['Марка'];

Код рабочий. Но таким образом извлекается первое подходящее значение..
Пробовал изменять максимальное значение, но проблемы начинаются когда максимальное значение столь мало по отношению к минимальному, что ни какое значение из БД попросту не подходит и выдаёт ошибку при поиске:could not convert variant of type null into type olestr.
Почему выдаёт ошибку - понятно. А вот как это дело решить...
Wolfire вне форума Ответить с цитированием
Старый 22.10.2018, 21:23   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
QEngine
Фиг знает что за датасет, но обычно набор данных возвращается. То есть читать строки в цикле пока не eof. Вот и будет не только одно подходящее. А может и одно. Или вообще ни чего ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.10.2018, 20:03   #3
Wolfire
 
Регистрация: 23.09.2018
Сообщений: 6
По умолчанию

Аватар, QEngine - компонент ADOQuery.
Ранее не встречался с индикатором eof. Я был бы благодарен, если бы Вы предоставили пример использования eof.
Wolfire вне форума Ответить с цитированием
Старый 23.10.2018, 20:27   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
while not FDM.QEngine.Eof do begin
  ...
  FDM.QEngine.Next;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск подходящего ПО? n1219 Свободное общение 2 14.02.2017 08:37
Pascal. Поиск числа, наиболее отличающегося от заданного sanji2010 Помощь студентам 2 16.09.2014 08:57
Подстановка подходящего значения из множества в столбце SVGuss Microsoft Office Excel 3 02.12.2012 11:17
поиск в картотеке подходящего варианта rijik-mur БД в Delphi 1 12.05.2011 15:01
Как произвести поиск наиболее похожего материала Andreog Microsoft Office Excel 1 07.09.2010 23:08