Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что писать в свойстве Filter компонента IBTable ? [D7, IB6.x]


Muzzy ©   (2006-06-06 06:06:00) 

Нужно, например, из поля dataotkl типа DATA отфильтровать (показать в связанном с ним компоненте DBGrid) только записи за 03 месяц. Делаю так:
"dateotkl" LIKE '%03%'
Но он показывает и 04.03.2006, и 03.04.2006, а мне нужно только первое (т.е. за 03 месяц).
Пятаюсь делать так:
"dateotkl" LIKE '___03_____' или так:
"dateotkl" LIKE '%.03.%'
Исчезают все записи.

Вопросы:
1. Подскажите, пожалуйста, что нужно написать в свойство Filter компонента IBTable, чтобы посмотреть записи за 03 месяц.
2. Какой запрос должен быть если нужен интервал. Например с 01.01.2006г. по 01.04.2006г.

Заранее спасибо!


Desdechado   (2006-06-06 20:50:00) [1]

1. использовать запрос
2. использовать параметры в нем
3. для дат удобно использовать диапазоны (особенно для выделение месяцев, декад и т.п.)


Ильш   (2006-06-06 11:11:00) [2]

счастливого пути !

сцылку читал? тебе уже достаточно ответили! бросай фильтры используй where и больше не кричи по пусту!


Muzzy   (2006-06-06 10:58:00) [3]

"dateotkl" WHERE MONTH("dateotkl")=3 тожа не помогает!

Ы-ы-ы-а-а-э-у-у-у-у-у-у-у.................
Хочу в дурдом!!!


Sergey13   (2006-06-06 10:50:00) [4]

2[9] Muzzy   (06.06.06 10:45)
> Но мне здесь-же(!) посоветовали через IBTable!
Советы - они как йогурты! Типа не все одинаково полезны. 8-)


Muzzy   (2006-06-06 10:45:00) [5]


> Если "типа DATA", то ни о каких LIKE и SUBSTRING не может
> идти и речи.
>
> IBTable.Filter = 'MONTH(DATA)=3'

IBTable.Filter = 'MONTH(DATA)=3' не канает! Говорит, что нет функции MONTH.
Ранее делал через DataSet, там с этим проще. Но мне здесь-же(!) посоветовали через IBTable!
Я так понял, что Filter понимает только всякие выражения <=> и усе!
Так как мне быть?


Johnmen   (2006-06-06 09:47:00) [6]

Не болтайте ерундой (с) Фома

И вообще, см. http://www.delphimaster.ru/cgi-bin/forum.pl?id=1149167900&n=1


Ильш   (2006-06-06 09:33:00) [7]


>  типа month например...

ну и я о том же!


Сергей М.   (2006-06-06 09:05:00) [8]


> из поля dataotkl типа DATA


Если "типа DATA", то ни о каких LIKE и SUBSTRING не может идти и речи.

IBTable.Filter = 'MONTH(DATA)=3'


Muzzy   (2006-06-06 07:13:00) [9]

Может какой SQL запрос написать?
Пробовал:
SELECT "dateotkl" FROM "JOTKL" WHERE "dateorkl" LIKE '%.03.%'
Так он и на SELECT орет SQL error code = -104.
Я запарился. Может как попроще можно.
А "dateorkl" LIKE '%.03.%' я уже пробовал.


Muzzy   (2006-06-06 07:09:00) [10]


> а если так попробовать
> IBTable.Filter:="substring("dateotkl",4,2)='03'";

Блин! Матютается:
SQL Error code = -804
Function nuknow SUBSTRING.


Ильш   (2006-06-06 07:03:00) [11]

а там в фильтре есть какие нить функции ???
а если так попробовать
IBTable.Filter:="substring("dateotkl",4,2)='03'";


Muzzy   (2006-06-06 06:27:00) [12]

Никаких udf библиотек не использую тупо пишу в свойство IBTable.Filter

IBTable.Filter:=""dateotkl" LIKE '%03%'";

Кавычки, соответственно через chr.


Ильш   (2006-06-06 06:18:00) [13]

ты определись запрос или фильтр!!! where или filter ???
из поля типа дата можно выдернуть вообще-то функцией месяц... типа month например... или же преобразовав в строку по позиции сабстрингом например...
тока мы как то телепатически не можем узнать какие именно udf библиотеки у тебя установлены ???? потому каков вопрос таков ответ

интервал  - between


Наверх

Титульная страница Поиск, карта сайта Написать письмо