mysql-native v3.0.0

API Reference Home: [This Version] [Latest Version] [Other Versions]


Struct ResultRange

An input range of Row.

struct ResultRange ;

This is returned by the query functions.

The rows are downloaded one-at-a-time, as you iterate the range. This allows for low memory usage, and quick access to the results as they are downloaded. This is especially ideal in case your query results in a large number of rows.

However, because of that, this ResultRange cannot offer random access or a length member. If you need random access, then just like any other range, you can simply convert this range to an array via std.array.array().

A ResultRange becomes invalidated (and thus cannot be used) when the server is sent another command on the same connection. When an invalidated ResultRange is used, a MYXInvalidatedRange is thrown. If you need to send the server another command, but still access these results afterwords, you can save the results for later by converting this range to an array via std.array.array().

Properties

NameTypeDescription
colNameIndicies[get] const(ulong[string])An AA to lookup a column's index by name
colNames[get] const(string)[]Get the names of all the columns
empty[get] boolCheck whether there are any rows left
front[get] inout(Row)Gets the current row
isValid[get] boolCheck whether the range can still be used, or has been invalidated.
rowCount[get] ulongGet the number of rows retrieved so far.

Methods

NameDescription
asAA Get the current row as an associative array by column name
close Explicitly clean up the MySQL resources and cancel pending results
popFront Progresses to the next row of the result set - that will then be 'front'

Type Mappings

See the MySQL/D Type Mappings tables

Example

ResultRange oneAtATime = myConnection.query("SELECT * from myTable");
Row[]       allAtOnce  = myConnection.query("SELECT * from myTable").array;