![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Снова про поиск [D5, dBase, FoxPro]
Marik © (2004-05-27 12:59:00)Задача такая:нужно запросом SQL выбрать из DBF-ки записи в заданном диапазоне даты.Например с 02.05.2004 по 27.05.2004.
При использовании ADOQuery выдает ошибку "Несоответсвие типов полей в условии отбора"
Marik (2004-05-28 13:10:00) [1]Vovchik_A Заметно!!!
Vovchik_A (2004-05-27 18:18:00) [2]2Sandman25+1 (27.05.04 17:58) [13]
Ну может ты и прав. Я, честно говоря, не пишу уже давно :(
Sandman25+1 (2004-05-27 17:58:00) [3][12] Vovchik_A © (27.05.04 17:56)
Он берет данные из DateTimePicker, то есть у него есть значение типа TDate. Поэтому вполне разумно будет использовать запрос с параметром: Params[...].AsDateTime := DateTimePicker1.Date и не заморачиваться с текстовыми представлениями.
Vovchik_A (2004-05-27 17:56:00) [4]2Sandman25+1 (27.05.04 15:40) [10]
ему convert нужен на мой взгляд
Valeri (2004-05-27 15:46:00) [5]Попробуйте CAST или CONVERT, причем можно применить и к полю, и к данным, забитым в DateTimePicker. В запущенных случаях это помогает.
Sandman25+1 (2004-05-27 15:40:00) [6][9] Vovchik_A © (27.05.04 15:31)
type
TDate=TDateTime;
В данном случае DateToStr(...) ничем не лучше, чем DateTimeToStr(...)
Vovchik_A (2004-05-27 15:31:00) [7]2Sandman25+1 (27.05.04 15:26) [8]
Про Between я уже говорил, пусть хотя бы с типами разберется. А то "коров на собак" умножает.
Sandman25+1 (2004-05-27 15:26:00) [8][7] Vovchik_A © (27.05.04 15:07)
Даже если брать Date, все равно будет неправильно. Как сделать правильно, уже написал [1] DenK_vrtz © (27.05.04 13:03)
Только можно немного ускорить запрос, использовав Between :dat1 and :dat2
Vovchik_A (2004-05-27 15:07:00) [9]2Marik (27.05.04 14:33) [5]
Попробуй откырть 2 страницы хелпа:
1. TDateTimePicker.DateTime
2. TDateTimePicker.Date
Разницу, я надеюсь, заметишь
DenK_vrtz (2004-05-27 14:37:00) [10]>Marik (27.05.04 14:33) [5]
ты читать и думать умеешь?
Marik (2004-05-27 14:33:00) [11]Vovchik_A Подскажи как нужно!!!
Vovchik_A (2004-05-27 13:58:00) [12]Блин, а при чем тут DateTimePicker1->DateTime ???
Marik (2004-05-27 13:27:00) [13]Поле DAT_AKT типа DATE
select NUM_AKT,DAT_AKT from S_AKT.DBF where
" +Form1->DateTimePicker1->DateTime.DateTimeString()+"<=DAT_AKT and \
" +Form1->DateTimePicker2->DateTime.DateTimeString+">=DAT_AKT
Vovchik_A (2004-05-27 13:06:00) [14]between не может помочь ?
текст запроса покажи
DenK_vrtz (2004-05-27 13:03:00) [15]select * from table
where Поле даты >= :dt1
and Поле даты <= :dt2, где dt1 и dt2 параметры типа дата