Question
· Mar 27

count(*) from a sql dynamic query

 I have dynamic sql select query ,

Set resultset = ##class(%ResultSet).%New()

 set sql = "SELECT COUNT(*) FROM "_tableName_" WHERE "_fieldName_">='"_fromDate_"' AND "_fieldName_"<='"_currentDate_"'"

 SET SC = resultset.Prepare(sql)

 SET SC = resultset.Execute(sql)

How can I print/view the count ?

Discussion (8)3
Log in or sign up to continue

Points made by Enrico are 100% valid and you may need to consider them.

In your case, because your column is not named, you can use GetData(n) to get the count:

set sql = "SELECT COUNT(*) FROM "_tableName_" WHERE "_fieldName_">='"_fromDate_"' AND "_fieldName_"<='"_currentDate_"'"
set resultset = ##class(%ResultSet).%New("%DynamicQuery:SQL")
set SC = resultset.Prepare(sql)
set SC = resultset.Execute(sql)
write resultset.GetData(1)

Obviously don't forget to check the statuses.


Status OK

and the cnt as empty (I am expecting the count)

-------------------------------

Set resultset = ##class(%ResultSet).%New("%DynamicQuery:SQL")
set sql = "SELECT COUNT(*) AS CNT FROM "_tableName_" WHERE "_fieldName_">='"_fromDate_"' AND "_fieldName_"<='"_currentDate_"'"  
SET SC = resultset.Prepare(sql) 
$$$LOGSTATUS(SC)
SET SC = resultset.Execute(sql)
$$$LOGSTATUS(SC)   
if (resultset.GetData(1)>0)
$$$TRACE("cnt="_resultset.GetData(1))

-------------------------------