MySQLIO.cpp
#include "stdafx.h"
#include "MySQLIO.h"
using namespace std;
using namespace commonio;
MySQLIO::MySQLIO(const char* ip,unsigned int port,const char* account,const char* pswd,const char* defaultDB):_conn(false)
{
_ip=ip;
_port=port;
_account=account;
_pswd=pswd;
_defaultDB=defaultDB;
_conn.set_option(new mysqlpp::SetCharsetNameOption("utf8") );
}
const char* MySQLIO::error(){return _error;}
int MySQLIO::errnum(){return _errnum;}
mysqlpp::StoreQueryResult MySQLIO::executeQuery(const char* sqlStr){
_error=NULL;
_errnum=0;
try{
if(!_conn.connected()) {
if(!_conn.connect(_defaultDB, _ip,
_account, _pswd,_port)){
_error=_conn.error();
_errnum=_conn.errnum();
}
}
if(_conn.connected()) {
mysqlpp::Query query = _conn.query(sqlStr);
if (mysqlpp::StoreQueryResult res = query.store()) {
query.reset();
return res;
}else{
_error=query.error();
_errnum=query.errnum();
}
}
}catch(const mysqlpp::ConnectionFailed &e){
_error=e.what();
_errnum=e.errnum();
}catch(const mysqlpp::BadQuery &e){
_error=e.what();
_errnum=e.errnum();
}catch (const mysqlpp::BadConversion & e) {
_error=e.what();
}catch (const mysqlpp::BadFieldName & e) {
_error=e.what();
}catch (const mysqlpp::BadIndex & e) {
_error=e.what();
}catch (const mysqlpp::BadInsertPolicy & e) {
_error=e.what();
}catch (const mysqlpp::BadOption & e) {
_error=e.what();
}catch (const mysqlpp::BadParamCount & e) {
_error=e.what();
}catch (const mysqlpp::Exception& e) {
_error=e.what();
}
return mysqlpp::StoreQueryResult();
}
mysqlpp::StoreQueryResult MySQLIO::executeQuery(const char* sqlStr,mysqlpp::SQLQueryParms & param){
_error=NULL;
_errnum=0;
try{
if(!_conn.connected()) {
if(!_conn.connect(_defaultDB, _ip,
_account, _pswd,_port)){
_error=_conn.error();
_errnum=_conn.errnum();
}
}
if(_conn.connected()) {
mysqlpp::Query query = _conn.query(sqlStr);
query.parse();
if (mysqlpp::StoreQueryResult res = query.store(param)) {
query.reset();
return res;
}else{
_error=query.error();
_errnum=query.errnum();
}
}
}catch(const mysqlpp::ConnectionFailed &e){
_error=e.what();
_errnum=e.errnum();
}catch(const mysqlpp::BadQuery &e){
_error=e.what();
_errnum=e.errnum();
}catch (const mysqlpp::BadConversion & e) {
_error=e.what();
}catch (const mysqlpp::BadFieldName & e) {
_error=e.what();
}catch (const mysqlpp::BadIndex & e) {
_error=e.what();
}catch (const mysqlpp::BadInsertPolicy & e) {
_error=e.what();
}catch (const mysqlpp::BadOption & e) {
_error=e.what();
}catch (const mysqlpp::BadParamCount & e) {
_error=e.what();
}catch (const mysqlpp::Exception& e) {
_error=e.what();
}
return mysqlpp::StoreQueryResult();
}
mysqlpp::SimpleResult MySQLIO::executeUpdate(const char* sqlStr){
_error=NULL;
_errnum=0;
try{
if(!_conn.connected()) {
if(!_conn.connect(_defaultDB, _ip,
_account, _pswd,_port)){
_error=_conn.error();
_errnum=_conn.errnum();
}
}
if(_conn.connected()) {
mysqlpp::Query query = _conn.query(sqlStr);
query.parse();
if (mysqlpp::SimpleResult res = query.execute()) {
query.reset();
return res;
}else{
_error=query.error();
_errnum=query.errnum();
}
}
}catch(const mysqlpp::ConnectionFailed &e){
_error=e.what();
_errnum=e.errnum();
}catch(const mysqlpp::BadQuery &e){
_error=e.what();
_errnum=e.errnum();
}catch (const mysqlpp::BadConversion & e) {
_error=e.what();
}catch (const mysqlpp::BadFieldName & e) {
_error=e.what();
}catch (const mysqlpp::BadIndex & e) {
_error=e.what();
}catch (const mysqlpp::BadInsertPolicy & e) {
_error=e.what();
}catch (const mysqlpp::BadOption & e) {
_error=e.what();
}catch (const mysqlpp::BadParamCount & e) {
_error=e.what();
}catch (const mysqlpp::Exception& e) {
_error=e.what();
}
return mysqlpp::SimpleResult();
}
mysqlpp::SimpleResult MySQLIO::executeUpdate(const char* sqlStr,mysqlpp::SQLQueryParms & param){
_error=NULL;
_errnum=0;
try{
if(!_conn.connected()) {
if(!_conn.connect(_defaultDB, _ip,
_account, _pswd,_port)){
_error=_conn.error();
_errnum=_conn.errnum();
}
}
if(_conn.connected()) {
mysqlpp::Query query = _conn.query(sqlStr);
query.parse();
if (mysqlpp::SimpleResult res = query.execute(param)) {
query.reset();
return res;
}else{
_error=query.error();
_errnum=query.errnum();
}
}
}catch(const mysqlpp::ConnectionFailed &e){
_error=e.what();
_errnum=e.errnum();
}catch(const mysqlpp::BadQuery &e){
_error=e.what();
_errnum=e.errnum();
}catch (const mysqlpp::BadConversion & e) {
_error=e.what();
}catch (const mysqlpp::BadFieldName & e) {
_error=e.what();
}catch (const mysqlpp::BadIndex & e) {
_error=e.what();
}catch (const mysqlpp::BadInsertPolicy & e) {
_error=e.what();
}catch (const mysqlpp::BadOption & e) {
_error=e.what();
}catch (const mysqlpp::BadParamCount & e) {
_error=e.what();
}catch (const mysqlpp::Exception& e) {
_error=e.what();
}
return mysqlpp::SimpleResult();
}
MySQLIO::~MySQLIO(void)
{
}
沒有留言:
張貼留言