Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Неточный поиск IB   Найти похожие ветки 

 
DimaF ©   (2004-03-23 07:58) [0]

IB Firebird 1.5 диалет 3. Друзья помогите.
в TTable былоа такая функция FindNearest неточный поиск.
перешол на IBX там ее нет. подскажите текс функции на SQL
IF (EXISTS(SELECT F_NOMER FROM TABL_1
WHERE (F_NOMER = :F_FIND_NOMER)))

не подходит (Ишит точные софпадения) :O(


 
makz   (2004-03-23 08:05) [1]

CONTAINING


 
Zacho ©   (2004-03-23 08:06) [2]

Подробнее опиши что именно тебе надо. А то, мягко говоря, не совсем понятно.
LIKE ?
Или, если нужно искать в НД, Locate c loPartialKey ? Или что-то другое ?


 
DimaF ©   (2004-03-23 08:38) [3]

нужно написать процедуру на SQL для Firebird 1.5 диалет 3.
чтобы она искала максимально приближенное значение в таблице по заданому полю а возврощяла все поля найденой строки.
а потом я через IBStoredProc значения задам и выташю.
часть моей прцедуры:

IF (EXISTS(SELECT F_NOMER FROM TABL_1
WHERE (F_NOMER = :F_FIND_NOMER)))
 ишит точно :(


 
Zacho ©   (2004-03-23 09:09) [4]

О, боже !!! В конце концов, объясни, что такое "максимально приближенное " ?
И нафига для этого ХП ? (Кстати, не советую пользоваться TIBStoredProc, почему - смотри http://www.ibase.ru/devinfo/ibstp.htm )

Есть LIKE, CONTAINING, STARTING WITH .. Можно и еще варианты придумать.. Что именно тебе надо ? Объясни наконец нормально, тогда и нормальный ответ получишь.

И в любом случае тебе явно необходимо изучить какое-нибудь пособие по SQL (например, М.Грубер "SQL (бестселлер)" ) и Language Reference.


 
DimaF ©   (2004-03-23 11:18) [5]

в таблице есть записи
1
3
5
7
10
15  
начинаю искать 4 выдост 5.
максимально близкая запись.
TTable.FindNearest такая функция есть.


 
Соловьев ©   (2004-03-23 11:39) [6]

а почему не 3?


 
Соловьев ©   (2004-03-23 11:49) [7]

ИМХО, сделай ХП и реализуй данный алгоритм.


 
Johnmen ©   (2004-03-23 11:51) [8]

Минимальное отклонение (для численных типов)
SELECT * FROM Table
WHERE
 (Value-Field) =
 (SELECT MIN((SELECT MAX(Field) FROM Table)-Field) FROM Table)


 
Domkrat ©   (2004-03-23 12:42) [9]

Ув. мастера, у меня попутный вопрос.

Реально на SQL реализовать целочисленный поиск по такому принципу:

Набираем 2 получаем 22, если 2 отсутствует
или 222 если нет 2 и 22 и т.д.

Необходимо для быстрого позиционирования в DBGrid (100 000 строк)
Если можете поделитесь мыслями пожалуйста.


 
Johnmen ©   (2004-03-23 12:48) [10]

Мысли простые и всего 2 (две)
1. Такое кол-во строк никому не надо.
2. Locate
2прим. Прямое сканирование НД. При разумном кол-ве записей работает очень быстро.


 
Domkrat ©   (2004-03-23 12:56) [11]

Ну коекому надо. Привык народ так чтобы и туда и сюда и Locate
быстрый вот и приходиться выдумывать.


 
Deniz ©   (2004-03-23 12:58) [12]

> Domkrat ©   (23.03.04 12:42) [9]
select first 1 * from table where cast(MyIntegerField as varchar(20)) like "что_ты_там_набрал" || "%"


 
makz   (2004-03-23 12:58) [13]

Value тогда должно быть между MIN(Field) и MAX(Field), иначе - нулл


 
Domkrat ©   (2004-03-23 13:05) [14]

2 Deniz
Спасибо щас попробую.


 
Zacho ©   (2004-03-23 13:16) [15]


> Domkrat ©   (23.03.04 12:56) [11]
> Ну коекому надо.

На самом деле - никому не надо. Заявляю, исходя из собственного опыта и здравого смысла :)
А если уж очень хочется (хотя, по-моему, такое не только бесполезно, но и вредно, лучше бы действительно удобный интерфейс без гридов с 10000 записей сделал) - см. http://www.ibase.ru/d_fibc.htm, gb_DataSets


 
Domkrat ©   (2004-03-23 13:27) [16]

>То Zacho
О нем и речь только глюкавый он. А статью сейчас почитаю.
>To Deniz, спасибо еще раз. Кайф.



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

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.038 c
6-1076900173
Alek Aaz
2004-02-16 05:56
2004.04.18
DNS кэш


1-1080670936
TALLA
2004-03-30 22:22
2004.04.18
Импорт CBuilder DLL по имени функций не получается, по индексу ок


3-1079696404
wadimkas
2004-03-19 14:40
2004.04.18
Результат из Tquery


14-1080269816
Думкин
2004-03-26 05:56
2004.04.18
С днем рождения! 26 марта.


6-1076568892
Kremen
2004-02-12 09:54
2004.04.18
MAC-адрес