![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятки с запросом [D7, ADO + MsAccess]
Ozone © (2004-07-15 06:58:00)Выполняю такой запрос:
UPDATE TABLE_NAME
SEL FIELD_NAME = 1
WHERE (ClientID = :ID)
AND (:PicTime BETWEEN BeginD and EndD)
Делаю:
//TADOQuery
Active := false;
Parameters.ParamValues['ID'] := ...;
Parameters.ParamValues['PicTime'] := ...;
ExecSQL;
Выдает ошибку - "Отсутствует значение одного или нескольких параметров".
Такой запрос с тем же вызовом проходит на ура:
SELECT *
FROM TABLE_NAME
WHERE (ClientID = :ID)
AND (:PicTime BETWEEN BeginD and EndD)
Где я чего не усмотрел?
NAlexey (2004-07-15 08:59:00) [41]Кстати, а это еще что за интересное условие?:
:PicTime BETWEEN BeginD and EndD
Ты наверное что то путаешь... BETWEEN используют в случаях когда хотят сказать: выбрать записи в которых значение поля таблицы находится между такимто и такимто значением. У тебя наоборот. Подумай над этим.
Ozone (2004-07-15 08:57:00) [42]NAlexey © (15.07.04 08:55) [4]
Тогда бы он сказал, что такой параметр не найден...
Ozone (2004-07-15 08:55:00) [43]Нешел у себя косячек небольшой в запросе (поле обозвал не правильно).
Теперь запрос выглядит так:
UPDATE Sessions
SET SError = 1
WHERE (ClientID = :ID) AND (:PTime BETWEEN BeginD AND EndD)
И опять ошибка:
"Одно или несколько из введеных значений нарушают условие на значение 'False', заданного для 'Session.SError', введите значение, допускаемое для этого поля."
ЗЫ: Поле SError имеет числовой тип
NAlexey (2004-07-15 08:55:00) [44]>Ozone © (15.07.04 06:58)
Ну и правильно говорит. Сокрее всего у тебя названия параметров в запросе не совпадают с названиями которые ты используешь при присвоении. Попробуй присваивать по номерам, ну например:
Parameters[0].Value := ...;
Parameters[1].Value := ...;
Ozone (2004-07-15 07:50:00) [45]CHTR (15.07.04 07:09) [1]
Нет. Это я здесь обшипся...
CHTR (2004-07-15 07:11:00) [46]Хотя наврядли
CHTR (2004-07-15 07:09:00) [47]Может просто ошибка синтаксиса? Типа вместо SET у тебя написано SEL