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

Вниз

Тоже фильтрация, но другая   Найти похожие ветки 

 
DmitryNekl ©   (2004-03-25 10:19) [0]

Вопрос, в общем-то, по sql...

Есть в инете база mysql, подключаюсь к ней с помощью компонентов ADO.

Хочу отфильтровать табличку по вхождению содержимого Edit1. В случае с символьными полями все понятно:

if Edit1.Text<>"" then ADOQuery.Filter:="([title_gr] Like ""%"+ Edit1.Text +"%"")";

А как сделать, чтобы обрабатывались еще и числовые поля? Т.е., например, в поле id записано 0001235, Edit1.Text="1" - и чтобы эта запись показывалась?


 
Sergey13 ©   (2004-03-25 10:27) [1]

1. Ты уверен, что 0001235 - это число?
2. Коков смысл поиска по "подчислу"?


 
DmitryNekl ©   (2004-03-25 10:38) [2]

2 Sergey13:

1. Да, это число.
2. В основном, для общности. В таблице содержатся как строковые, так и числовые данные. Я хочу, чтобы поиск был универсальным и искались данные по введенной подстроке по всем полям.
Конкретный пример (хотя немного надуманный): в таблице лежит размер файла, а человек помнит, что файл от мегабайта до двух... а больше ничего не помнит :). Соответственно, нужно искать вхождение единички в числовом поле


 
Mike_Goblin ©   (2004-03-25 10:46) [3]

однако, between 1000 and 2000 - это одно решение

либо преобразовать число в строку и пользоваться строковым поиском
where cast(num_field as varchar) like ...


 
Term ©   (2004-03-25 11:01) [4]


> в поле id записано 0001235

0001235 числом быть не может никак!!! если бы было число то выглядело бы так 1235... а это строка так что с этим полем можеш пользоваться строковым поиском без всяких преобразований


 
Alex_Bredin ©   (2004-03-25 11:14) [5]


> в таблице лежит размер файла, а человек помнит, что файл
> от мегабайта до двух... а больше ничего не помнит :). Соответственно,
> нужно искать вхождение единички в числовом поле

ох не нужно, единичка может где угодно быть


 
DmitryNekl ©   (2004-03-25 11:39) [6]

2 Alex_Bredin

Согласен! Пример был надуман. Но хочется :) Для общности.

2 Term

Опять же согласен... но это же частность... Пусть число 1235, тогда должно выводится при поиске по "1", "2", "3" или "5".

2 Mike_Goblin

Between - это не совсем решение, т.к. у нас одно поле на форме, по вхождению содержимого которого мы ищем... Второе решение тоже не подходит, т.к. у нас не sql-запрос, а свойство filter. В нем можно использовать like и <,>,= в разных вариациях... Приведение типа не понимает.

Уточню еще раз постановку задачи:

Есть таблица и Edit. В таблице есть как строковые, так и числовые поля. При вводе любого текста в Edit и нажатии на кнопку в таблице должны отобразиться только те записи, в любом (число, строка, дата) поле которых содержится  подстрока Edit. Фильтрацию осуществлять с использованием свойства Filter (изначально я не совсем корректно поставил вопрос, не выделив эту особенность. Приношу свои извинения).

Может, в моей постановке задача не имеет решения и придется переделать все с использованием не свойства Filter, а события ADOQueryFilterRecord?


 
Anatoly Podgoretsky ©   (2004-03-25 11:45) [7]

LIKE применим только для текстовых данных!


 
Плохиш   (2004-03-25 11:45) [8]

OnFilterRecord


 
Alex_Bredin ©   (2004-03-25 11:45) [9]

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


 
Anatoly Podgoretsky ©   (2004-03-25 11:48) [10]

Плохиш   (25.03.04 11:45) [8]
Несколько сотен мегабайт через Интернет :-)


 
DmitryNekl ©   (2004-03-25 12:04) [11]

2 Anatoly Podgoretsky

Просветите, пожалуйста, по алгоритмам работы свойства Filter и события OnFilterRecord. Я правильно понял Ваше последнее высказывание: при использовании OnFilterRecord выполняется запрос к серверу, а при использовании Filter операция выполняется над уже полученными данными?


 
DmitryNekl ©   (2004-03-25 12:05) [12]

Спасибо всем ответившим.

Еще вопрос... наверное, самый глупый :).

Нет ли у текущей записи какого-либо свойства, которое представляет все поля в виде одной текстовой строки с каким-либо разделителем?


 
Alex_Bredin ©   (2004-03-25 12:09) [13]

у записей нет свойств


 
Плохиш   (2004-03-25 12:10) [14]


> Anatoly Podgoretsky ©   (25.03.04 11:48) [10]
> Несколько сотен мегабайт через Интернет :-)

:-))
У людей, задающих подобные вопросы, нету сотен мегабайт через Интернет
;-)



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

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

Наверх




Память: 0.5 MB
Время: 0.034 c
3-1079334458
Pete
2004-03-15 10:07
2004.04.25
TRXDBComboLookup


3-1080283449
Лысый
2004-03-26 09:44
2004.04.25
AD)Query


11-1062753303
<Falcon>
2003-09-05 13:15
2004.04.25
Merge в KOLmdvXLGrid - а как навесить на FormOnShow?


3-1080282737
ГАГН
2004-03-26 09:32
2004.04.25
Как в Fast Report е сделать так?


7-1077527680
Falendysh
2004-02-23 12:14
2004.04.25
RegisterComponents