30using namespace fbcpp::impl;
34 : client{&statement.getAttachment().getClient()},
35 statusWrapper{statement.getAttachment().getClient()},
36 numericConverter{statement.getAttachment().getClient()},
37 calendarConverter{statement.getAttachment().getClient()}
45 messageLength = outMetadata->getMessageLength(&statusWrapper);
47 buffer.resize(
static_cast<std::size_t
>(maxRows) * messageLength);
50 auto* dest = buffer.data();
52 for (
unsigned i = 0; i < maxRows; ++i)
54 if (resultSet->fetchNext(&statusWrapper, dest) != fb::IStatus::RESULT_OK)
57 dest += messageLength;
61 buffer.resize(
static_cast<std::size_t
>(dest - buffer.data()));
RowSet(Statement &statement, unsigned maxRows)
Fetches up to maxRows rows from the current result set of statement.
Prepares, executes, and fetches SQL statements against a Firebird attachment.
const std::vector< Descriptor > & getOutputDescriptors() noexcept
Provides cached descriptors for each output column.
bool isValid() noexcept
Returns whether the Statement object is valid.
FbRef< fb::IResultSet > getResultSetHandle() noexcept
Provides access to the underlying Firebird currently open result set handle, if any.
FbRef< fb::IMessageMetadata > getOutputMetadata() noexcept
Returns the metadata describing columns produced by the statement.