// 执行查询操作 void ConnectorMySQL::exec_select(const std::string &command, ErrorCode &error_code, std::vector<char> &result) { result.clear(); error_code.clear(); if (is_connected()) { mysql_real_query(&mysql_, command.data(), (unsigned long)command.size()); int error = mysql_errno(&mysql_); if (error != 0) { error_code.code = error; error_code.message = mysql_error(&mysql_); return; } if (!SerializeInterface<MYSQL>::serialize_result(mysql_, result)) { error_code.code = mysql_errno(&mysql_); error_code.message = mysql_error(&mysql_); } } else { throw NotConnected(); } }
// 设置字符集 void ConnectorMySQL::set_character_set(const char *csname, ErrorCode &error_code) { error_code.clear(); if (is_connected()) { mysql_set_character_set(&mysql_, csname); int error = mysql_errno(&mysql_); if (error != 0) { error_code.code = error; error_code.message = mysql_error(&mysql_); } } else { throw NotConnected(); } }
// 选择数据库 void ConnectorMySQL::select_db(const char *db, ErrorCode &error_code) { error_code.clear(); if (is_connected()) { mysql_select_db(&mysql_, db); int error = mysql_errno(&mysql_); if (error == 0) { select_db_ = db; } else { error_code.code = error; error_code.message = mysql_error(&mysql_); } } else { throw NotConnected(); } }