|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Здравствуйте! Помогите с решением проблемы. Хочу разобраться как написать параметризованный запрос к MS SQL 2008 из VBA(Excel). Добавляется строка в таблицу [my_table] Процедура выдаёт ошибку на строке "oCmd.Execute": "Необходимо объявить скалярную переменную @TT_Param" Как сделать правильно? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2011, 21:13 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2011, 21:57 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Guest33, Понятно, что можно так сделать, но я хотел подставлять параметры непосредственно из программы VBA. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2011, 22:01 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Наверно, не получится. Надо использовать ХП ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2011, 22:25 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Выяснил, что можно сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Тогда возникает вопрос: можно ли вписать названия параметров в тексте SQL запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2011, 22:25 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
VBA_Kiddy... Тогда возникает вопрос: можно ли вписать названия параметров в тексте SQL запроса? Что мешает Вам программно создать SQL текст и только потом присвоить в "CommandText"? А для параметров либо будете спрашивать у пользователя через Inputbox (правда не очень красивое решение), либо создаёте специальную "UserForm", где должен будет пользователь ввести в нужные поля нужные параметры, либо в отдельном листе в отдельных ячейках пользователь должен будет ввести значения параметров заранее до запуска макроса. Если пофантазировать вариантов куча, это ещё не предел. Можно придумывать и придумывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2011, 09:03 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Вот как получилось: Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2011, 14:17 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
studierenЧто мешает Вам программно создать SQL текст и только потом присвоить в "CommandText"? Если имел в виду динамически создавать SQL запрос посредством обединения строк, то это плохая практика. Параметризованные запросы выигрывают: 1. Повторные запросы будут выполнятся быстрее. 2. Повышается безопасность - так как затрудняется SQL Injection. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2011, 16:27 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Спасибо всем за обсуждение! Вопрос был о правильном синтаксисе :) Для моей задачи было удобнее сформировать строку запроса один раз, а потом подставлять параметры. К тому же, через параметры, как мне кажется, проще работать с датами и числами - не приходится их преобразовывать в строку в коде и думать о форматах. Ну и, конечно же, аргументы, приведённые basicv имеют место быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 13:43 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
VBA_Kiddy, А как Вы будете передавать значение "Null" для определённого параметра? Или у Вас параметры никогда не могут быть с нулевым значением? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 14:43 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
studieren, А в чём может быть проблема? У меня параметры подставляются как значения ячеек Excel. Пустые ячейки автоматически заносятся в MS SQL как NULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 15:09 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 15:24 |
|
VBA. ADO. Запрос с параметрами к MS SQL.
|
|||
---|---|---|---|
#18+
Оно может со стороны сервера, через объектную модель экселя может проще/удобнее будет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2011, 15:56 |
|
|
start [/forum/topic.php?fid=45&msg=37267549&tid=1612046]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 455ms |
0 / 0 |