![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте. Я новичок в этом нелёгком деле, по этому особо не ругайте.
Есть таблица, в ней есть столбец формата "число.месяц.год часы:минуты:секунды" т.е "чч.мм.гггг чч:мм:сс", собственно как организовать поиск или фильтр только по чч.мм.гггг. Как бы я не старался ищет только по полной строке. Код:
dbgrd1.DataSource.DataSet.Locate('EVENT_TIME', edt2.Text, [loCaseInsensitive, loPartialKey]);Перед тем как сюда написать пол дня мучил Гугл, безрезультатно. |
|
#2
|
||||
|
||||
|
Цитата:
Запрос, которым данные вытягиваешь, покажи. И вообще, какой-то черезжопный вариант фокусировки. Как вариант - бегать по нужному полю датасета и сверять. |
|
#3
|
||||
|
||||
|
Не знаю, может есть варианты и поэлегантнее, но я бы так организовал частичный поиск в записях, прямым перебором:
Код:
var
i: integer;
begin
DataSet.First;
for i:= 0 to DataSet.RecordCount do
begin
if Copy(DataSet.FieldValues['EVENT_TIME'],
1,
Pos(' ', DataSet.FieldValues['EVENT_TIME']) - 1) = edt2.Text then
begin
Label1.Caption:= DataSet.FieldValues['EVENT_TIME'];// для примера
Exit;
end
else DataSet.Next;
end;
end;Добавлено позже а ещё лучше вместо строки цикла подставить вот это Код:
... while not DataSet.Eof do ... Последний раз редактировалось Alegun, 13.10.2013 в 00:55. |
|
#4
|
||||
|
||||
|
Всё очень просто:
Допустим у вас есть TDateTimePicker (тот же Edit Только по клику вываливается календарь )1) выбираем дату 2) Код:
Table1.Locate('%' + DateToStr(DateTimePicker.Date) + ('%'), []);4) Profit p.s. проверил в XE3. В таблице из ~6000 записей находит за 1.493 секунды. Единственное, с чем можно будет пошаманить, так это с SQL командой Date_Format |