| 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' 
 |  
 
  
Это работает. 
Большое спасибо.  | 
  |