|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
Не могу передать параметры в объект Command. Вот фрагмент кода. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Must declare the scalar variable "@id" Что я неправильно делаю и как надо делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2010, 16:54 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
что-то не пойму зачем тут вам Command? Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2010, 16:58 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
fddsMust declare the scalar variable "@id" Что я неправильно делаю и как надо делать? Вы просто не врубились, что такое "параметр" и для чего нужен объект Command Параметры используются при вызове процедур, объект Command обеспечивает поддержку коллекции параметров. А при вызове обычного SQL-запроса ни то ни другое вам не нужно, см. пример выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2010, 17:11 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
Shocker.ProВы просто не врубились, что такое "параметр" и для чего нужен объект Command Параметры используются при вызове процедур, объект Command обеспечивает поддержку коллекции параметров. А при вызове обычного SQL-запроса ни то ни другое вам не нужно, см. пример выше.Тут ты одновременно и прав и не прав :) Параметры нужны только при использовании повторяющихся запросов. В этом случае можно подготовить запрос, создать для него набор параметров а потом изменяя параметры запускать. По идее это будет работать быстрее чем запуск отдельных похожих запросов на каждый из которых сервер базы данных должен будет запускать парсер sql команды ( подготавливать то есть). Параметры можно использовать как для хранимых процедур, так и для простых выборок и для обновлений базы. Но ни в одном из случаев использование параметров не являются обязательным. А ошибка fdds скорее всего в том, что именованые параметры, как они понимаются его драйвером, начинаются с двоеточия а не с собаки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2010, 19:16 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
Ну да, в общем-то, просто я не пользуюсь этой возможностью. :) А из поста автора неясно, куда он вообще коннектится, стало быть сложно дать рекомендации. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2010, 19:57 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
Если собаку заменить на двоеточие вообше вылетает ошибка Incorrect syntax near ':' База у мена Microsoft SQL Server Express 2005. Понимание синтаксиса параметров по-моему не от драйвера (провайдера) зависит, а от СУБД. Или здесь я не прав? А моя софтина требует именно использование именованных параметров, поэтому динамически формировать строку SQL-запроса не получится. Можно конечно подменивать параметры в строке запроса с пом. регулярных выражений или операций со строками, но это очень крайний случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2010, 09:29 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
> Автор: fdds ADO.Command какой версии? По моему, у последних версий было свойство использовать именованые параметры или нет. Точно Object BrowserProperty NamedParameters As Boolean Member of ADODB.Command Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2010, 10:29 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
> Автор: Игорь Горбонос Сори не увидел в коде этот вызов Тогда подойдем с другой стороны У меня параметры при создании указываются без @, но для ХП и для FireBird. Код: plaintext
Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2010, 10:38 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
fddsА моя софтина требует именно использование именованных параметров, поэтому динамически формировать строку SQL-запроса не получится. Почему? Не могу придумать ситуации. И, раз у вас MSSQL, кто мешает использовать процедуры с именованными параметрами? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2010, 10:43 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
а если строку прописать как Код: plaintext
в ином случае, придется сначала объявить переменную Код: plaintext
Скуль требует точного определения переменных I Have Nine Lives You Have One Only THINK! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2010, 14:15 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
fddsЕсли собаку заменить на двоеточие вообше вылетает ошибка Incorrect syntax near ':'Ну значит действительно собака нужна... или вопросительный знак если можно использовать неименованые параметры. fddsБаза у мена Microsoft SQL Server Express 2005. Понимание синтаксиса параметров по-моему не от драйвера (провайдера) зависит, а от СУБД. Или здесь я не прав?Не прав. Параметры это как раз дело драйвера (ODBC или OLEDB) который используется внутри твоего ADODB.Connection. Там на самом деле размазаная логика, часть компиляции запроса выполняется сервером, часть драйвером. В частности имена параметров вытаскиваются из строки запроса драйвером, потом сервер сообщает какого типа должны быть эти параметры, а потом уже драйвер занимается жесткой типизацией параметров. fddsА моя софтина требует именно использование именованных параметров, поэтому динамически формировать строку SQL-запроса не получится. Можно конечно подменивать параметры в строке запроса с пом. регулярных выражений или операций со строками, но это очень крайний случай.Попробуй не трогать Parameters.Append, сделай: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2010, 18:01 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
Тоже столкнулся с потребностью отдавать параметры в строку запроса в Vbsript. Но не срастается : Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
вместо ? пробовал @id - все одно...получаем 'ошибка param 3001' Нашел описание ошибки 3001 : adErrInvalidArgument Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. This error is often caused by a typographical error in an SQL SELECT statement. For example, a misspelled field name or table name can generate this error. This error can also occur when a field or table named in a SELECT statement does not exist in the data store. Может подскажет кто что не так то ? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 12:59 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
bormental, а в какой строке ошибка. Так код, на первый взгляд, рабочий ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 14:08 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
тута if Err.Number <> 0 then WScript.echo "ошибка param: " & cStr(Err.Number) end if я нашел пока сношался со своей проблемкой https://www.experts-exchange.com/questions/26606760/ADO-Command-object-using-Named-Parameters.html#answer34923468 авторI will upload the connection string tomorrow. This thread also shows good evidence to support theory that ADO does not support Named Parameters. Please do not delete it as other developers will have to go through the same trouble. Что то готов согласиться уже с этим мнением ) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 14:13 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
bormental, мне кажется, Вы просто где-то ошиблись в настройке объектов 1. используете NamedParameters = true и вместо параметра "знак вопроса". Хоть и писали, что ставили вместо оного "@id" для начала сделайте просто уберите NamedParameters = true и выполните простой запрос Код: sql 1.
будет ошибка или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 07:54 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
будет. Будет ошибка описанная мной в первом стартовом посте 3001 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 09:25 |
|
Параметры ADODB Command (MS SQL Server)
|
|||
---|---|---|---|
#18+
Удалось запустить только там пока (без коллекции параметров через cmd.execute(..)) Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 09:33 |
|
|
start [/forum/topic.php?fid=60&fpage=19&tid=2155414]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 175ms |
0 / 0 |