Defining and Using Stored Procedures
Source code
Class dc.test [ Abstract ]
{
Query daterange(
d1 As %String,
d2 As %String) As %Query(ROWSPEC = "dBegin:%String,dEnd:%String") [ SqlName = daterange, SqlProc ]
{
}
ClassMethod daterangeExecute(
ByRef qHandle As %Binary,
d1 As %String,
d2 As %String) As %Status
{
s qHandle("d1")=$system.SQL.TODATE(d1,"MM-DD-YYYY"),
qHandle("d2")=$system.SQL.TODATE(d2,"MM-DD-YYYY")
q $$$OK
}
ClassMethod daterangeFetch(
ByRef qHandle As %Binary,
ByRef Row As %List,
ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = daterangeExecute ]
{
s d2=qHandle("d2"),
dBegin=qHandle("d1"),
dEnd=$system.SQL.LASTDAY(dBegin)
s:dEnd>d2 dEnd=d2
i dBegin>d2 {
s AtEnd=1
} else {
s Row=$lb($system.SQL.TOCHAR(dBegin,"MM-DD-YYYY"),$system.SQL.TOCHAR(dEnd,"MM-DD-YYYY")),
qHandle("d1")=dEnd+1
}
q $$$OK
}
ClassMethod daterangeClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = daterangeExecute ]
{
q $$$OK
}
}| dBegin | dEnd |
|---|---|
| 01-05-2019 | 01-31-2019 |
| 02-01-2019 | 02-28-2019 |
| 03-01-2019 | 03-31-2019 |
| 04-01-2019 | 04-30-2019 |
| 05-01-2019 | 05-25-2019 |
- Log in to post comments
.png)