Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Поиск в дате в Гриде   Найти похожие ветки 

 
Kvinta   (2006-12-12 12:02) [0]

Есть Грид, в нем нужно искать некую информацию по нажатию клавиши, с текстовыми полями, все работает. Но есть Колонки данные в которых типа ДАТА, с ними так не получается, появляется ошибка, что в общем понятно. Не могу придумать, как реализовать поиск в этих столбцах. т.е. если человек ввел скажем 10.1 Курсор перейдет на ближайшую дату 10- го числа 1?-го месяца, соответственно при нажатии клавиш дальше, поиск уточняется. Кажется понятно объяснил :) Использую метод Locate: Вот кусочек из KeyPress:
ADoQuery1.Locate(DbGrid1.SelectedField.FullName,StrToDate(FindStr+Key),[loPartialKey])

Примечание:
EhLib мне не подходит.


 
clickmaker ©   (2006-12-12 12:09) [1]

боюсь, что Locate здесь не поможет. ПартиалКи работает только для строк, для числовых полей (как дата) он не имеет смысла.
Поэтому свой метод поиска придется писать. С разбором и сравнением частей дат


 
Kvinta   (2006-12-12 12:11) [2]


> Поэтому свой метод поиска придется писать. С разбором и
> сравнением частей дат

Ууууу.... Нехотелось бы конечно. Может у кого еще есть мнения на этот счет?


 
clickmaker ©   (2006-12-12 12:14) [3]

ну как вариант, можно извернуться и при вводе частичной даты просто дополнять другие поля, а потому уже в Locate
т.е. вводит чел 10. - месяц и год ставишь текущие, ну и т.д.


 
Kvinta   (2006-12-12 12:26) [4]


> дополнять другие поля, а потому уже в Locate
> т.е. вводит чел 10. - месяц и год ставишь текущие, ну и
> т.д.


Нет. Этот номер не прошел по причине того что если дополнить дату ну скажет 10.01.01 Locate ищет именно такую дату. :( А мысль была хорошая, я тоже в этом направлении думал...


 
Fredy314 ©   (2006-12-12 12:40) [5]

В звпросе Where (Data=10.01.01)or(Data=10.01.02).....


 
Fredy314 ©   (2006-12-12 12:41) [6]

Все варианты генерировать програмно в зависимости от того какакя часть даты введена, работать должно, только это изврат.


 
Kvinta   (2006-12-12 12:45) [7]


> В звпросе Where (Data=10.01.01)or(Data=10.01.02).....


... Это шутка? Даты могут варьйроваться в очень больших пределах. А если всё что ввели это 1? И причем тут запрос? Он нам тогда одну строчку в грид вернет, ну либо 10, смотря сколько дат совпадет :)
или может я туплю?


 
Sergey13 ©   (2006-12-12 12:58) [8]

Может стоит завести калк поле - дата в строковом представлении и искать по нему?


 
Kvinta   (2006-12-12 13:02) [9]


> Может стоит завести калк поле - дата в строковом представлении
> и искать по нему?

Тоже не годиться, структуру базы менять уже поздно.


 
Рамиль ©   (2006-12-12 14:37) [10]


> Тоже не годиться, структуру базы менять уже поздно.

Так причем тут структура базы?
Можно просто
select DateToStr(fDate) as sDate from TableName where ...
DateToStr в зависимости от того какая СУБД
Или вычисляемое поле в DataSet как в [8]



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.046 c
3-1161322590
DelphiN!
2006-10-20 09:36
2006.12.31
SQL запрос


15-1165809672
Думкин
2006-12-11 07:01
2006.12.31
Мастера Бо, Бориса Новгородова - С Днем.


15-1165516784
Petr V. Abramov
2006-12-07 21:39
2006.12.31
Крамольная мысль....


1-1163459204
Morrison
2006-11-14 02:06
2006.12.31
Кто знаком с KAZip? Не получаются элементарные вещи... :(


2-1166085841
iXT
2006-12-14 11:44
2006.12.31
RAM Drive





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