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

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

Несоответствие типов данных [D7, Access]


Caesar ©   (2003-05-19 10:43:00) 

Помогите! Пишу вроде простой запрос:
SELECT Model, First(Proisvod) AS Proisvod, Min(Date) AS MinDate, Max(Date) AS MaxDate, Sum(Count) AS SumCount, First(Type) AS Type, First(Pogr) AS Pogr
FROM Spravka WHERE (Id_Oper = 8) AND (Spravka.DateProv BETWEEN "01.01.2003" AND "01.05.2003") GROUP BY Model ORDER BY Model
Выдается ошибка: "Несоответствие типов данных в выражении условия отбора" Вроде с типами данных ничего не напутал! В чем может быть дело?


Caesar   (2003-05-19 11:33:00) [1]

Victor_Cr: Нет! Тут дело было вовсе не в пробеле! Просто дата записывается в формате #01/01/2003# и всё! А FROM слово зарезервированное и пробел никакой не был нужен! Если было так выдало бы синтаксическую ошибку=)))


Victor_Cr   (2003-05-19 11:15:00) [2]

Результатом выполнения таких строк:
QueryReport.SQL.Add("SELECT Model, First(Proisvod) AS Proisvod, Min(Date) AS MinDate, Max(Date) AS MaxDate, Sum(Count) AS SumCount, First(Type) AS Type, First(Pogr) AS Pogr");
QueryReport.SQL.Add("FROM Spravka WHERE (Id_Oper =");

Будет строка
"SELECT Model, First(Proisvod) AS Proisvod, Min(Date) AS MinDate, Max(Date) AS MaxDate, Sum(Count) AS SumCount, First(Type) AS Type, First(Pogr) AS PogrFROMSpravka WHERE (Id_Oper =

Пробел нужен...


Caesar   (2003-05-19 11:14:00) [3]

Получилось=) Спасибо!


Соловьев   (2003-05-19 10:59:00) [4]


> Кто нибудь поможет?

ответы почему не читаешь?
тебе же написали про параметры. sniknik © (19.05.03 10:48)


Mike Kouzmine   (2003-05-19 10:58:00) [5]

А попробуй параметры


Caesar   (2003-05-19 10:56:00) [6]

Вообще выглядит так:
QueryReport.SQL.Clear;
QueryReport.SQL.Add("SELECT Model, First(Proisvod) AS Proisvod, Min(Date) AS MinDate, Max(Date) AS MaxDate, Sum(Count) AS SumCount, First(Type) AS Type, First(Pogr) AS Pogr");
QueryReport.SQL.Add("FROM Spravka WHERE (Id_Oper =");
str:= (ListOper.KeyValue);
QueryReport.SQL.Add(str);
QueryReport.SQL.Add(") AND (Spravka.DateProv BETWEEN");
Date:= #39 + DateMin + #39 + "AND"+ #39 + DateMax + #39 + ")";
QueryReport.SQL.Add(Date);
QueryReport.SQL.Add(" GROUP BY Model ORDER BY Model");
QueryReport.Open;
Кто нибудь поможет?


Caesar   (2003-05-19 10:54:00) [7]

Geka к этой ошибке отношения не имеет=)


Caesar   (2003-05-19 10:52:00) [8]

Понятно что в датах=) но "01/01/2003" не прочодит(:


Geka   (2003-05-19 10:51:00) [9]

Min(Date) - поле лучше Date не называть...


sniknik   (2003-05-19 10:48:00) [10]

в датах, дело может быть в датах. с ними вобще лутше работать через параметры.
потому что может быть различное представление в зависимости от параметров, возможно у тебя пройдет "01/01/2003" (а может и нет).


Наверх

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