Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Вниз

Подскажите как организовать алгоритм   Найти похожие ветки 

 
Siberia   (2002-03-12 10:56) [0]

Допустим, пользователь вводит в базу телефон ...
Ячейка для ввода позволяет ему ввести
что-то типа "{8632}12-34-56 (мама)"
Потом в поле для поиска вводит 123-456 ...
Как мне организовать алгоритм для такого поиска ...

Т.е. по идее - я должна очистить правую и левую сторону от всяческих других знаков, кроме цифр и сделать
select ... from table where field LIKE "%telephone%" ...

... но никак не могу понять - как же мне это сделать ...


 
Виктор Щербаков   (2002-03-12 11:24) [1]

Я бы не советовал хранить столько информации в одном поле.
Лучше код города хранить в одном поле, сам номер - в другом, ну а комментарии в третьем. Тогда задача поиска решится с помошью LIKE, а вычисляемые поля позволят нужным образом визуализировать инфу в ячейках таблицы.


 
gek   (2002-03-12 11:27) [2]

trim(telephone)
for i:=1 to length(telephone)do
if telephone[i] in [set_cif] then
telephone_real:=telephone_real + telephone[i];


 
DiggerAbstract   (2002-03-12 11:36) [3]

SELECT
*
FROM
KZK.T_AU
WHERE
CHAR(
UCASE(
REPLACE(
TRANSLATE(
Name," ","~`!@#$%^&*()-+=|\{}[];/?.><""" ,"
)," ",""
)
)
) LIKE "Т%"


Попробуй так


 
sniknik   (2002-03-12 11:40) [4]

конструкция
select ... from table where field LIKE "%telephone%"
найдет все, включая и введенные цифры. зачем заморачиватся и чтото чистить?


 
Siberia   (2002-03-12 11:44) [5]

DiggerAbstract

Это то, что нужно, наверно ...

Сейчас разберусь и попробую, если у тебя есть описание этих sql-функций - кинь пожалуйста ...


 
DiggerAbstract   (2002-03-12 11:53) [6]

нет - точного описания нет. но тут несложно ты и сама должна разобраться


 
Siberia   (2002-03-12 18:24) [7]

DiggerAbstract

Да ... все конечно гениальное просто ... тока вот парадокс не поддерживает translate ....

Че делать?


 
Siberia   (2002-03-12 18:28) [8]

и Raplace, кстати, тоже ...


 
Владислав   (2002-03-12 18:36) [9]

> Siberia (12.03.02 18:24)

"Че делать?"

Смотреть: sniknik © (12.03.02 11:40).


 
Bachin   (2002-03-12 18:53) [10]

2Владислав © (12.03.02 18:36)

всетаки лучше вариант Виктор Щербаков © (12.03.02 11:24)


 
Владислав   (2002-03-12 18:58) [11]

> Bachin © (12.03.02 18:53)

Бесспорно, но иногда бывают ситуации, когда программист не является "владельцем" базы, и запрос необходимо строить по "чужим" данным.


 
Anatoly Podgoretsky   (2002-03-12 21:45) [12]

Siberia (12.03.02 18:24)
Так Парадокс не SQL сервер, по этому лучше сканировать таблицу, по ходу делая необходимые преобразования, получаешь полную независимость от формата хранения и формаза запроса на поиск.
В данном случае надо убрать все знаки кроме чисел и игнорировать все что в скобка, если только текст в скобках прямо не уеазан в запросе, то есть приводить к одному виду.


 
Siberia   (2002-03-14 10:07) [13]

> sniknik © (12.03.02 11:40)

Ты не совсем понял вопрос ... если поле базы "32-32-32" - то подстрока "323" там найдена не будет при помощи LIKE

> Anatoly Podgoretsky © (12.03.02 21:45)

Мне в результате надо получить Query ... получается - что надо сканировать всю таблицу, а потом нужные по одному добавлять в Query???
ХМММММ ....



 
wicked   (2002-03-14 10:14) [14]

2 Siberia (14.03.02 10:07)
есть свойство Filtered.... и есть такое сообщение - OnFilterRecord... возможно, это то, что тебе нужно... только обрабатывать его надо БЫСТРО...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
14-22792
BorisMor
2002-02-26 10:11
2002.04.08
Какой инсталятор лучше всего жмет ?


7-22865
MystiX
2002-01-08 12:25
2002.04.08
CD и Delphi


1-22691
Grishin
2002-03-26 13:22
2002.04.08
В чем проблема?


3-22597
Shurasik
2002-03-18 13:42
2002.04.08
Не могу найти событие для DBGrid...


3-22565
_Oleg_
2002-03-13 22:34
2002.04.08
Не передается строка длинее 32768 символов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский