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

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

Снова про поиск [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 параметры типа дата


Наверх

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