![]() |
Home | Libraries | People | FAQ | More |
(Deprecated) Starts a statement execution as a multi-function operation.
template<
class WritableFieldTuple
,
class CompletionToken,
class EnableIf = typename std::enable_if<detail::is_writable_field_tuple<WritableFieldTuple>::value>::type>
auto
async_start_statement_execution(
const statement& stmt,
WritableFieldTuple&& params,
execution_state& st,
CompletionToken&& token);
Writes the execute request and reads the initial server response and
the column metadata, but not the generated rows or subsequent resultsets,
if any. After this operation completes, st
will have execution_state::meta
populated. Metadata will
be populated according to this->meta_mode()
.
If the operation generated any rows or more than one resultset, these
must be read (by using read_some_rows
and read_resultset_head
) before
engaging in any further network operation. Otherwise, the results are
undefined.
The statement actual parameters (params
)
are passed as a std::tuple
of elements. String parameters
should be encoded using the connection's character set.
This function is only provided for backwards-compatibility. For new code,
please use start_execution
or async_start_execution
instead.
stmt.valid() == true
If CompletionToken
is
deferred (like use_awaitable
),
and params
contains any
reference type (like string_view
),
the caller must keep the values pointed by these references alive until
the operation is initiated. Value types will be copied/moved as required,
so don't need to be kept alive. It's not required to keep stmt
alive, either.
The handler signature for this operation is void(boost::mysql::error_code)
.