![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при выполнении 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]как запрос попадаетв в квери?
код: