亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? query.cpp

?? MySql++ wrapper
?? CPP
字號(hào):
/** **	Query.cpp ** **	Published / author: 2001-02-15 / grymse@alhem.net **//*Copyright (C) 2001  Anders HedstromThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*/#ifdef _WIN32#pragma warning(disable:4786)#endif#include <string>#include <map>#ifdef WIN32#include <config-win.h>#include <mysql.h>#else#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mysql/mysql.h>#endif#include "Database.h"#include "Query.h"Query::Query(Database *dbin):m_db(*dbin),odb(dbin ? dbin -> grabdb() : NULL),res(NULL),row(NULL){}Query::Query(Database& dbin) : m_db(dbin),odb(dbin.grabdb()),res(NULL),row(NULL){}Query::Query(Database *dbin,const std::string& sql) : m_db(*dbin),odb(dbin ? dbin -> grabdb() : NULL),res(NULL),row(NULL){	execute(sql);}Query::Query(Database& dbin,const std::string& sql) : m_db(dbin),odb(dbin.grabdb()),res(NULL),row(NULL){	execute(sql); // returns 0 if fail}Query::~Query(){	if (res)	{		GetDatabase().error(*this, "mysql_free_result in destructor");		mysql_free_result(res);	}	if (odb)	{		m_db.freedb(odb);	}}Database& Query::GetDatabase(){	return m_db;}bool Query::execute(const std::string& sql){		// query, no result	m_last_query = sql;	if (odb && res)	{		GetDatabase().error(*this, "execute: query busy");	}	if (odb && !res)	{		if (mysql_query(&odb -> mysql,sql.c_str()))		{			GetDatabase().error(*this,"query failed");		}		else		{			return true;		}	}	return false;}// methods using db specific api callsMYSQL_RES *Query::get_result(const std::string& sql){	// query, result	if (odb && res)	{		GetDatabase().error(*this, "get_result: query busy");	}	if (odb && !res)	{		if (execute(sql))		{			res = mysql_store_result(&odb -> mysql);		}	}	return res;}void Query::free_result(){	if (odb && res)	{		mysql_free_result(res);		res = NULL;		row = NULL;	}}MYSQL_ROW Query::fetch_row(){	rowcount = 0;	return odb && res ? row = mysql_fetch_row(res) : NULL;}my_ulonglong Query::insert_id(){	if (odb)	{		return mysql_insert_id(&odb -> mysql);	}	else	{		return 0;	}}long Query::num_rows(){	return odb && res ? mysql_num_rows(res) : 0;}// data retreival methodsbool Query::is_null(int x){	if (odb && res && row)	{		return row[x] ? false : true;	}	return false; // ...}const char *Query::getstr(int x){	if (odb && res && row)	{		return row[x] ? row[x] : "";	}	else	{		return NULL;	}}const char *Query::getstr(){	return getstr(rowcount++);}double Query::getnum(int x){	return odb && res && row && row[x] ? atof(row[x]) : 0;}long Query::getval(int x){	return odb && res && row && row[x] ? atol(row[x]) : 0;}double Query::getnum(){	return getnum(rowcount++);}long Query::getval(){	return getval(rowcount++);}unsigned long Query::getuval(int x){	unsigned long l = 0;  if (odb && res && row && row[x])  {	  l = a2ubigint(row[x]);  }	return l;}unsigned long Query::getuval(){	return getuval(rowcount++);}int64_t Query::getbigint(int x){	return odb && res && row && row[x] ? a2bigint(row[x]) : 0;}int64_t Query::getbigint(){	return getbigint(rowcount++);}uint64_t Query::getubigint(int x){	return odb && res && row && row[x] ? a2ubigint(row[x]) : 0;}uint64_t Query::getubigint(){	return getubigint(rowcount++);}double Query::get_num(const std::string& sql){	double l = 0;	if (get_result(sql))	{		if (fetch_row())		{			l = getnum();		}		free_result();	}	return l;}long Query::get_count(const std::string& sql){	long l = 0;	if (get_result(sql))	{		if (fetch_row())			l = getval();		free_result();	}	return l;}const char *Query::get_string(const std::string& sql){	bool found = false;	m_tmpstr = "";	if (get_result(sql))	{		if (fetch_row())		{			m_tmpstr = getstr();			found = true;		}		free_result();	}	return m_tmpstr.c_str(); // %! changed from 1.0 which didn't return NULL on failed query}//MYSQL_FIELD *	STDCALL mysql_fetch_field(MYSQL_RES *result);/*MYSQL_FIELD *Query::fetch_field(){	return odb && res ? mysql_fetch_field(res) : NULL;}const char *Query::fetch_fieldname(){	MYSQL_FIELD *field = odb && res ? mysql_fetch_field(res) : NULL;	return field ? field -> name : "";}*/std::string Query::safestr(const std::string& str){	std::string str2;	for (size_t i = 0; i < str.size(); i++)	{		switch (str[i])		{		case '\'':		case '\\':		case 34:			str2 += '\\';		default:			str2 += str[i];		}	}	return str2;}std::string Query::unsafestr(const std::string& str){	std::string str2;	for (size_t i = 0; i < str.size(); i++)	{		if (str[i] == '\\')		{			i++;		}		if (i < str.size())		{			str2 += str[i];		}	}	return str2;}std::string Query::xmlsafestr(const std::string& str){	std::string str2;	for (size_t i = 0; i < str.size(); i++)	{		switch (str[i])		{		case '&':			str2 += "&amp;";			break;		case '<':			str2 += "&lt;";			break;		case '>':			str2 += "&gt;";			break;		case '"':			str2 += "&quot;";			break;		case '\'':			str2 += "&apos;";			break;		default:			str2 += str[i];		}	}	return str2;}const std::string& Query::GetLastQuery(){	return m_last_query;}std::string Query::GetError(){	return odb ? mysql_error(&odb -> mysql) : "";}int Query::GetErrno(){	return odb ? mysql_errno(&odb -> mysql) : 0;}int64_t Query::a2bigint(const std::string& str){	int64_t val = 0;	bool sign = false;	size_t i = 0;	if (str[i] == '-')	{		sign = true;		i++;	}	for (; i < str.size(); i++)	{		val = val * 10 + (str[i] - 48);	}	return sign ? -val : val;}uint64_t Query::a2ubigint(const std::string& str){	uint64_t val = 0;	for (size_t i = 0; i < str.size(); i++)	{		val = val * 10 + (str[i] - 48);	}	return val;}bool Query::Connected(){	if (odb)	{		if (mysql_ping(&odb -> mysql))		{			GetDatabase().error(*this, "mysql_ping() failed");			return false;		}	}	return odb ? true : false;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51久久夜色精品国产麻豆| 日韩av电影免费观看高清完整版| 日本一不卡视频| 色婷婷av一区二区三区之一色屋| 国产日韩欧美精品电影三级在线| 久久国产精品无码网站| 91精品在线一区二区| 日韩影院免费视频| 欧美区在线观看| 日本亚洲三级在线| 中文字幕一区二区三区在线观看 | 自拍偷拍亚洲欧美日韩| 国产精品亚洲午夜一区二区三区| 精品国产亚洲在线| 国内精品视频666| 精品福利视频一区二区三区| 精品一区二区在线免费观看| 欧美精品一区二区久久婷婷 | 成人午夜av在线| 国产精品理论片| av在线一区二区三区| 日韩一区在线看| 91黄色激情网站| 亚洲国产乱码最新视频 | 欧美天天综合网| 亚洲国产视频在线| 日韩欧美一二三| 国产福利91精品一区二区三区| 欧美国产精品v| 91猫先生在线| 天堂成人免费av电影一区| 欧美一区二区三区视频在线观看| 久久99久久精品| 国产精品入口麻豆原神| 91性感美女视频| 五月综合激情网| 久久人人超碰精品| 99久免费精品视频在线观看| 亚洲一级二级三级在线免费观看| 欧美一卡二卡三卡| 欧美美女网站色| 国产中文一区二区三区| 综合色中文字幕| 91.com在线观看| 国产精品77777| 亚洲影院理伦片| 久久影院视频免费| 99久久er热在这里只有精品15| 亚洲午夜激情网站| 久久精品夜夜夜夜久久| 欧美亚洲国产一区二区三区| 蜜桃视频一区二区三区| 中文字幕二三区不卡| 欧美三级资源在线| 国产盗摄精品一区二区三区在线| 亚洲一区精品在线| 国产日韩欧美一区二区三区乱码 | 日韩精品成人一区二区三区| 国产情人综合久久777777| 日本电影欧美片| 日韩精品一区在线| av中文字幕亚洲| 蜜桃精品在线观看| 亚洲人吸女人奶水| 精品国产污网站| 欧美影片第一页| 成人av午夜影院| 美女视频黄a大片欧美| 一区二区在线看| 久久亚区不卡日本| 在线播放亚洲一区| 91无套直看片红桃| 国产高清一区日本| 午夜电影久久久| 亚洲免费伊人电影| 欧美激情一二三区| 日韩免费一区二区| 欧美日韩精品二区第二页| 99久久精品免费| 国产精品一区免费在线观看| 蜜臀久久99精品久久久久宅男| 亚洲视频一区在线| 亚洲国产精品成人久久综合一区 | 欧美国产激情一区二区三区蜜月| 欧美精品日韩综合在线| 色悠久久久久综合欧美99| 国产.欧美.日韩| 国产麻豆精品95视频| 欧美aaa在线| 亚洲午夜久久久久久久久电影网 | 亚洲精品国产第一综合99久久| 青青草国产精品97视觉盛宴| 1区2区3区国产精品| 国产欧美一二三区| 久久久精品国产免费观看同学| 91精品视频网| 制服丝袜国产精品| 欧美老女人第四色| 欧美高清一级片在线| 精品视频999| 7777精品伊人久久久大香线蕉最新版| 91官网在线观看| 在线观看视频一区二区| 色综合久久久网| 91黄色免费看| 欧美性生交片4| 精品视频999| 91精品在线观看入口| 91精品国产综合久久香蕉麻豆| 欧美色视频在线观看| 欧美日韩亚洲综合| 91精品啪在线观看国产60岁| 欧美另类videos死尸| 91精品国产免费久久综合| 欧美日韩一区二区在线观看 | 在线中文字幕一区| 91亚洲精品一区二区乱码| 91在线国产福利| 日本高清不卡在线观看| 色噜噜夜夜夜综合网| 欧美在线观看视频一区二区 | 欧美日韩免费不卡视频一区二区三区| 91极品视觉盛宴| 欧美精品日韩综合在线| 欧美一区二区三区免费在线看| 欧美一区二区视频免费观看| 精品国产123| 国产精品沙发午睡系列990531| 国产精品高清亚洲| 一区二区免费看| 天天影视涩香欲综合网| 8v天堂国产在线一区二区| 欧美天堂一区二区三区| 欧美一区国产二区| 精品国产乱码久久久久久浪潮 | 久久综合久色欧美综合狠狠| 国产性天天综合网| 亚洲人午夜精品天堂一二香蕉| 亚洲高清免费观看高清完整版在线观看| 亚洲一区二区三区在线播放| 免费人成精品欧美精品| 成人一区在线观看| 欧美在线观看禁18| 欧美成人a∨高清免费观看| 国产精品视频看| 日韩精品乱码av一区二区| 国产高清亚洲一区| 欧美日韩专区在线| 欧美精品一区二区三区在线播放| 国产精品久久三区| 蜜臀av国产精品久久久久| www.久久精品| 日韩三级精品电影久久久| 国产精品久久久久7777按摩| 天堂蜜桃一区二区三区| 成人免费视频一区二区| 欧美日产在线观看| 欧美高清在线一区二区| 肉色丝袜一区二区| www.日韩av| 亚洲另类在线一区| 国产精品 日产精品 欧美精品| 欧美日韩一区二区在线视频| 国产欧美精品一区二区色综合| 五月天激情综合网| 成人国产精品免费网站| 日韩午夜精品视频| 亚洲自拍偷拍图区| 成人高清免费在线播放| 欧美va在线播放| 亚洲国产欧美一区二区三区丁香婷| 国产美女精品在线| 日韩三区在线观看| 亚洲成av人片在线| 一本一本久久a久久精品综合麻豆| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲妇熟xx妇色黄| 色欧美片视频在线观看| 中文字幕乱码亚洲精品一区| 韩日av一区二区| 日韩视频在线观看一区二区| 亚洲一区二区三区在线播放| 99精品桃花视频在线观看| 欧美激情综合在线| 国产一区二区三区四区五区入口| 91精品国产高清一区二区三区| 亚洲综合在线第一页| 99久久国产综合精品女不卡| 欧美国产国产综合| 国产成人免费在线视频| 天天综合网 天天综合色| 欧美色网一区二区| 一区二区三区四区不卡视频| 99久久精品久久久久久清纯| 中文字幕不卡的av| 成人免费视频国产在线观看| 久久久九九九九| 国产高清一区日本| 久久精品视频在线免费观看| 久久不见久久见中文字幕免费|