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

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

Диалекты SQL или ....?


Romann ©   (2003-07-21 16:09:00) 

Через компанент TQuery делаю запрос к таблицам FoxPro.
Алиас создан в ODBC Visual FoxPro Driver.
Простой запрос типа
SELECT Name, Fam, Year FROM Spis order by Year
выполняет без проблем, а на запрос
SELECT Name, Fam, Year FROM Spis
WHERE Year> 1955
Выдает ошибку General SQL Error
[ODBC Visual FoxPro Driver]Operator/Operand type mismatch

Что не так, или есть какие-нибудь ограничения в диалекте SQL.


kaif   (2003-07-26 15:47:00) [1]

С полями типа Date нужно всегда использовать параметрический запрос. Например:

Query.SQL.Text :=
"SELECT Name, Fam, Year FROM Spis WHERE Year < :Year";
Query.ParamByName("Year").AsDateTime := EncodeDate(2003,03,01);
Query.Open;

Иначе при изменении Региональных настроек windows (Date Separator) программа перестанет работать.


Romann   (2003-07-26 10:04:00) [2]

В инфе указано тип поля Dпо моему это Date.


Anatoly Podgoretsky   (2003-07-26 09:33:00) [3]

DATA <> Date


Romann   (2003-07-26 09:28:00) [4]

SELECT Name, Fam, Year FROM Spis
WHERE Year<"01.03.2003" выдает туже ошибку!
В описании базы данных Year имеет тип DATA и длинну 8, а в Explorer и DBGride поле имеет 10 разрядов (21.01.2003) .
Может гдето здесь проблема?


Sandman25   (2003-07-22 16:30:00) [5]

Если Year имеет тип поля Date, то и сравнивать его надо со значением типа Date.
Попробуйте
SELECT Name, Fam, Year FROM Spis
WHERE Year> "1.1.1955"


Romann   (2003-07-22 16:26:00) [6]

Выдает ощибку только с полем ТИПА DATA


sniknik   (2003-07-21 16:26:00) [7]

тип поля Year? > 1955 = numeric ?? если нет то сравнивай с тем же типом.


Наверх

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