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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2015, 17:46   #1
Maxjuvefan
Пользователь
 
Регистрация: 24.08.2015
Сообщений: 46
По умолчанию Поиск в базе неполного вхождения

Есть база данных на sql с номерами телефонов и пример поиска из edit нужного телефона в ней

Код:
ADOQueryPoisk.Sql.Add(select NomerTel.id from NomerTel where Номер like :PoiskNomer);
ADOQueryPoisk.Parameters.ParamByName('PoiskNomer').Value := StrToFloat(Edit1.Text);
Номер телефона ищется только при полном совпадении, а как сделать, чтобы искалась только какая-то часть номера?

Последний раз редактировалось Аватар; 27.08.2015 в 17:57.
Maxjuvefan вне форума Ответить с цитированием
Старый 27.08.2015, 17:56   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
ADOQueryPoisk.Parameters.ParamByName('PoiskNomer').Value := '%'+StrToFloat(Edit1.Text)+'%';
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.08.2015, 18:03   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
а как сделать, чтобы искалась только какая-то часть номера?
LIKE
http://www.programmersforum.ru/showt...Add%28%27WHERE
xxbesoxx вне форума Ответить с цитированием
Старый 27.08.2015, 19:33   #4
Maxjuvefan
Пользователь
 
Регистрация: 24.08.2015
Сообщений: 46
По умолчанию

Уже пробовал. Выдает ошибку несоответствие типов, так как у переменной PoiskNomer тип float (числовой, а не строковый), как и у столбца Номер. Проблема в том, чтобы сделать проверку вхождения одного числа в другое. Возможно ли это для чисел в Delphi 2010?
Maxjuvefan вне форума Ответить с цитированием
Старый 27.08.2015, 19:38   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Номер телефона Float? Прикольно и бестолково. Преобразуй в стринг
Код:
WHERE CAST(NomerTel AS varchar) like ...
Ну или как там в твой СУБД. PoiskNomer тоже в стринг. Не заметил даже что в примере StrToFloat
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.08.2015 в 19:54.
Аватар вне форума Ответить с цитированием
Старый 27.08.2015, 19:47   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
числовой, а не строковый
А почему, если не секрет, ты решил сделать его вещественным?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.08.2015, 22:38   #7
Maxjuvefan
Пользователь
 
Регистрация: 24.08.2015
Сообщений: 46
По умолчанию

Изначально в базе идет числовой тип. Надо или тип столбца менять или найти возможность сделать шаблон like для числовой переменной. Стало интересно, возможно ли это в принципе.
Maxjuvefan вне форума Ответить с цитированием
Старый 28.08.2015, 08:53   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Стало интересно, возможно ли это в принципе.
Ну возможно, если ХП описать с циклом разворота цифр в числе.
Или кастовать в строку (как выше сказано) и уже к кастованному применять LIKE.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в строке первого вхождения символа на СИ dannae Помощь студентам 3 26.11.2013 15:05
Поиск вхождения подстроки в тексте aquatell Общие вопросы Delphi 7 16.04.2011 23:18
Поиск вхождения слова во всех столбцах таблицы. Вопрос какой выбрать оптимальынй алгоритмм для 100 000 Laa911 Помощь студентам 4 25.08.2010 13:39
Поиск файла до первого вхождения? Rossoman Microsoft Office Excel 2 16.10.2009 19:49