Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
connection::async_start_statement_execution (1 of 4 overloads)

Starts a statement execution as a multi-function operation.

Synopsis
template<
    class FieldLikeTuple,
    class CompletionToken,
    class EnableIf = detail::enable_if_field_like_tuple<FieldLikeTuple>>
auto
async_start_statement_execution(
    const statement& stmt,
    FieldLikeTuple&& params,
    execution_state& st,
    CompletionToken&& token);
Description

Writes the execute request and reads the initial server response and the column metadata, but not the generated rows, if any. After this operation completes, st will have execution_state::meta populated, and may become execution_state::complete if the operation did not generate any rows (e.g. it was an UPDATE). Metadata will be populated according to this->meta_mode().

If the operation generated any rows, these must be read (by using read_some_rows) before engaging in any further operation involving server communication. 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.

Preconditions

stmt.valid() == true

Object lifetimes

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.

Handler signature

The handler signature for this operation is void(boost::mysql::error_code).


PrevUpHomeNext