powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не выполняется SQL-запрос
9 сообщений из 9, страница 1 из 1
Почему не выполняется SQL-запрос
    #32238184
var_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Привет.
Подскажите в чем дело? Почему не выполнется SQL-запрос?

procedure TForm1.Button1Click(Sender: TObject);
begin
DataSource1.DataSet:= ADOQuery1;
With ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM Хабаровск');
SQL.Add('WHERE  month  BETWEEN  "'+DateEdit1.EditText+'" AND "'+DateEdit1.EditText+'"');
Open;
end;
end;
 --------> Выдает ошибку: НЕСООТВЕТСТВИЕ ТИПОВ ДАННЫХ В ВЫРАЖЕНИИ УСЛОВИЯ ЗАПРОСА
 

Если убрать кавычки  "дата" , то

procedure TForm1.Button1Click(Sender: TObject);
begin
DataSource1.DataSet:= ADOQuery1;
With ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM Хабаровск');
SQL.Add('WHERE  month  BETWEEN  '+DateEdit1.EditText+' AND '+DateEdit1.EditText+'');
Open;
end;
end;

 -------> В этом случае выдается др. ошибка: ЧИСЛО СОДЕРЖИТ СИНТАКСИЧЕСКУЮ ОШИБКУ
 
Пробовал вместо DateEdit1.EditText вставлять конкретные даты:
SQL.Add('WHERE  month  BETWEEN  "01.04.2003" AND "30.07.2003"');
Опять выдается ошибка как в первом случае!!!
Таблица Хабаровск храниться в Access, полю month присвоен краткий формат даты.
Заранее спосибо.
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238187
zDIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не силен, но что такое month, может быть это не дата (например, целое), и, вообще что за СУБД, допускающая Хабаровск, скажи, пожалуйста, любопытно.
А так, по сообщению, напрашивается, что month по типу не соответствует x1 и x2 (кстати, попробуй, например, month > x1, для "однозначности" сообщения об ошибке). Даже если соответствует, вдруг, все дело в разделителе-точке...
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238194
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[month]
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238222
NightSpider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если СУБД Access, то понятно - он не переваривает длату в таком видею Дата хранится почти как флоат, т.е. реал, целая часть - дата, дробная - время. Что за СУБД?
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238243
MrAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
SELECT *
FROM Хабаровск
WHERE  month  BETWEEN  # 04 / 01 / 2003 # AND # 07 / 30 / 2003 #


Дата задается в таком виде #MM/DD/YYYY# ну или #MM/DD/YY#

zDIV писал:
и, вообще что за СУБД, допускающая Хабаровск, скажи, пожалуйста, любопытно


Access позваляет большие вольности, в том числе и название таблиц и полей на русском языке.
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238244
MrAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но лучше все-таки такие вещи делать через параметры.
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238246
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Access
SQL.Add('WHERE month BETWEEN +DateValue("'+DateEdit1.EditText+'") AND DateValue("'+DateEdit1.EditText+'")');
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238267
var_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
---------->СУБД - Access
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Большое спасибо Cat2
Так все работает:
procedure TForm1.Button1Click(Sender: TObject);
begin
DataSource1.DataSet:= ADOQuery1;
With ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM Хабаровск');
SQL.Add('WHERE  [month]  BETWEEN  DateValue("'+DateEdit1.EditText+'") AND DateValue("'+DateEdit2.EditText+'")');
Open;
end;
end;
...
Рейтинг: 0 / 0
Почему не выполняется SQL-запрос
    #32238809
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>MrAlex

Вот это верно. А если и параметры по типу удут DateTime, то вообще проблем не будет.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не выполняется SQL-запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]