Executando o Proc. Armazenado Parametrizado da Consulta de Energia

1

Eu tenho seguido o tutorial AQUI mas sempre que tento atualizar o pasta de trabalho, isso me dá um erro de:

DataSource.Error: Microsoft SQL: This database function doesn't support the query option 'Query' with value 'null'.

Este é o SQL por trás da consulta, e nada está retornando null, e o proc armazenado está configurado para aceitar 3 parâmetros de entrada.

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 & "'"])

E esta é a configuração do meu procedimento armazenado mostrando que aceita 3 parâmetros:

Alter PROCEDURE dbo.StoredProcToRun 
@d1 varchar(50), @d2 varchar(50), @CSR varchar(500)

AS
BEGIN

O que preciso modificar para que essa consulta de poder passe os Parâmetros do Excel para o meu procedimento armazenado SQL e retorne os dados de volta à pasta de trabalho do Excel?

Eu alterei minha consulta de poder sql para o abaixo e agora recebo um erro de

Token comma expected

[Query="exec [dbo].[StoredProcToRun] 
& Number.ToText(d1) & "','"
& Number.ToText(d2) & "','" 
& CSR & "'"])
    
por user2676140 24.05.2016 / 21:20

1 resposta

0

Certifique-se de ter uma string ao concatenar suas substrings. Os valores, que são numéricos (por exemplo, CSR), precisam ser convertidos em uma string para a concatenação.

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)  & "','" & 
    Number.ToText(CSR) & "'"])

veja também aqui um outro exemplo como o tutorial que você encontrou.

Apenas tentei com uma parte do script para gerar a string para a instrução EXEC. Eventualmente, tente gerar a string e copie-a no Management Studio para verificar se ela funciona lá.

    
por 25.05.2016 / 15:06