Параметр SQL Хранимая Процедура Excel Get & Transform - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь вызвать хранимую процедуру выбора из SQL Server в Excel.

В SSMS можно записать как

@val1=1;
@val2=2;
Execute SP_DoStuff(@param1=@val1,@param2=@val2);

Глядя на похожие вопросы, общий ответ таков:объединить параметр и запустить как динамический SQL.Например: Использовать значения в ячейках в качестве параметров в хранимой процедуре в редакторе запросов мощности

Ответ есть

Source = Sql.Database("xxxxxxxxxxxxxxxxx", "xxxxxxxxxxx", [Query=
"#(lf)#(lf)EXEC#(tab) [dbo].[TestParameter]#(lf)
#(tab)#(tab)@from = '" & YourDateMethod & "'#(lf)
#(tab)#(tab)@isValid = 1,#(lf)
#(tab)#(tab)@someInt = 90"
]) 
in Source 

Если я что-то здесь не упустил, этотУстановленный метод выглядит широко открытым для внедрения из-за конкатенации строк YourDateMethod.

Существует ли метод для безопасной передачи значений из Excel в параметры?

Например, odbc позволяет готовить с токенами

Execute SP_DoStuff(@param1=?,@param2=?);

Тогда подавать?как значения во время выполнения

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете использовать Value.NativeQuery для написания параметризованных запросов.Например, если вы хотите запрос, который показывает только столбцы с именем Алиса, вы можете сделать

Value.NativeQuery(Sql.Database("server", "database"), "select Name from Employees where Name = @myName", [ myName = "Alice" ])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...