powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Фильтрация TClientDataSet по дате
7 сообщений из 7, страница 1 из 1
Фильтрация TClientDataSet по дате
    #40011613
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь в проекте на клиенте отфильтровать полученный из оракловской базы датасет с помощью свойств Filter и Filtered компонента TClientDataSet
По числовым и текстовым полям фильтруется прекрасно, единственно нельзя использовать алиасы,

т.е. вот так, например, работает фильтрация по числовым полям:

Код: plsql
1.
2.
Filter := 'Executive_id is null or Department_id = ' + IntToStr(100);
Filtered := True;


где Executive_id, Department_id типа NUMBER


вот так по текстовым:

Код: plsql
1.
2.
Filter := := ' and (DocCode like ''%12345%'')';
Filtered := True;


где DocCode типа VARCHAR2(255)

а как сделать фильтрацию по полю типа дата DATE?
...
Рейтинг: 0 / 0
Фильтрация TClientDataSet по дате
    #40011616
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Фильтрация TClientDataSet по дате
    #40011620
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


Для оракла ничего из этого не подходит.

когда вот так пытаюсь писать:

Код: plsql
1.
Filter:='DocDate = to_date('+QuotedStr(DateToStr(pDate))+','+QuotedStr('dd.mm.yyyy')+')';


где
var pDate TDate;

то выдаётся ошибка, что поле to_date не найдено, т.е. оракловскую функцию он не понимает.
...
Рейтинг: 0 / 0
Фильтрация TClientDataSet по дате
    #40011628
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verter
Пытаюсь в проекте на клиенте отфильтровать полученный из оракловской базы датасет с помощью свойств Filter и Filtered компонента TClientDataSet

А более извращённого варианта в голову не пришло или пришло, но не заработало?
...
Рейтинг: 0 / 0
Фильтрация TClientDataSet по дате
    #40011631
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
verter


Для оракла ничего из этого не подходит.

когда вот так пытаюсь писать:

Код: plsql
1.
Filter:='DocDate = to_date('+QuotedStr(DateToStr(pDate))+','+QuotedStr('dd.mm.yyyy')+')';



где
var pDate TDate;

то выдаётся ошибка, что поле to_date не найдено, т.е. оракловскую функцию он не понимает.

Посмотри, что можно использовать в строке Filter: http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DBClient_TClientDataSet_Filter.html

То есть, с датой и временем как бы работать можно.
Но ты пишешь, что дата у тебя в текстовом формате, вот такой ты необъяснимый и загадочный.
Значит, надо работать с датой как со строкой. Какой у тебя формат представления даты? - а ты не сказал. Предположим, dd/mm/yyyy - невезуха, то есть. Значит, можно сравнивать только на равно - не равно, вот так:
Код: pascal
1.
2.
Filter := 'DocDate = ''01/02/2003''';
Filter := 'DocDate <> ''01/02/2003''';


А если формат yyyy/mm/dd - то уже хорошо, можно сравнивать на больше и меньше.

Будем считать, что у тебя формат все же "плохой" - тогда используй не свойство Filter, а коллбэк OnFilteredRecord: http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DBClient_TClientDataSet_OnFilterRecord.html
- тут вообще что хочешь делать можно, преобразуй свою строку DocDate в дату и сравнивай даты (как числа).
...
Рейтинг: 0 / 0
Фильтрация TClientDataSet по дате
    #40011656
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verter
Для оракла ничего из этого не подходит.


При чем здесь Оракл, если свойство Filter - локальное?
...
Рейтинг: 0 / 0
Фильтрация TClientDataSet по дате
    #40011658
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verter
, т.е. оракловскую функцию он не понимает.


еще раз: Filter - это локальное свойство и не зависит от СУБД, соответственно не знает и не понимает никаких оракловский функций.
Если тебе нужны оракловские функции, используй SQL.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Фильтрация TClientDataSet по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]