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

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

Ошибка при выполнении Sql pfghjcf [D7]


Константин_ ©   (2007-01-31 15:35:00) 

Есть запрос:
select id from kontakt where kontakname='6 7. 7.'

используется бд MS Access и ADOQuery
при попытке выполнить данный запрос выдает ошибку:
"[Microsoft][Драйвер ODBC Microsoft Access]Слишком мало параметров. Требуется 1"
Не могу понять в чем дело.


ЮЮ   (2007-02-01 05:04:00) [1]


> а также заменить "кривой" ODBC "прямым" Jet-ом (OLEDB).


Дело скорей в этом, а не в запросах. Поэтому 10 лет назад предпочитал использовать BDE, а не "кривой новомодный" ADO :)


Desdechado   (2007-01-31 16:04:00) [2]

ID, случайно, не зарезервированное слово?


sniknik   (2007-01-31 16:04:00) [3]

> Советую использовать параметры.
и не использовать ADOQuery... :)
а также заменить "кривой" ODBC "прямым" Jet-ом (OLEDB).

и кстати, если бы ошибка была изза отсутствующих кавычек, так что выражение не воспринималось как строка, то ошибка была бы другая - "неверный синтаксис".
тут у него поле скорее не  находится, а т.к. движок Jet зачастую ненайденное воспринимает как параметр (которого в коллекции естественно нет) то ... > "Слишком мало параметров"

в общем делаю ставку на то, что он kontakname коряво написал... сам не знает что за поля в таблице делал.


Константин_   (2007-01-31 16:03:00) [4]

Да уверен, уже и перепроверял несколько раз, просто такой простой запрос и ошибка на ровном месте


Кщд   (2007-01-31 15:59:00) [5]

Desdechado ©   (31.01.07 15:48) [4]
прошу прощения
задумался )

>fd979 ©   (31.01.07 15:54) [6]
>Да и кстати есть ли целесообразность использовать параметры в таком простеньком запросе.
вопрос в том, какова целесообразность их неиспользования )


Кщд   (2007-01-31 15:57:00) [6]

fd979 ©   (31.01.07 15:47) [3]
лучше, конечно, через параметры )


fd979   (2007-01-31 15:57:00) [7]

<where kontakname=:p1

Ты уверен, что вписал название поля правильно? Может не kontakname, а kontakTname? Это так на всякий случай


Константин_   (2007-01-31 15:55:00) [8]

хотя ошибся,
статический запрос:
select id from kontakt
where kontakname=:p1

Код в программе:
  ADOQuery4.Parameters[0].Value:=EditNameK.Text;
  ADOQuery4.Open;

Ошибка поменялась:
"[Microsoft][Драйвер ODBC Microsoft Access]Слишком мало параметров. Требуется 2"


fd979   (2007-01-31 15:54:00) [9]

Можно и параметры. Просто пытался по существу ответить.
Да и кстати есть ли целесообразность использовать параметры в таком простеньком запросе.


Константин_   (2007-01-31 15:50:00) [10]

с параметрами таже фигня


Desdechado   (2007-01-31 15:48:00) [11]

> Советую использовать #39.
Снова извращение.

Советую использовать параметры.


fd979   (2007-01-31 15:47:00) [12]

Скорее всего проблема в отсутствии '. Советую использовать #39.

sql.Add('select id from kontakt where kontaktname = ' + #39 + '6 7. 7.' + #39);


Константин_   (2007-01-31 15:46:00) [13]

  ADOQuery4.SQL.Clear;
  ADOQuery4.SQl.Add('select id from kontakt where kontakname='''+EditNameK.Text+'''');

и статический пробовал - одна и таже ошибка


Desdechado   (2007-01-31 15:42:00) [14]

как запрос попадаетв в квери?
код:


Наверх

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