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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sqlitedb.cpp

?? SQlite 的使用 讀庫 寫庫
?? CPP
字號:
//#include "stdafx.h"
#include "SQLiteDB.h"
#include <fstream>
#include <time.h>
#include "CodingConv.h"
NAMESPACE_SQLITE_BEGIN
using namespace std;

//////////////////////////////////////////////////////////////////////////
string SQLiteDB::Process(string& strContent)
{
	if (strContent.empty())
	{
		return ""; 
	}

	string strGet = "hello world!";
	if (!m_strKey.empty())
	{
		strGet = m_strKey;
	}

	int nLen		= strContent.length();
	int nResult		= 0;
	int nPos		= 0;

	string strResult	 = "";
	
	for (int i=0; i<nLen; ++i)
	{
		if (nPos == strGet.length())
		{
			nPos = 0;
		}

		strResult += static_cast<char>(strContent[i] ^ strGet[nPos]);
		++nPos;
	}

	return strResult;
}  

string SQLiteDB::Encode(string& strContent)
{
	srand( (unsigned)time( NULL ) );
	int nRandom = 10000000 + rand() % 89999999;

	char szKey[9]			= "";
	itoa(nRandom, szKey, 10);

	int nKeyLength			= 8;
	int nLen				= strContent.length();
	string strResult		= "";

	for (int i=0; i<nLen; ++i)
	{
		if (i < nKeyLength)
		{
			strResult += szKey[i];
		}

		strResult += (strContent[i] ^ szKey[i % nKeyLength]);
	}

	return Process(strResult);	
}

