Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизТоже фильтрация, но другая Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c