C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Гдюк select
Key
Отправлено: 19.10.2005, 21:38


Не зарегистрирован







Подскажите почему при работе с dBase 5 select не работает с полями типа Date?
Говорит что несоответствие типов.
запрос типа
[SQL]select field from Base where Data between '1.1.1990' and '1.2.2005'
поле Data определено как Date в тaблице *.dbа
olegenty
Отправлено: 20.10.2005, 06:36


Ветеран

Группа: Модератор
Сообщений: 2412



потому что не надо думать, что DBASE в курсе, что строка, которую ты ему передаёшь — это именно дата. так что глюк не селект, а твой собственный.

через что доступаешься? BDE? тогда см. настройки даты.

НО. лучше всего использовать параметрический запрос. обсуждалось чуть больше нескольких десятков раз. но, специально для тебя:
1. Query->SQL->Text (в Design-time или Run-time — не важно)
SQL
select field from Base where Data between :Date1 and :Date2

2.
CODE

Query->ParamByName('Date1')->Value = StrToDate('...');
Query->ParamByName('Date2')->Value = StrToDate('...');

3.
CODE

Query->Open();

4. Наступает счастье.

Отредактировано olegenty — 20/10/2005, 07:37

Вернуться в Работа с базами данных в C++Builder