Function queryValue

Executes a one-off SQL command and returns a single value: The the first column of the first row received. Useful for the case where you expect a (possibly empty) result set, and you're either only expecting one value, or only care about the first value.

If the query did not produce any rows, or the rows it produced have zero columns, this will return Nullable!Variant(), ie, null. Test for this with result.isNull.

If the query DID produce a result, but the value actually received is NULL, then result.isNull will be FALSE, and result.get will produce a Variant which CONTAINS null. Check for this with result.get.type == typeid(typeof(null)).

Use this method when you are not going to be using the same command repeatedly. This method will throw if the SQL command does not produce a result set.

If there are long data items among the expected result columns you can specify that they are to be subject to chunked transfer via a delegate.

Prototype

std.typecons.Nullable!(std.variant.VariantN!(32L).VariantN) queryValue(
  Connection conn,
  string sql,
  ColumnSpecialization[] csa = null
);

Parameters

NameDescription
csa An optional array of ColumnSpecialization structs.

Returns

Nullable!Variant: This will be null (check via Nullable.isNull) if the query resulted in an empty result set.

Authors

Copyright

License