Boost C++ Libraries

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

connection::async_execute (2 of 2 overloads)
PrevUpHomeNext

Executes a text query or prepared statement.

Synopsis
template<
    class ExecutionRequest,
    class ResultsType,
    class CompletionToken>
auto
async_execute(
    ExecutionRequest&& req,
    ResultsType& result,
    diagnostics& diag,
    CompletionToken&& token);
Description

Sends req to the server for execution and reads the response into result. result may be either a results or static_results object. req should may be either a type convertible to string_view containing valid SQL or a bound prepared statement, obtained by calling statement::bind. If a string, it must be encoded using the connection's character set. Any string parameters provided to statement::bind should also be encoded using the connection's character set.

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

Metadata in result will be populated according to this->meta_mode().

Object lifetimes

If CompletionToken is a deferred completion token (e.g. use_awaitable), the caller is responsible for managing req's validity following these rules:

  • If req is string_view, the string pointed to by req must be kept alive by the caller until the operation is initiated.
  • If req is a bound_statement_tuple, and any of the parameters is a reference type (like string_view), the caller must keep the values pointed by these references alive until the operation is initiated.
  • If req is a bound_statement_iterator_range, the caller must keep objects in the iterator range passed to statement::bind alive until the operation is initiated.
Handler signature

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


PrevUpHomeNext