March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hello!
My Dynamic Parameter m is giving an error when the text value from a list of plain parameter has a hyphen (-) in it.
Like 312-34
Not sure why, I defined as text.
I get this error:
DataSource.Error: Microsoft SQL: Statement(s) could not be prepared.
Incorrect syntax near '-'.
Details:
DataSourceKind=SQL
DataSourcePath=mtlsql01;Reco_DEF
Message=Statement(s) could not be prepared.
Incorrect syntax near '-'.
ErrorCode=-2146232060
Number=8180
Class=16
Can anyone help?
I spent the whole day trying to figure it out.
Thanks!
Solved! Go to Solution.
Thanks for your help! (Not sure if I replied at the right spot)
This is the Query Code:
= Sql.Database("MTLSQL01", "Reco_DEF", [Query="SELECT *#(lf)FROM OPENQUERY ([MTLSQL01],#(lf)'EXEC Reco_DEF.dbo.DEF_Customer_Detail_NoDuplication_pbi " & ParamCustomer & ",
" & ParamCustomerLocation & " , " & Division & " ') " ])
This is the parameter code:
"2705-10" meta [IsParameterQuery=true, ExpressionIdentifier=CustomerLocation, Type="Text", IsParameterQueryRequired=true]
If I put the parameter in quotes in current value: "2705-10" It works.
"""2705-10""" meta [IsParameterQuery=true, ExpressionIdentifier=CustomerLocation, Type="Text", IsParameterQueryRequired=true]
Thaks in advance.
I fixed the issue.
After running profiler, I copied and pasted statement that was sent and ran it in sql.
It failed.
I added brackets to my parameter in sql and it worked.
I then added brackets in m:
[" & ParamCustomerLocation & "]
and it worked!
Maybe I need to do this because I am using OPENQUERY?
In any case thanks for your help watkinnc.
So it looks like the parameter is named CustomerLocation; any reason why you use ParamCustomerLocation instead of just CustomerLocation?
I fixed the issue.
After running profiler, I copied and pasted statement that was sent and ran it in sql.
It failed.
I added brackets to my parameter in sql and it worked.
I then added brackets in m:
[" & ParamCustomerLocation & "]
and it worked!
Maybe I need to do this because I am using OPENQUERY?
In any case thanks for your help watkinnc.
Hi watkinnc,
THe parameter is ParamCustomerLocation and it takes the data from a list query called CustomerLocation.
Can we see some of your code, plus the parameter code?
Thanks for your help! (Not sure if I replied at the right spot)
This is the Query Code:
= Sql.Database("MTLSQL01", "Reco_DEF", [Query="SELECT *#(lf)FROM OPENQUERY ([MTLSQL01],#(lf)'EXEC Reco_DEF.dbo.DEF_Customer_Detail_NoDuplication_pbi " & ParamCustomer & ",
" & ParamCustomerLocation & " , " & Division & " ') " ])
This is the parameter code:
"2705-10" meta [IsParameterQuery=true, ExpressionIdentifier=CustomerLocation, Type="Text", IsParameterQueryRequired=true]
If I put the parameter in quotes in current value: "2705-10" It works.
"""2705-10""" meta [IsParameterQuery=true, ExpressionIdentifier=CustomerLocation, Type="Text", IsParameterQueryRequired=true]
Thaks in advance.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.