|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Люди, помогите кодом! Мне нужно запускать хранимую процедуру в SQL-server'е из екселя с вводом параметра. То есть, ввожу в ячейку 0,56, запускаю макрос - ХП выполняется. И ещё как-то бы получать в качестве обратной связи сообщения типа, "Не удалось записать значение плотности" или "Параметр успешно записан" - это предусмотрено скриптом ХП. Оговорюсь сразу: из SQLа процедура успешно работает с выдачей диагностических сообщений, строка подключения тоже верна. Приведённый скрипт посоветовали, но не фурычит он, ругается "Type mismatch". Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Модератор: Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2018, 22:13 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
kovax, у вас есть на сервере процедура с именем SPNetWriteGasDensity0.56 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2018, 23:37 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Для начала в этом коде синтаксическая ошибка (там где кавычки в строке подключения) - кавычки в текстовых литералах нужно задваивать А дальше надо почитать что-нить о том, как запускать процедуры с параметрами первое попавшееся http://www.askit.ru/custom/vba_office/m9/09_06_ado_command.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2018, 23:41 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Shocker.Pro, 0,56 - это значение, которое процедура SPNetWriteGasDensity должная записать в прибор. Указанная процедура, разумеется, есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2018, 00:16 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
kovaxShocker.Pro, 0,56 - это значение, которое процедура SPNetWriteGasDensity должная записать в прибор. Указанная процедура, разумеется, есть.нет, я спросил именно про имя "SPNetWriteGasDensity0.56" Потому что именно такую вы пытаетесь запустить Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2018, 10:12 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Shocker Pro, чёт я Вас не понимаю: Вы что имеете в виду? В вышеуказанную строку я вкладываю следующий смысл: exec(пробел)имя процедуры(пробел)значение. Может, в этом ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2018, 19:51 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
kovaxимя процедуры( пробел )значениеи покажите мне этот самый пробел ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2018, 20:56 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Хм, как его показать-то... Просто нажатие клавиши пробела. Может быть, надо: cmd = "exec SPNetWriteGasDensity 0.56"? В понедельник на работе попробую. Да, и на строку подключения внимания не обращайте - она у меня в других макросах используется - проверено, работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2018, 21:13 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
kovaxХм, как его показать-то.Ну как. Я же давал ссылку на то, как оформлять сообщения. Там есть и средства выделения в коде.kovaxПросто нажатие клавиши пробела.нажатие клавиши пробела не означает появления пробела в тестовом литерале.kovaxДа, и на строку подключения внимания не обращайте - она у меня в других макросах используется - проверено, работает.строка может и рабочая, но это не значит, что втупую скопированная она будет правильно присвоена переменной.kovaxМожет быть, надо: cmd = "exec SPNetWriteGasDensity 0.56"?как вариант. А вообще, ссылку как запускать процедуру с параметрами я давал выше kovaxПриведённый скрипт посоветовали, но не фурычит онне знаю, кто там вам чего советовал, но этот скрипт ни о чем, он ничего не делает, даже если исправить в нем ошибки ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2018, 22:38 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Так, запускать процедуру с параметром я научился, наконец-таки! Осталось решить задачу с обратной связью - чтобы в виде MsgBox'ов выводилось сообщение, которое выводится, если я эту процедуру выполняю из кверианализера. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 09:29 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Shocker Pro, прошу Вас помочь в этом деле! Знаю теперь, что можете! Привожу скрипт ХП (авторство не моё, если что): Код: sql 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. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 09:35 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3.
Типа того ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 10:04 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Выскакивает ошибка "Run-time error '3265'. "Не удаётся найти объект в семействе, соответствующий требуемому имени или порядковому номеру". Пробовал подставлять вместо Diagnostic ErrorMessage (@ErrorMessage) - то же самое ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 10:55 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
первым оператором хранимки напиши Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 11:44 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Вставил. После AS (т.е. 4-ой строкой SET NOCOUNT ON). Ничего не изменилось. Почти: если писать не "Diagnostic", а "Diagnostics", тогда выскакивает MsgBox "Ok". Правда, он выскакивает всегда, даже если в счётчик не записалось значение. А до ввода SET NOCOUNT ON даже такая "диагностика" не работала. В общем, не то, что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 14:06 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
На всякий случай... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 14:08 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Вы что-то мутите, потому что никакого Diagnostics в вашем коде нет. Поставьте точку останова на MsgBox, посмотрите, что возвращается в rst ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 14:36 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Ещё раз скрипт ХП и скриншот Код: sql 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. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 14:54 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Виноват, скрипт чуть изменил Код: sql 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. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 14:56 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Скрин с результатом точки останова на MsgBox ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 15:19 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
А вот для варианта Diagnostics ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 15:22 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Ну так на скрине с QA всё же видно! В первом рекордсете у вас Diagnostics="Ok", что вы голову морочите. Чтобы получить данные из второго рекордсета, нужно брать данные из rs.NextRecordset() ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 15:33 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Но я бы в данном случае, раз вложенные процедуры возвращают какие-то свои рекордсеты, получал бы сообщение через @ErrorMessage, объявив его как output-параметр процедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 15:35 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Заработало, как хотел. Добавил строку Код: vbnet 1.
Shocker Pro, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2018, 08:37 |
|
Запуск хранимой процедуры из Excel
|
|||
---|---|---|---|
#18+
Shocker Pro, может быть, подскажете, в чём дело? Обычно я ввожу число, где разделителем служит точка - тогда ХП пишет "Успешно". Если поставить разделителем запятую и попытаться запустить ХП через QA, то анализер будет ругаться, а число не запишется - проверено. Если так же сделать, используя ексель, он выдаст сообщение "Успешно", хотя ХП ведь не выполнит запись! Даже если перезагрузить комп (чтобы исключить сохранение Recordset'ов), открыть книгу и сразу попытаться записать число с "неправильным"разделителем- всё равно пишет, что успешно. Меня вот это напрягает! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2018, 09:38 |
|
|
start [/forum/topic.php?fid=60&msg=39610715&tid=2155103]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 394ms |
0 / 0 |