Я следовал этому уроку ЗДЕСЬ, но всякий раз, когда я пытаюсь обновить книгу, она выдает ошибку:
DataSource.Error: Microsoft SQL: эта функция базы данных не поддерживает опцию запроса 'Query' со значением 'null'.
Это SQL, стоящий за запросом, и ничего не возвращает ноль, а сохраненный процесс настроен на прием 3 входных параметров.
CSR=Excel.CurrentWorkbook(){[Name="param"]}[Content]{0}[#"CSR"],
d1=Excel.CurrentWorkbook(){[Name="param"]}[Content]{0}[#"d1"],
d2=Excel.CurrentWorkbook(){[Name="param"]}[Content]{0}[#"d2"],
Source = Sql.Database("ServerInstanceName", "Credentials",
[Query="exec [dbo].[StoredProcToRun] '" & Number.ToText(d1)
& "''," & Number.ToText(d2) & "','" & CSR & "'"])
И это настройка моей хранимой процедуры, показывающая, что она принимает 3 параметра:
Alter PROCEDURE dbo.StoredProcToRun
@d1 varchar(50), @d2 varchar(50), @CSR varchar(500)
AS
BEGIN
Что мне нужно изменить, чтобы этот мощный запрос передавал параметры Excel в мою хранимую процедуру SQL и возвращал данные обратно в книгу Excel?
Я изменил свой SQL-запрос мощности ниже, и теперь я получаю ошибку
Ожидается запятая
[Query="exec [dbo].[StoredProcToRun]
& Number.ToText(d1) & "','"
& Number.ToText(d2) & "','"
& CSR & "'"])
microsoft-excel
microsoft-excel-2013
sql-server
sql
power-query
user2676140
источник
источник
Ответы:
убедитесь, что у вас есть строка при объединении ваших подстрок. Значения, которые являются числовыми (например, CSR), должны быть преобразованы в строку для объединения.
смотрите также здесь другой пример в качестве учебника, который вы нашли.
Только что попробовал с частью скрипта сгенерировать строку для оператора EXEC. В конце концов попробуйте сгенерировать строку и скопировать ее в Management Studio, чтобы проверить, работает ли она там.
источник