Fantastic help. Thank for sharing this. I didn't know you could use ##Expression in basic class queries. Studio does complain about it though but works just fine at run time!
Class dc.SomeClass
{
Parameter SOMENAME = "Name1";
Query SomeQuery(SOMENAME = {..#SOMENAME}) As %SQLQuery
{
SELECT ID || :SOMENAME || Name FROM Table1
}
Query SomeQuery1() As %SQLQuery
{
#define SOMENAME ##Expression("'"_$parameter("dc.SomeClass","SOMENAME")_"'")
SELECT ID || $$$SOMENAME || Name FROM Table1
}
Query SomeQuery2() As %SQLQuery
{
#define SOMENAME ##Expression("'"_##class(dc.SomeClass).#SOMENAME_"'")
SELECT ID || $$$SOMENAME || Name FROM Table1
}
ClassMethod Test()
{
;d ##class(dc.SomeClass).Test()
s rs=##class(%ResultSet).%New("dc.SomeClass:SomeQuery")
s sc=rs.Execute()
i $$$ISERR(sc) {
d $System.Status.DisplayError(sc)
} else {
d rs.%Display()
}
}
}
This can be done with SQL procedure:
Fantastic help. Thank for sharing this. I didn't know you could use ##Expression in basic class queries. Studio does complain about it though but works just fine at run time!