#include "sqliteutil.h" #include "../../sqlite3/sqlite3.h" #include #include #include #include #include #include "GlobalSetting.h" #include #include #include #include sqlite3* pDB; sqlite3* pDB_login; sqlite3* pDB_nework; SqliteUtil::SqliteUtil() { isConfigFileOk = false; isHistroyConfigFileOk = false; } void SqliteUtil::connectSqlDB() { int res = sqlite3_open(QString("config/%1.db").arg(1).toLocal8Bit().data(), &pDB); if(res){ sqlite3_close(pDB); } sqlite3_key(pDB, "YOUAREBOSH201502021609", 22); } void SqliteUtil::connectSqlDBLogin() { int res = sqlite3_open("config/list.db", &pDB_login); if(res){ sqlite3_close(pDB_login); } sqlite3_key(pDB_login, "ISHOW20160222", 22); QFile filename("config/nw.db"); bool isF = filename.exists(); res = sqlite3_open("config/nw.db", &pDB_nework); if(res){ sqlite3_close(pDB_nework); } sqlite3_key(pDB_nework, "ISHOW20160222", 22); } int SqliteUtil::createTable() { QStringList sqls; return 0; } void SqliteUtil::writeTablesData(int datatype,int roomId) { switch (datatype) { case 0: { QStringList sqls; sqls << "CREATE TABLE If Not Exists UserInfo(headurl text, userid text, umoney text, uscore text, unickname text, usersex text, cidiograph text, lockmachine text, cguid text);"; sqls << "delete from UserInfo;"; QString sql2 = QString("INSERT INTO UserInfo(headurl, unickname, userid, umoney, uscore, usersex, cidiograph, lockmachine)VALUES('%1', '%2', '%3', '%4', '%5', '%6', '%7', '%8' );"); sqls << sql2; insertsql(sqls, 1); } break; default: break; } } int SqliteUtil::execSql(QString sql, int type) { sqlite3* pDB_temp = pDB; if(type == 1) { pDB_temp = pDB_login; } else if(type == 2) { pDB_temp = pDB_nework; } char* errMsg; int res = sqlite3_exec(pDB_temp,sql.toStdString().c_str(),0,0, &errMsg); if (res != SQLITE_OK) { qDebug() << "执行SQL 出错." << errMsg << sql << res ; return -1; } return 0; } int SqliteUtil::insertsql(QStringList sqls,int type) { sqlite3* pDB_temp = pDB; if(type == 1) { pDB_temp = pDB_login; } else if(type == 2) { pDB_temp = pDB_nework; } char* errMsg; int res = sqlite3_exec(pDB_temp, "begin transaction;", 0, 0, &errMsg); int errorcount = 0; for(int i=0;i= 17) { int startindex = newids.lastIndexOf("#@#@#"); newids = newids.mid(0, startindex); } value = newids; } settings.setValue(key, value); settings.endGroup(); } //用户ID作为文件名 void SqliteUtil::writeConfigValue(QString key, QString value, QString userIdFlag) { QString filename = QCoreApplication::applicationDirPath() + QString("/config/%1.ini").arg(userIdFlag); QSettings settings(filename, QSettings::IniFormat); QDir my_dir; QFileInfo my_info(filename); if (!my_dir.exists(my_info.absoluteDir().path())) { my_dir.mkpath(my_info.absoluteDir().path()); } settings.beginGroup("VALUES"); settings.setValue(key, value); settings.endGroup(); } //用户ID相关的 QString SqliteUtil::readConfigValue(QString key, QString userIdFlag) {/* static QMutex mutex; QMutexLocker locker(&mutex);*/ QString filename = QCoreApplication::applicationDirPath()+QString("/config/%1.ini").arg(userIdFlag); QDir my_dir; QFileInfo my_info(filename); if(!my_dir.exists(my_info.absoluteDir().path())) { my_dir.mkpath(my_info.absoluteDir().path()); } QSettings settings(filename, QSettings::IniFormat); // 当前目录的INI文件 QTextCodec *code = QTextCodec::codecForName("utf-8"); if(code == NULL) { code = QTextCodec::codecForLocale(); } settings.setIniCodec(code); settings.beginGroup("VALUES"); QString value = settings.value(key).toString(); settings.endGroup(); return value; } QString SqliteUtil::readHistory(QString key) { QSettings settings(SRVHISTORY_FILE, QSettings::IniFormat); // 当前目录的INI文件 settings.beginGroup("VALUES"); QString ids = settings.value(key).toString(); settings.endGroup(); return ids; } void SqliteUtil::readTablesData(int datatype, int roomId) { switch (datatype) { case 0: { char* errMsg; QString strSQL= "SELECT * FROM UserInfo;"; int res = sqlite3_exec(pDB_login,strSQL.toStdString().c_str(),callback_UserInfo,0, &errMsg); if (res != SQLITE_OK) { qDebug() << "执行SQL 出错." << errMsg ; } } break; default: break; } } int SqliteUtil::callback_UserInfo(void *NotUsed, int argc, char **argv, char **azColName) { //qDebug() << "SqliteUtil::callback_UserInfo" << NotUsed << argc; char temp[65]; memset(temp, 0, sizeof(temp)); // strcpy(_GlobalSetting.responseM->headurl, argv[0]); // strcpy(_GlobalSetting.responseM->unickname, argv[1]); // _GlobalSetting.responseM->userid = QString(argv[2]).toLongLong(); // _GlobalSetting.responseM->umoney = QString(argv[3]).toLongLong(); // _GlobalSetting.responseM->uscore = QString(argv[4]).toLongLong(); // _GlobalSetting.responseM->usersex = (char)QString(argv[5]).toLocal8Bit().data(); // strcpy(_GlobalSetting.responseM->cidiograph, argv[6]); // _GlobalSetting.responseM->lockmachine = QString(argv[7]).toInt(); //qDebug() << _GlobalSetting.responseM->headurl; return 0; }