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

 
Таблица имеет поле с зарезервированным именем Date, Как создать SQL запрос c использованием
iAlexander
  Отправлено: 21.08.2003, 17:21


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Проблема в том, что некая программа использует БД (какая-то dbf , FoxBase) с полем с именем DATE. Моя программа должна общаться с этой БД — анализировать ее. Но я не могу составить SQL запрос, т.к. при попытке его Open() выскакивает EDBEngineError с "Invalid use of keyword. Token: Date)"

запрос:
CODE


AnsiString QueryStr ="SELECT EXTENSION, PRICE, IDURATION FROM Calls WHERE Calls.EXTENSION = '" + Phone + "' ";
QueryStr += " AND ((Calls.Date) >= '" + Date1 + "') AND ((Calls.Date) <= '" + Date2 + "')";


В рез-те:
CODE


SELECT EXTENSION, PRICE, IDURATION FROM Calls WHERE Calls.EXTENSION =15 AND ((Calls.Date) >= '10.10.00') AND  ((Calls.Date) <= '10.10.03')



Может, можно как-то заэкранировать этот Date или обойти?
pasha
Отправлено: 21.08.2003, 19:37


Дежурный стрелочник

Группа: Участник
Сообщений: 62



Можете вот так: (указав явно таблицу или её синоним и поле в ' ' )

CODE

Select * from myTable mT
 where mT.'Date' >= '01.01.2003'

----

Старайтесь не создавать полей с зарезервированнными словами
например не Date, а WDate и т.д.
iAlexander
Отправлено: 22.08.2003, 12:31


Дежурный стрелочник

Группа: Участник
Сообщений: 70



CODE

Select * from myTable
where myTable.'Date' >= '01.01.2003'


Это работает.
Большое спасибо.

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