Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.095 c
3-1080547404
Yura_2
2004-03-29 12:03
2004.04.25
По использованию SQL-DMO для разработки приложения


1-1081243534
Intruder
2004-04-06 13:25
2004.04.25
Ini файл и TTree View


4-1077190602
Алексей
2004-02-19 14:36
2004.04.25
CreateDialog, Application.DialogHandle


1-1080997883
Timur
2004-04-03 17:11
2004.04.25
Вставка в OLE


1-1081254208
hgd
2004-04-06 16:23
2004.04.25
Перемещение компонента внутри другого





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский