%Library.ScrollableResultSet
class %Library.ScrollableResultSet extends %Library.ResultSet
This provides a scrollable resultset object that can also be saved and loaded It works by running the entire query when the first item of data is requested and storing the results in a global. Then you can move around the results by setting the CurrRow and you may also call Previous() as well as the standard Next(). In addition you may save this resultset and then load it potentially in a different process at a later date and continue reading from it, for example:Set results=##class(%ScrollableResultSet).%New("Classname:QueryName") Do results.Execute() Do results.Next() Write results.Data("fieldname") Do results.%Save() Set id=results.%Id() Kill results Set results=##class(%ScrollableResultSet).%OpenId(id) Do results.Next() Write results.Data("fieldname")
There is also a Count() to find the total number of entries in this resultset. This will not work if running with a query against a remote linked table which returns stream data for a column because the remote linked table returns the stream as an oref and this class does not support persisting this oref.
Property Inventory
Method Inventory
Properties
property CurrRow as %Integer;
Number of current row in the temp table, you can set this property to
move to a new location and also use this to check the current position.
If you specify a value that is out of bounds then the row will not be moved.
The first row is at CurrRow=1, so it is 1 based and not 0 based.
Property methods: CurrRowDisplayToLogical(), CurrRowGet(), CurrRowIsValid(), CurrRowLogicalToDisplay(), CurrRowNormalize()
property MaxRows as %Integer [ InitialExpression = 0 ];
This determines how many rows this query will load, the default '0' will load
all the results, if you set it to 10,000 then it will only load the first 10,000
rows, which will mean you can not access any data beyond the 10,000th element.
Also the actual stopping point may be slightly larger than MaxRows because of the
way the data is imported, but it will be around this figure.
Property methods: MaxRowsDisplayToLogical(), MaxRowsGet(), MaxRowsIsValid(), MaxRowsLogicalToDisplay(), MaxRowsNormalize(), MaxRowsSet()
Methods
final method %Id() as %String
classmethod %OpenId(id As %String, concurrency As %Integer = -1, ByRef sc As %Status = $$$OK) as %ObjectHandle
method %Save() as %Status
method Count() as %Integer
Returns the number of rows contained in this ResultSet.
method GetObject() as %RegisteredObject
Inherited description: If this query contains an object Id then this method opens an object with this Id
and returns the object reference. Otherwise it returns a null object reference.
Advance the result set cursor to the next row. Returns 0 if the cursor is at the end of the
result set.
Advance the result set cursor to the previous row. Returns 0 if the cursor is at the end of the
result set.
Inherited Members
Inherited Properties
- %Message
- %Metadata
- %PrivateTables
- %ROWCOUNT
- %ROWID
- %ResultColumnCount
- %SQLCODE
- ClassName
- Data
- QueryName
- RuntimeMode
Inherited Methods
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %CloseCursor()
- %ConstructClone()
- %CreateSnapshot()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %Display()
- %DisplayFormatted()
- %Execute()
- %Extends()
- %Get()
- %GetData()
- %GetMetadata()
- %GetParameter()
- %IsA()
- %IsModified()
- %MetadataGet()
- %New()
- %Next()
- %NormalizeObject()
- %ObjectModified()
- %OriginalNamespace()
- %PackageName()
- %Prepare()
- %PrepareMetaData()
- %Print()
- %RemoveFromSaveSet()
- %ResultColumnCountGet()
- %SendDelimitedRows()
- %SendODBC()
- %SerializeObject()
- %SetModified()
- %ValidateObject()
- ClassNameSet()
- Close()
- ContainsId()
- Execute()
- Get()
- GetColumnCount()
- GetColumnExtInfo()
- GetColumnHeader()
- GetColumnName()
- GetColumnType()
- GetData()
- GetDataByName()
- GetExtent()
- GetODBCInfo()
- GetParamCount()
- GetParamName()
- GetStatementType()
- Prepare()
- QueryIsValid()
- RunQuery()
- RuntimeModeGet()
- RuntimeModeSet()
- SetIdInfo()
- Test()