![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите как организовать алгоритм [D6, Paradox]
Siberia © (2002-03-12 10:56:00)Допустим, пользователь вводит в базу телефон ...
Ячейка для ввода позволяет ему ввести
что-то типа "{8632}12-34-56 (мама)"
Потом в поле для поиска вводит 123-456...
Как мне организовать алгоритм для такого поиска ...
Т.е. по идее - я должна очистить правую и левую сторону от всяческих других знаков, кроме цифр и сделать
select ... from table where field LIKE "%telephone%" ...
... но никак не могу понять - как же мне это сделать ...
wicked (2002-03-14 10:14:00) [1]2 Siberia (14.03.02 10:07)
есть свойство Filtered.... и есть такое сообщение - OnFilterRecord... возможно, это то, что тебе нужно... только обрабатывать его надо БЫСТРО...
Siberia (2002-03-14 10:07:00) [2]> sniknik © (12.03.02 11:40)
Ты не совсем понял вопрос ... если поле базы "32-32-32" - то подстрока "323" там найдена не будет при помощи LIKE
> Anatoly Podgoretsky © (12.03.02 21:45)
Мне в результате надо получить Query ... получается - что надо сканировать всю таблицу, а потом нужные по одному добавлять в Query???
ХМММММ ....
Anatoly Podgoretsky (2002-03-12 21:45:00) [3]Siberia (12.03.02 18:24)
Так Парадокс не SQL сервер, по этому лучше сканировать таблицу, по ходу делая необходимые преобразования, получаешь полную независимость от формата хранения и формаза запроса на поиск.
В данном случае надо убрать все знаки кроме чисел и игнорировать все что в скобка, если только текст в скобках прямо не уеазан в запросе, то есть приводить к одному виду.
Владислав (2002-03-12 18:58:00) [4]> Bachin © (12.03.02 18:53)
Бесспорно, но иногда бывают ситуации, когда программист не является "владельцем" базы, и запрос необходимо строить по "чужим" данным.
Bachin (2002-03-12 18:53:00) [5]2Владислав © (12.03.02 18:36)
всетаки лучше вариант Виктор Щербаков © (12.03.02 11:24)
Владислав (2002-03-12 18:36:00) [6]> Siberia (12.03.02 18:24)
"Че делать?"
Смотреть: sniknik © (12.03.02 11:40).
Siberia (2002-03-12 18:28:00) [7]и Raplace, кстати, тоже ...
Siberia (2002-03-12 18:24:00) [8]DiggerAbstract
Да ... все конечно гениальное просто ... тока вот парадокс не поддерживает translate ....
Че делать?
DiggerAbstract (2002-03-12 11:53:00) [9]нет - точного описания нет. но тут несложно ты и сама должна разобраться
Siberia (2002-03-12 11:44:00) [10]DiggerAbstract
Это то, что нужно, наверно ...
Сейчас разберусь и попробую, если у тебя есть описание этих sql-функций - кинь пожалуйста ...
sniknik (2002-03-12 11:40:00) [11]конструкция
select ... from table where field LIKE "%telephone%"
найдет все, включая и введенные цифры. зачем заморачиватся и чтото чистить?
DiggerAbstract (2002-03-12 11:36:00) [12]
SELECT
*
FROM
KZK.T_AU
WHERE
CHAR(
UCASE(
REPLACE(
TRANSLATE(
Name," ","~`!@#$%^&*()-+=|\{}[];/?.>
gek (2002-03-12 11:27:00) [13]trim(telephone)
for i:=1 to length(telephone)do
if telephone[i] in [set_cif] then
telephone_real:=telephone_real + telephone[i];
Виктор Щербаков (2002-03-12 11:24:00) [14]Я бы не советовал хранить столько информации в одном поле.
Лучше код города хранить в одном поле, сам номер - в другом, ну а комментарии в третьем. Тогда задача поиска решится с помошью LIKE, а вычисляемые поля позволят нужным образом визуализировать инфу в ячейках таблицы.