Главная страница
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.024 c
14-1081079832
Иван Бездомный
2004-04-04 15:57
2004.04.25
Дам ссылку, прочитайте что-нибудь(в смысле откройте что-то..


1-1081332675
V-Isa
2004-04-07 14:11
2004.04.25
Как узнать ширину и высоту символа в пикселях для определенного .


1-1081163428
Dysan
2004-04-05 15:10
2004.04.25
как узнать если свойство у обьекта?


1-1081492317
[BAD]Angel
2004-04-09 10:31
2004.04.25
вопрос по IE.


4-1071588254
Vasiliy
2003-12-16 18:24
2004.04.25
Как на время отключить только клавиатуру