21 #define STMT_ERROR_RETURN_RS(statement) \ 23 STMT_ERROR_NO_BRAKET(statement) \ 30 else if (mysql_stmt_prepare(
m_data->m_statement, query.c_str(), query.size()))
33 m_data->m_bind_count = mysql_stmt_param_count(
m_data->m_statement);
35 if (
m_data->m_bind_count > 0) {
36 m_data->m_raw_binds =
new MYSQL_BIND[
m_data->m_bind_count];
38 for (uint32_t
i = 0;
i <
m_data->m_bind_count;
i++)
47 if (
m_data->m_raw_binds && mysql_stmt_bind_param(
m_data->m_statement,
m_data->m_raw_binds))
52 return mysql_stmt_affected_rows(
m_data->m_statement);
56 if (
m_data->m_raw_binds && mysql_stmt_bind_param(
m_data->m_statement,
m_data->m_raw_binds))
61 return mysql_stmt_insert_id(
m_data->m_statement);
67 if (
m_data->m_raw_binds && mysql_stmt_bind_param(
m_data->m_statement,
m_data->m_raw_binds))
79 value->seekg(0, std::ios_base::end);
84 bind.
set(MYSQL_TYPE_BLOB,
nullptr, static_cast<long unsigned int>(
size));
91 bind.
set(MYSQL_TYPE_BLOB, value->get(), value->size());
111 bind.
set(MYSQL_TYPE_STRING, str.c_str(), str.
size());
115 bind.
set(MYSQL_TYPE_STRING, value.c_str(), value.size());
125 bind.
set(MYSQL_TYPE_TINY,
nullptr, 0, true);
135 bind.
set(MYSQL_TYPE_SHORT,
nullptr, 0, true);
145 bind.
set(MYSQL_TYPE_LONG,
nullptr, 0, true);
155 bind.
set(MYSQL_TYPE_LONGLONG,
nullptr, 0, true);
void set(enum_field_types type, const char *buffer=nullptr, unsigned long length=0, bool us=false)
std::shared_ptr< result_set > result_set_ref
#define STMT_ERROR_RETURN_RS(statement)
Class representing SQL time.
#define MAKE_SETTER(nm, type)
result_set_ref query()
Execute the query and return a result set.
u64 insert()
Execute the query and return the last insert id.
std::shared_ptr< std::istream > stream_ref
u64 execute()
Execute the query and return the number of rows affected.
std::shared_ptr< ::mariadb::data< char > > data_ref
#define MYSQL_ERROR(mysql)
Class representing a prepared statement with binding functionality.
connection_ref m_connection
Class used to represent SQL date_time.
Wraps a Database connection.
long unsigned int length() const
std::size_t index(const std::string &str, const std::size_t index)
Codepoint index corresponding to the nth character in a UTF-8 string.
statement_data_ref m_data
std::shared_ptr< statement_data > statement_data_ref
std::shared_ptr< connection > connection_ref
#define STMT_ERROR(statement)
void set_connection(connection_ref &connection)
Set connection ref, used by concurrency.
bind set(MYSQL_TYPE_BLOB, nullptr, static_cast< long unsigned int >(size))