MultiResultParser class

Parser for multi-result protocol.

Decodes binary data returned by odbc_exec_query_multi / odbc_exec_query_multi_params.

Wire format v2 (current, since v3.2.0):

[magic: u32 LE = 0x4D554C54 ("MULT")]
[version: u16 LE = 2]
[reserved: u16 = 0]
[count: u32 LE]
for each item:
  [tag: u8] (0 = ResultSet, 1 = RowCount)
  [length: u32 LE]
  [payload: length bytes]

Wire format v1 (legacy, still accepted):

[count: u32 LE]
for each item: ... (same as v2)

parse auto-detects the framing by sniffing the first 4 bytes.

Constructors

MultiResultParser()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

getFirstResultSet(List<MultiResultItem> items) ParsedRowBuffer?
Returns the first result set from a multi-result response, or null when the batch produced no cursors at all (e.g. INSERT-only batch).
parse(Uint8List data) List<MultiResultItem>
Parses multi-result binary data into a list of items.
parseMultiWithOutputs(Uint8List data) → ({List<MultiResultItem> items, List<ParamValue> outputParamValues})
Parses a buffer that was produced by the DRT1 + multi-result engine path: a MULT envelope (v2) followed by an optional OUT1 footer.

Constants

headerSize → const int
Header size for the legacy v1 framing: 4 bytes for item count.
itemHeaderSize → const int
Header size for each item: 1 (tag) + 4 (length) bytes.
tagResultSet → const int
Tag for result set item.
tagRowCount → const int
Tag for row count item.