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

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

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

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

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

Фрагмент кода:
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, 22:23   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,077
Репутация: 6385
По умолчанию

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

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

Код:

while not FDM.QEngine.Eof do begin
  ...
  FDM.QEngine.Next;
end;

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

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск подходящего ПО? n1219 Свободное общение 2 14.02.2017 09: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


16:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru