Struct SafeResultRange
An input range of SafeRow.
struct SafeResultRange
;
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 SafeResultRange
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
.
A SafeResultRange
becomes invalidated (and thus cannot be used) when the server
is sent another command on the same connection. When an invalidated
SafeResultRange
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
.
Properties
Name | Type | Description |
---|---|---|
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]
|
bool | Check whether there are any rows left |
front [get]
|
inout(SafeRow) | Gets the current row |
isValid [get]
|
bool | Check whether the range can still be used, or has been invalidated. |
rowCount [get]
|
ulong | Get the number of rows retrieved so far. |
Methods
Name | Description |
---|---|
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
SafeResultRange oneAtATime = myConnection .query("SELECT * from myTable");
SafeRow[] allAtOnce = myConnection .query("SELECT * from myTable") .array;