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

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

Непонятки с запросом [D7, ADO + MsAccess]


Страницы:   1 2 3

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


Страницы:   1 2 3

Наверх

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