【发布时间】:2020-08-20 15:06:06
【问题描述】:
我创建了带有 2 个参数的 SQL 存储过程:DateFrom 和 DateTo(在我的 sql 过程中都是 DATE 类型)。
我想在 Power Query 编辑器中编写本机查询,所以首先我为日期创建了 2 个参数(类型:日期/时间):StartDate 和 EndDate。不幸的是,当我尝试编写本机查询时,出现以下错误:“无法从数据类型 Record 转换为 Text”。你知道它有什么问题吗?
这是过程调用:
还有我的 M 码:
let
Source = Sql.Database("Server\12", "Base1"),
Query = Value.NativeQuery(
Source,
[Query="EXEC [dbo].[sp_Sales] @DateFrom = '" & Date.ToText(StartDate) & "', @DateTo = '" & Date.ToText(EndDate) & "'"])
in
Query
我也尝试了更多“:
let
Source = Sql.Database("Server\12", "Base1"),
Query = Value.NativeQuery(
Source,
[Query="EXEC [dbo].[sp_Sales] @DateFrom = """ & Date.ToText(StartDate) & """, @DateTo = """ & Date.ToText(EndDate) & """"])
in
Query
问题出在哪里?
【问题讨论】:
-
您可以先尝试使用不带参数的存储过程,以确保服务器和power bi之间的通信正常。之后尝试传递参数。这里我建议将参数值作为文本,然后在程序开始时将它们转换为 DateTime。
-
我按照你的建议做了。我从过程中删除了参数并尝试使用 NativeQuery 但它失败了。我还在设置中关闭了本机查询权限。同样的错误又出现了,怎么回事?
-
我做到了!最后!我已经花了几个星期的时间,没人知道怎么做:)现在我可以将参数从可视化传递到 SQL 存储过程并刷新所有数据:)我对此非常满意!
-
嗨@Muska,很高兴看到您的问题得到解决。您可以在此处发布自己的答案,以便其他人也了解和了解该解决方案。
标签: sql sql-server powerbi