Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
connection::async_execute_statement (1 of 2 overloads)

Executes a prepared statement.

    class FieldLikeTuple,
    class CompletionToken,
    class EnableIf = detail::enable_if_field_like_tuple<FieldLikeTuple>>
    const statement& stmt,
    FieldLikeTuple&& params,
    results& result,
    CompletionToken&& token);

Executes a statement with the given parameters and reads the response into result.

After this operation completes successfully, result.has_value() == true.

The statement actual parameters (params) are passed as a std::tuple of elements. See the FieldLikeTuple concept defition for more info. You should pass exactly as many parameters as this->num_params(), or the operation will fail with an error. String parameters should be encoded using the connection's character set.

Metadata in result will be populated according to conn.meta_mode(), where conn is the connection that prepared this statement.


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).