string SQLiteDB::Decode(string& strContent)
{
	strContent = Process(strContent);	

	string strResult		= "";
	string strGetKey		= "";
	int nKeyLength			= 8;
	int nLen				= strContent.length();

	for (int i=0, j=0; i<nLen; ++i, ++j)
	{
		if (j < nKeyLength)
		{
			strGetKey += strContent[i++];
		}
		
		strResult += (strContent[i] ^ strGetKey[j % nKeyLength]);
	}

	return strResult;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
bool SQLiteDB::OpenDB(const char* pszPath, const char* pszKey)
{
	if (pszPath == NULL || pszPath[0] == '\0')
	{
		return false;
	}

	if (pszKey == NULL)
	{
		m_strKey = "";
	}
	else
	{
		m_strKey = pszKey;
	}

	m_bOpenflag = true;
	
	//轉換成UTF-8格式
	char szDBName[256] = "";
	CCodingConv::GB2312_2_UTF8(szDBName, sizeof(szDBName), pszPath);

	return ::sqlite3_open(szDBName,&m_pDB)==SQLITE_OK;
}

//////////////////////////////////////////////////////////////////////////
bool SQLiteDB::AddInfoContainBinary(string& strSql, string& strTxt)
{
	sqlite3_stmt * stat = NULL;
	sqlite3_prepare(m_pDB, strSql.c_str(), -1, &stat, 0 );

	string strTmp;
	strTmp = Encode(strTxt);
	int  nRet = sqlite3_bind_blob( stat, 1, strTmp.c_str(), strTmp.size(), NULL );
	if ( SQLITE_OK != nRet || stat == NULL)
	{
		return false;
	}

	nRet = sqlite3_step( stat );
	sqlite3_finalize( stat ); 
	return true;
}

bool SQLiteDB::GetInfoContainBinary(string& strSql, ROW_INFO_VEC& vecContent, bool bSys)
{
	vecContent.clear();
	sqlite3_stmt * stat;
	int  nRet  = sqlite3_prepare( m_pDB, strSql.c_str(), -1, &stat, 0 );
	if ( SQLITE_OK != nRet || stat == NULL)
	{
		return false;
	}

	while (sqlite3_step( stat ) == SQLITE_ROW)
	{
		CHAT_DB_ROW_INFO info;

		info.id = sqlite3_column_int(stat, 0);
		
		const void * pFileContent = sqlite3_column_blob( stat, 1 );
		int len = sqlite3_column_bytes( stat, 1 );	
		
		string strTmp(static_cast<const char*>(pFileContent), len);
		strTmp = Decode(strTmp);
		info.strText = strTmp;
		
		info.lTime = sqlite3_column_int(stat, 2);

		if (!bSys)
		{
			info.nChannel = sqlite3_column_int(stat, 3);
			info.strSender = reinterpret_cast<const char*>(sqlite3_column_text(stat, 4));
			info.strReceiver = reinterpret_cast<const char*>(sqlite3_column_text(stat, 5));
		}
	
		vecContent.push_back(info);
	}
	
	sqlite3_finalize( stat ); 
	
	return true;
}

//////////////////////////////////////////////////////////////////////////
int SQLiteDB::Execute(const char* pszStatement)
{
	if (pszStatement == NULL || pszStatement[0] == '\0')
	{
		return -1;
	}

	int nRet = ::sqlite3_exec(m_pDB, pszStatement, 0, 0, NULL);
	if (SQLITE_OK == nRet)
	{
		return 0;
	}

	return -1;
}

//////////////////////////////////////////////////////////////////////////
CResult* SQLiteDB::ExecuteSelect(const char* pszSelect)
{
	if (pszSelect == NULL || pszSelect[0] == '\0')
	{
		return NULL;
	}
	
	if (m_pRes != NULL)
	{
		delete m_pRes;
		m_pRes = NULL;
	}
	
	CResult* rs = new CResult();
	int nRet = ::sqlite3_get_table(m_pDB, pszSelect, &rs->m_ppRes, &rs->m_nRow, &rs->m_nCol, NULL);
	m_pRes = rs;

	if (SQLITE_OK == nRet)
	{
		return rs;
	}
	
	return NULL;
}

//////////////////////////////////////////////////////////////////////////
bool SQLiteDB::CloseDB()
{
	m_bOpenflag = false;
	m_strKey = "";

	if (m_pRes != NULL)
	{
		delete m_pRes;
		m_pRes = NULL;
	}
	
	return sqlite3_close(m_pDB) != SQLITE_BUSY;
}

//////////////////////////////////////////////////////////////////////////
int SQLiteDB::ExecuteSQLFromFile(const char* pszFile)
{
	std::ifstream f;
	f.open(pszFile);

	std::string sql = "";

	//打開的SQL腳本文件最大不超過65536個字符
	char temp[65536] = {0};
	while(!f.eof())
	{	
		sql += temp;
		f.getline(temp,10000);
		
	}

	int nRet = ::sqlite3_exec(m_pDB, sql.c_str(), 0, 0, NULL);
	if (SQLITE_OK == nRet)
	{
		return 0;
	}

	return -1;
}

//////////////////////////////////////////////////////////////////////////
SQLiteDB::~SQLiteDB()
{
	//如果數據庫沒有關閉,就將其關閉
	if(m_bOpenflag)
	{
		this->CloseDB();
	}
}

NAMESPACE_SQLITE_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91色九色蝌蚪| 国产精品视频在线看| 久久精品亚洲一区二区三区浴池| 国产精品传媒入口麻豆| 日韩成人精品视频| 91麻豆123| 国产精品美女www爽爽爽| 美腿丝袜亚洲综合| 一本一道综合狠狠老| 久久久国际精品| 免费成人在线网站| 欧美午夜一区二区| 国产精品第四页| 777xxx欧美| 一区二区三区四区在线| 国产91综合网| 欧美精品一区二区在线播放| 日一区二区三区| 欧美色倩网站大全免费| 国产精品不卡在线观看| 国产精品香蕉一区二区三区| 91麻豆精品91久久久久同性| 亚洲一区二区三区四区五区中文| 成人精品国产免费网站| 国产欧美日韩另类一区| 国产精品中文有码| www一区二区| 国内不卡的二区三区中文字幕| 制服.丝袜.亚洲.另类.中文| 亚洲1区2区3区视频| 欧美日韩一区成人| 亚洲成人手机在线| 欧美久久高跟鞋激| 日韩va欧美va亚洲va久久| 欧美日韩一区不卡| 日韩精品免费专区| 欧美精品粉嫩高潮一区二区| 婷婷开心激情综合| 日韩精品一区二区三区视频 | 91老师国产黑色丝袜在线| 国产欧美一区二区在线观看| 国产成人精品www牛牛影视| 久久久www免费人成精品| 国产xxx精品视频大全| 国产精品久久综合| 一本到高清视频免费精品| 一区二区三区四区亚洲| 欧美美女网站色| 久久精品国产免费| 国产午夜精品理论片a级大结局| 成人免费观看视频| 亚洲在线视频网站| 欧美一区二区私人影院日本| 国产一区二区三区蝌蚪| 亚洲视频综合在线| 欧美日韩国产影片| 国产精品综合二区| 综合激情网...| 91精品久久久久久久99蜜桃| 国产乱子伦视频一区二区三区| 国产精品丝袜黑色高跟| 欧美日韩一区二区在线观看 | 一区二区三区精品视频在线| 欧美高清你懂得| 国产麻豆成人精品| 亚洲伦在线观看| 91麻豆精品91久久久久同性| 国产大陆精品国产| 午夜视频在线观看一区二区三区 | 精品国产污网站| 丁香天五香天堂综合| 亚洲国产精品自拍| 国产亚洲精品超碰| 欧美电影一区二区| 国产v综合v亚洲欧| 日韩不卡在线观看日韩不卡视频| 国产欧美一区二区三区鸳鸯浴| 欧美唯美清纯偷拍| 成人深夜福利app| 经典一区二区三区| 亚洲精品乱码久久久久久| 精品欧美一区二区久久| 欧洲人成人精品| 成人少妇影院yyyy| 精品一区二区三区日韩| 亚洲电影你懂得| 1000精品久久久久久久久| 精品捆绑美女sm三区| 欧美性三三影院| 99久久国产综合精品女不卡| 国产在线视频精品一区| 日韩黄色一级片| 一区二区三区在线观看网站| 国产免费久久精品| 久久视频一区二区| 91精品国产品国语在线不卡| 91美女视频网站| 成人综合在线视频| 国产精品一区专区| 精品一区二区日韩| 蜜臀久久99精品久久久久久9| 亚洲黄色免费网站| 亚洲免费电影在线| 亚洲欧美日韩一区二区 | 国产成人h网站| 久久99国产精品久久| 婷婷激情综合网| 亚洲电影你懂得| 性做久久久久久| 亚洲国产中文字幕在线视频综合| 亚洲蜜臀av乱码久久精品蜜桃| 欧美极品xxx| 国产精品美女视频| 中文字幕亚洲精品在线观看| 国产精品欧美综合在线| 国产欧美久久久精品影院| 久久亚洲综合色| 26uuu久久天堂性欧美| 精品国产自在久精品国产| 日韩免费高清视频| 久久网这里都是精品| 国产欧美一区二区三区网站| 久久精品视频网| 国产精品国产自产拍高清av王其 | 国产亚洲精品免费| 国产日韩成人精品| 日本色综合中文字幕| 捆绑变态av一区二区三区| 精油按摩中文字幕久久| 韩国v欧美v日本v亚洲v| 国产成人免费视| 91麻豆精品秘密| 欧美人动与zoxxxx乱| 日韩片之四级片| 国产三级久久久| 亚洲免费伊人电影| 亚洲成av人片www| 精品伊人久久久久7777人| 成人在线视频一区二区| 色婷婷av一区| 欧美一区永久视频免费观看| 久久综合色婷婷| 亚洲美女在线一区| 美女在线观看视频一区二区| 国产福利精品一区二区| 色综合久久九月婷婷色综合| 538prom精品视频线放| 久久午夜色播影院免费高清 | 91免费国产视频网站| 欧美日韩日日骚| 久久夜色精品国产噜噜av | 91国产成人在线| 日韩欧美精品在线视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品人在线二区三区| 中文在线一区二区| 亚洲高清免费一级二级三级| 国产在线精品免费| 一本一本大道香蕉久在线精品| 在线91免费看| 国产精品理论在线观看| 蜜臀国产一区二区三区在线播放| 成人午夜电影小说| 91精品久久久久久久久99蜜臂| 中文字幕在线观看一区二区| 免费成人美女在线观看.| 99久久精品情趣| 精品久久久久久无| 亚洲成av人片在线观看无码| 国产激情精品久久久第一区二区| 欧美日韩你懂得| 最新国产精品久久精品| 九九视频精品免费| 欧美怡红院视频| 中文字幕视频一区二区三区久| 蜜桃久久精品一区二区| 欧洲亚洲精品在线| 国产精品无遮挡| 国产呦精品一区二区三区网站| 欧美日韩电影一区| 樱桃视频在线观看一区| 国产成人精品亚洲777人妖 | 麻豆国产欧美日韩综合精品二区| 色婷婷综合久色| 日韩一区在线播放| 欧美肥胖老妇做爰| 亚洲国产一区在线观看| 91丨porny丨国产| 国产精品不卡一区二区三区| 国产老女人精品毛片久久| 日韩免费高清视频| 美女一区二区三区| 日韩一级片在线播放| 青椒成人免费视频| 日韩一区二区三区免费看| 天天色综合天天| 欧美日韩1区2区| 日韩精品视频网| 精品日韩成人av| 国产一区三区三区|