Ошибка выполнения запроса ADO #229179


#0 by maxt
Пишу такой код: Выдает следующую ошибку: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Microsoft Access] Слишком мало параметров. Требуется 1. Что такое может быть?
#1 by ТелепатБот
#2 by andrey1111
это весь текст?
#3 by maxt
Что значит, весь текст? До этого естественно стояло подключение к базе Access'a.
#4 by maxt
Если имеется в виду тескт ошибки, то еще выдает Rs1 = Cmd1.Execute;
#5 by shuhard
WHERE Код_док = КодДокумента КодДокумента - это: поле таблицы Тов_операции параметр,который надо передать в Cmd1 И  не текстовый ли  Код_док, тогда надо будет КодДокумента окаймить кавычками.
#6 by maxt
Код_док - это поле таблицы, а КодДокумента - это строковый параметр, передаваемый в запрос. А как его окаймлять? WHERE Код_док = ""КодДокумента"" - так?
#7 by shuhard
передавать надо значение т.е. не КодДокумента, а ""ХХХ0213""
#8 by shuhard
или использовать семейство параметров команды
#9 by maxt
Как я передам значение. если оно не известно? Мне кажется, я нашел. В описании MS Jet SQl  есть strParm = "PARAMETERS [Название должности] CHAR; "    ' Определяет инструкцию SQL    ' с предложением параметра. т.е. в текст запроса нужно добавить параметр КодДокумента. Осталось выяснить как! ;))
#10 by shuhard
#11 by shuhard
блин во мозги запудрил "Select * From Тов_операции WHERE Код_док = " + "'" +КодДокумента "'" + "  ORDER BY Код"; поиграйся с кавычками / поищи по форуму пролетало цать раз
#12 by maxt
Изыскания продолжаются... Вот такой код Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Microsoft Access] Слишком мало параметров. Требуется 1. Просматривая в отладчике, парметр 1 есть у объекта cmd1, тип - число, но значение стоит "Ошибка чтения значения". В чем грабли?
#13 by Лефмихалыч
а почему надо использовать именно ADODB.Command? Почему не получить данные через ADODB.Connection и ADODB.Recordset?
#14 by maxt
Ну потому, что я хочу выполнить запрос, получить рекордсет и затем его маслать... А в чем проблема то? Или это не грамотно?
#15 by Лефмихалыч
ИМХО, через ADODB.Connection и ADODB.Recordset давно бы уже сделал...
#16 by maxt
Ну, наверное, по другому не умею. У тебя по теме есть что сказать, или так просто зашел?
#17 by Лефмихалыч
как хошь, продолжай ипацца с ADODB.Command'ом...
#18 by maxt
Вьюноша, засунь свой албанский в то место, каким думать пытаешься, и топай отсюда.
#19 by Alexor
У тебя такой запрос отрабатывает? Cmd1.CommandText = "Select * From Тов_операции"; если да то попробуй так. Cmd1.CommandText = "Select * From Тов_операции WHERE Код_док = "+СокрЛП(КодДокумента)+" ORDER BY Код";
#20 by maxt
На первый вопрос - да, отрабатывает. На второй - нет, то же самое, не хватает параметров. Cmd1.CommandText = "Select * From Тов_операции WHERE Код_док = '"+СокрЛП(КодДокумента)+"' ORDER BY Код"; Та же песня...
#21 by Лефмихалыч
сам ты головожопый
#22 by Alexor
Код_док - какой тип строка или число? поле Код в Тов_операции какого типа?
#23 by maxt
Итам, и там - числовой, длинное целое.
#24 by Alexor
Так что скажет?
#25 by maxt
ЕЕ не обманешь! ;)) говорит "Несоответствие типов данных в выражении условия отбора."
#26 by Alexor
Проверь что у тебя передается в запрос должно быть Select Код, Код_док From Тов_операции WHERE Код_док = 123 ORDER BY Код а может у тебя КодДокумента пустой: Select Код, Код_док From Тов_операции WHERE Код_док =  ORDER BY Код или строка: Select Код, Код_док From Тов_операции WHERE Код_док = '123' ORDER BY Код
#27 by maxt
Вот такая строка Cmd1.CommandText = "Select Код, Код_док From Тов_операции WHERE Код_док = 1114119366 ORDER BY Код"; Отрабатывает все честно. Т.е. когда я прямо прописал числовой код документа. Так что надо передавать через параметр. А как это сделать, не соображу...
#28 by Alexor
в первый раз одиночные кавычки были, теперь попробуй.
#29 by Alexor
+28 И посмотри какой текст в запрос уходит.
#30 by maxt
Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Код_док = 1 624 906 727'. В запрос передается Select * From Тов_операции WHERE Код_док = 1 624 906 727 ORDER BY Код
#31 by Alexor
Пробелы из числа убери
#32 by Лефмихалыч
#33 by Alexor
Формат(КодДокумента,"ЧГ=")
#34 by Alexor
Сразу не посмотрел что в 8-ке, с этим также сталкивался.
#35 by maxt
(31,33,34) От блин, заработало! Никогда бы не подумал!!! Спасибо огромное!
#36 by Лефмихалыч
черная неблагодарность.....
#37 by maxt
Не плачь, тебе тоже за 32 спасибо! ;) Просто неперевариваю, когда с умным видам, да еще по албански. понтоваться начинают. Мир? ;))
#38 by Лефмихалыч
грубить-то ты начал , а я даже решение предложил в приложение к своим словам в Да мир, чо там 8)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С