⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connection.cpp

📁 MySql C++ library
💻 CPP
字号:
#include <windows.h>#include "connection3.hh"#include "result3.hh"//--------------------------------------------------------------------------Connection::Connection (const char *db, const char *host, const char *user,			const char *passwd, bool te)  : throw_exceptions(te), locked(false){	mysql_init(&mysql);  if (connect (db, host, user, passwd))	{    locked = false;    Success = is_connected = true;  }  else  {    locked = false; Success = is_connected = false;    if (throw_exceptions) throw BadQuery(error());  }}//--------------------------------------------------------------------------Connection::Connection (const char *db, const char *host, const char *user,			const char *passwd, uint port, my_bool compress,			unsigned int connect_timeout, bool te,			const char *socket_name)  : throw_exceptions(te), locked(false){	mysql_init(&mysql);  if (real_connect (db, host, user, passwd, port, compress,		connect_timeout,socket_name))  {    locked = false;    Success = is_connected = true;  }  else  {    locked = false; Success = is_connected = false;    if (throw_exceptions) throw BadQuery(error());  }}//--------------------------------------------------------------------------bool Connection::real_connect (cchar *db, cchar *host, cchar *user,			       cchar *passwd, uint port, my_bool compress,			       unsigned int connect_timeout,			       const char *socket_name){  if (socket_name && socket_name[0])    mysql.options.unix_socket = (char *)socket_name;  else    mysql.options.unix_socket=NULL;  mysql.options.port = port;  mysql.options.compress = compress;  mysql.options.connect_timeout=connect_timeout;  locked = true;  if (mysql_connect(&mysql, host, user, passwd))  {    locked = false;    Success = is_connected = true;  }  else  {    locked = false; Success = is_connected = false;    if (throw_exceptions) throw BadQuery(error());  }  if (!Success) return Success;  if (db[0]) // if db is not empty    Success = select_db(db);  return Success;}//--------------------------------------------------------------------------Connection::~Connection () {	mysql_close(&mysql);}//--------------------------------------------------------------------------bool Connection::select_db (const char *db) {  bool suc = !(mysql_select_db(&mysql, db));  if (throw_exceptions && !suc) throw MysqlBadQuery(error());  else return suc;}//--------------------------------------------------------------------------bool Connection::reload() {  bool suc = !mysql_reload(&mysql);  if (throw_exceptions && !suc) throw MysqlBadQuery(error());  else return suc;}//--------------------------------------------------------------------------bool Connection::shutdown () {  bool suc = !(mysql_shutdown(&mysql));  if (throw_exceptions && !suc) throw MysqlBadQuery(error());  else return suc;}//--------------------------------------------------------------------------bool Connection::connect (cchar *db, cchar *host, cchar *user, cchar *passwd){  locked = true;  if (mysql_connect(&mysql, host, user, passwd)) {    locked = false;    Success = is_connected = true;  } else {    locked = false;    if (throw_exceptions) throw BadQuery(error());    Success = is_connected = false;  }  if (!Success) return Success;  if (db[0]) // if db is not empty    Success = select_db(db);  return Success;}//--------------------------------------------------------------------------string Connection::info (){  char *i = mysql_info(&mysql);  if (!i)    return string();  else    return string(i);}//--------------------------------------------------------------------------ResNSel Connection::execute(const string &str, bool throw_excptns) {  Success = false;  if (lock())    if (throw_excptns) throw BadQuery(error());    else return ResNSel();  Success = !mysql_query(&mysql, str.c_str());  unlock();  if (!Success)    if (throw_excptns) throw BadQuery(error());    else return ResNSel();  return ResNSel(this);}//--------------------------------------------------------------------------bool Connection::exec(const string &str) {	Success = !mysql_query(&mysql,str.c_str());	if (!Success && throw_exceptions) throw BadQuery(error());	return Success;}//--------------------------------------------------------------------------Result Connection::store(const string &str, bool throw_excptns) {  Success = false;  if (lock())    if (throw_excptns) throw BadQuery(error());    else return Result();  Success = !mysql_query(&mysql, str.c_str());  unlock();  if (!Success)    if (throw_excptns) throw BadQuery(error());    else return Result();  return Result(mysql_store_result(&mysql));}//--------------------------------------------------------------------------ResUse Connection::use(const string &str, bool throw_excptns) {  Success = false;  if (lock())    if (throw_excptns) throw BadQuery(error());    else return ResUse();  Success = !mysql_query(&mysql, str.c_str());  if (!Success)    if (throw_excptns) throw BadQuery(error());    else return ResUse();  return ResUse(mysql_use_result(&mysql), this);}//end of file ===============================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -