Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизУсловия отбора Найти похожие ветки
← →
TimScorp © (2006-04-07 20:51) [0]Доброго времени суток!!!
Вопрос в следующем:
Имеем таблицу в Access в ней есть Поле: Date тип - Дата/время
Хранятся в этом поле даты.
пишу запрос типа:
DM.APQ.SQL.Add("WHERE Date BETWEEN "+ QuotedStr (MaskEdit1.Text) + " AND " + QuotedStr(MaskEdit2.Text));
Выдает ошибку: Несоответствие типов данных в выражении условия отбора.
← →
TimScorp © (2006-04-07 20:51) [1]Пишу так:
DM.APQ.SQL.Add("WHERE Date BETWEEN "+ MaskEdit1.Text + " AND " + MaskEdit2.Text);
Выдает ошибку: Число содержит синтаксическую ошибку в выражении запроса.
А как написать чтобы проверить находится ли дата в введенном промежутке???
С уважением TimScorp.
← →
balepa © (2006-04-08 07:04) [2]В SQL я не силен но может все таки добавить Select ИмяПоля или * from TableName WHERE .........
← →
TimScorp © (2006-04-08 07:33) [3]
> balepa © (08.04.06 07:04) [2]
> В SQL я не силен но может все таки добавить Select ИмяПоля
> или * from TableName WHERE .........
Это все есть:
DM.APQ.Active := false;
DM.APQ.SQL.Clear;
DM.APQ.SQL.Add("SELECT *");
DM.APQ.SQL.Add("FROM AP");
DM.APQ.SQL.Add("WHERE Date BETWEEN "+ QuotedStr (MaskEdit1.Text) + " AND " + QuotedStr(MaskEdit2.Text));
DM.APQ.Active := true;
← →
balepa © (2006-04-08 10:14) [4]SELECT *
FROM Table1
WHERE (Date BETWEEN #12/12/2012# And #12/15/2012#);
← →
Anatoly Podgoretsky © (2006-04-08 13:57) [5]Используй параметры и все будет хорошо. А то постоянно или не тот тип, или еще что и что хуже результат не тот.
← →
TimScorp © (2006-04-08 16:58) [6]
> Anatoly Podgoretsky © (08.04.06 13:57) [5]
> Используй параметры и все будет хорошо. А то постоянно или
> не тот тип, или еще что и что хуже результат не тот.
С параметрами тоже не получается, можно пример???
С уважением TimScorp.
← →
vovnuke © (2006-04-08 17:10) [7]в каком формате база?
← →
TimScorp © (2006-04-08 17:26) [8]
> vovnuke © (08.04.06 17:10) [7]
> в каком формате база?
Access
← →
vovnuke © (2006-04-08 17:28) [9]стандарт SQL какой? ANSI 89 или ANSI 92, даты там по разному задаются, почитай хелп в Access
← →
TimScorp © (2006-04-08 17:36) [10]незнаю
← →
vovnuke © (2006-04-08 17:38) [11]посмотри в параметрах в Access, а вообще можно поробовать так:
where MyDate between cvdate(QuotedStr(text1)) and cvdate(QuotedStr(text2))
← →
TimScorp © (2006-04-08 17:43) [12]
> vovnuke © (08.04.06 17:38) [11]
> посмотри в параметрах в Access, а вообще можно поробовать
> так:
> where MyDate between cvdate(QuotedStr(text1)) and cvdate(QuotedStr(text2))
cvdate - ошибка при компиляции
← →
Anatoly Podgoretsky © (2006-04-08 19:26) [13]TimScorp © (08.04.06 16:58) [6]
Как неправильно делаешь?
← →
TimScorp © (2006-04-08 19:58) [14]DM.APQ.Active := false;
DM.APQ.SQL.Clear;
DM.APQ.SQL.Add("SELECT *");
DM.APQ.SQL.Add("FROM AP");
DM.APQ.SQL.Add("WHERE Date BETWEEN :DateFrom AND :DateTo");
DM.APQ.Parameters.ParamValues["DateFrom"] := DateTimePicker1.Date;
DM.APQ.Parameters.ParamValues["DateTo"] := DateTimePicker2.Date;
DM.APQ.Active := true;
Выдает ошибку: Несоответствие типов данных в выражении условия отбора.
С уважением TimScorp
← →
Anatoly Podgoretsky © (2006-04-08 20:04) [15]Date зарезервированое имя
← →
TimScorp © (2006-04-08 20:04) [16]если переименую работать будет???
← →
TimScorp © (2006-04-08 20:07) [17]переименовал в Date_.
Ошибка та же.
С уважением TimScorp
← →
Desdechado © (2006-04-08 21:22) [18]тебе же сказали, используй параметры
sql.text:="SELECT * FROM tbl WHERE x BETWEEN :1 AND :2";
params[0].AsDate:=Date-1;
params[1].AsDate:=Date;
← →
TimScorp © (2006-04-08 22:59) [19]
> Desdechado © (08.04.06 21:22) [18]
> тебе же сказали, используй параметры
> sql.text:="SELECT * FROM tbl WHERE x BETWEEN :1 AND :2";
>
> params[0].AsDate:=Date-1;
> params[1].AsDate:=Date;
В ADO нету params тама есть parameters и если ты посмотришь на [14] пост то увидишь что тама и используются параметры.
С уважением TimScorp
← →
TimScorp © (2006-04-09 04:00) [20]ап
← →
palva © (2006-04-09 09:19) [21]> Выдает ошибку: Несоответствие типов данных в выражении условия отбора.
В SQL-команде неправильный формат даты. Вы пробовали использовать формат как в balepa © (08.04.06 10:14) [4] ?
← →
TimScorp © (2006-04-09 16:38) [22]Заработало вот так:
d := DateTimePicker1.Date;
d1 := DateTimePicker2.Date;
DM.APQ.Active := false;
DM.APQ.SQL.Clear;
DM.APQ.SQL.Add("SELECT *");
DM.APQ.SQL.Add("FROM AP");
DM.APQ.SQL.Add("WHERE [Date_] BETWEEN :DateFrom AND :DateTo");
DM.APQ.Parameters.ParamValues["DateFrom"] := d;
DM.APQ.Parameters.ParamValues["DateTo"] := d1;
DM.APQ.Active := true;
Но если написать так:
DM.APQ.Parameters.ParamValues["DateFrom"] := DateTimePicker1.Date;
DM.APQ.Parameters.ParamValues["DateTo"] := DateTimePicker2.Date;
То не работает. Почему не пойму.
С уважением TimScorp.
← →
TimScorp © (2006-04-09 23:56) [23]Мдя токо почему-то граничные пределы не входят. Пришлось писать так:
d := DateTimePicker1.Date-1;
d1 := DateTimePicker2.Date+1;
Почему тож понять не можу.
С уважением TimScorp.
← →
Anatoly Podgoretsky © (2006-04-10 01:10) [24]Убери время из дат, и between замени операторами отношения
← →
vovnuke © (2006-04-10 09:55) [25]это cvdate не Delph-овая функция.
Если дословно то надо вот так:
"where MyDate between cvdate("+QuotedStr(text1)+") and cvdate("+QuotedStr(text2)+")";
Но с параметрами лучше.
Насчет [14], какого типа параметры?
← →
Desdechado © (2006-04-10 11:52) [26]Anatoly Podgoretsky © (10.04.06 01:10) [24]
BETWEEN включает границы
TimScorp © (09.04.06 16:38) [22]
d и d1 небось типа TDate?
просто Value - имеет тип Variant, а он включает информацию о типе присваиваемого значения
← →
sniknik © (2006-04-10 12:15) [27]> Но если написать так:
> DM.APQ.Parameters.ParamValues["DateFrom"] := DateTimePicker1.Date;
> DM.APQ.Parameters.ParamValues["DateTo"] := DateTimePicker2.Date;
> То не работает. Почему не пойму.
напиши DM.APQ.Parameters.ParamValues["DateFrom"] := DateTimePicker1.DateTime;
+
Anatoly Podgoretsky © (10.04.06 01:10) [24]
> Убери время из дат
← →
TimScorp © (2006-04-13 12:16) [28]Попробую.
С уважением TimScorp.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.013 c