qt操作带密码的sqlite数据库

#ifndef SQLITE_DB_H
#define SQLITE_DB_H
#include <string>
using namespace std;
#include <QString>
#include <QObject>
#include <QtSql/QSqlDatabase>
#include <QVariant>
#include <QtSql/QSqlQuery>

extern "C" {
#include <sqlite/sqlite3.h>

}

class Sqlite_DB : public QObject
{
	Q_OBJECT

public:
	Sqlite_DB(QObject *parent = 0);
	~Sqlite_DB();
	void sql_db_open();
	void db_close();
	//建表
	void db_createtable();
	void db_initdata();
	//查询登录用户在数据库中是否存在
	bool db_is_usr_exist(const QString &account, const QString &psd = QString());

	//oprecord
	bool db_insert_oprecord(const QString& OpType, const  QString& OpObject, const QString& OpResult, const QString& OpOperator);

protected:
	//系统temp路径
	std::string System_temp_path;
	//错误文件路径
	std::string log_path = "./log/";
 
private:
	sqlite3* conn;
};

#endif // SQLITE_DB_H
#include "sqlite_db.h"
#include "PublicFunction.h"
#include <QDir>
#include <QVector>
#include <QDebug>
#include <QUuid>
Sqlite_DB::Sqlite_DB(QObject *parent)
	: QObject(parent)
{
	 
	if (!getSystemTempPath(System_temp_path))
	{
		log_path = System_temp_path + "\\FontDetect\\log\\";
		std::string RG_path = System_temp_path + "\\FontDetect\\report\\";
		FilePathCheck(RG_path); //检查文件路径,保证存在
	}
	else
	{
		FilePathCheck(log_path);
	}
 
}

Sqlite_DB::~Sqlite_DB()
{

}
void Sqlite_DB::sql_db_open()
{
	 
	QString path = QDir::currentPath() + "/sufeiSQLite.db";

	 

	int result = sqlite3_open(ws2s(path.toStdWString()).c_str(), &conn);
 	if (result != SQLITE_OK)
	{
		sqlite3_close(conn);
		return;
	}
//	sqlite3_key(conn, "1q2w3e4r", 8);
	sqlite3_key(conn, "1q2w3e4r", 8);
	sqlite3_rekey(conn, "1q2w3e4r", 8);
}
void Sqlite_DB::db_close()
{
	sqlite3_close(conn);
	conn = NULL;
}

void Sqlite_DB::db_createtable()
{
	char **zErrMsg = NULL;
	QString sql = "CREATE TABLE SYS_UserInfo ("
		" id varchar(64) NOT NULL,"
		" UserID varchar(255),"
		" UserName varchar(200),"
		" Password varchar(200),"
		" RealName varchar(200),"
		" RoleID varchar(36),"
		" PRIMARY KEY (id));";
	int nResult = sqlite3_exec(conn, ws2s(sql.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		//   qDebug() << "SQL = " << qstring2char(sql) << endl;
#endif

		sqlite3_free(zErrMsg);
	}

	QString sql2 = "CREATE TABLE User_Func ("
		" id varchar(64) NOT NULL,"
		" UserName varchar(200),"
		" MarkName varchar(200),"
		"PRIMARY KEY (id));";
	int nResult2 = sqlite3_exec(conn, ws2s(sql2.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult2 != SQLITE_OK)
	{
		sqlite3_free(zErrMsg);
	}

	QString sql3 = "CREATE TABLE OprLog ("
		" id varchar(64) NOT NULL,"
		" OpType varchar(200),"
		" OpObject varchar(200),"
		" OpResult varchar(200),"
		" OpTime DATETIME(36),"
		" OpOperator varchar(200),"

		"PRIMARY KEY (id));";
	int nResult3 = sqlite3_exec(conn, ws2s(sql3.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult3 != SQLITE_OK)
	{
		sqlite3_free(zErrMsg);
	}

}

void Sqlite_DB::db_initdata()
{
	char **zErrMsg = NULL;
	QString insertsql = "INSERT INTO SYS_UserInfo(id,UserID, UserName, Password,RealName,RoleID) VALUES ('1','123','lyd','123','liyaodong','1');";
	int nResult = sqlite3_exec(conn, ws2s(insertsql.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}

	QString insertsql2 = "INSERT INTO SYS_UserInfo(id,UserID, UserName, Password,RealName,RoleID) VALUES ('2','123','sysadmin','123','sysadmin','1');";
	int nResult2 = sqlite3_exec(conn, ws2s(insertsql2.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult2 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql2.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}
	//secadmin
	QString insertsql3 = "INSERT INTO SYS_UserInfo(id,UserID, UserName, Password,RealName,RoleID) VALUES ('3','123','secadmin','123','secadmin','2');";
	int nResult3 = sqlite3_exec(conn, ws2s(insertsql3.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult3 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql3.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}

	QString insertsql4 = "INSERT INTO SYS_UserInfo(id,UserID, UserName, Password,RealName,RoleID) VALUES ('4','123','audadmin','123','audadmin','3');";
	int nResult4 = sqlite3_exec(conn, ws2s(insertsql4.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult4 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql4.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}
	QString insertsql5 = "INSERT INTO SYS_UserInfo(id,UserID, UserName, Password,RealName,RoleID) VALUES ('5','123','print','123','print','4');";
	int nResult5 = sqlite3_exec(conn, ws2s(insertsql5.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult5 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql5.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}

	QString insertsql6 = "INSERT INTO SYS_UserInfo(id,UserID, UserName, Password,RealName,RoleID) VALUES ('6','123','detect','123','detect','0');";
	int nResult6 = sqlite3_exec(conn, ws2s(insertsql6.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult6 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql6.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}

	//User_Func

	QString insertsql7 = "INSERT INTO User_Func(id,UserName,MarkName) VALUES ('1','sysadmin','OneInspect');";
	int nResult7 = sqlite3_exec(conn, ws2s(insertsql7.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult7 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql7.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}

	QString insertsql8 = "INSERT INTO User_Func(id,UserName,MarkName) VALUES ('2','sysadmin','TwoInspect');";
	int nResult8 = sqlite3_exec(conn, ws2s(insertsql8.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult8 != SQLITE_OK)
	{
		sqlite3_free(zErrMsg);
	}
	QString insertsql9 = "INSERT INTO User_Func(id,UserName,MarkName) VALUES ('3','sysadmin','ThreeInspect');";
	int nResult9 = sqlite3_exec(conn, ws2s(insertsql9.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult9 != SQLITE_OK)
	{


		sqlite3_free(zErrMsg);
	}

	QString insertsql10 = "INSERT INTO User_Func(id,UserName,MarkName) VALUES ('4','secadmin','TwoInspect');";
	int nResult10 = sqlite3_exec(conn, ws2s(insertsql10.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult10 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql10.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}

	QString insertsql11 = "INSERT INTO User_Func(id,UserName,MarkName) VALUES ('5','audadmin','OneInspect');";
	int nResult11 = sqlite3_exec(conn, ws2s(insertsql11.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult11 != SQLITE_OK)
	{
#ifndef CODE_DEBUG
		qDebug() << "SQL = " << ws2s(insertsql11.toStdWString()).c_str() << endl;
#endif

		sqlite3_free(zErrMsg);
	}


}
bool Sqlite_DB::db_insert_oprecord(const QString& OpType, const  QString& OpObject, const QString& OpResult, const QString& OpOperator)
{
	char **zErrMsg = NULL;
	QString id = QUuid::createUuid().toString();
	QString sql = QString("INSERT INTO OprLog(id,OpType,OpObject,OpResult,OpTime,OpOperator)"
		"VALUES('%1','%2','%3','%4',DATETIME('now','localtime'),'%5')"
		).arg(id).arg(OpType).arg(OpObject).arg(OpResult).arg(OpOperator);
	qDebug() << sql;
	int nResult = sqlite3_exec(conn, ws2s(sql.toStdWString()).c_str(), NULL, NULL, zErrMsg);
	if (nResult != SQLITE_OK)
	{
		return false;
	}
	return true;
}


bool Sqlite_DB::db_is_usr_exist(const QString &account, const QString &psd)
{
	int row = 0, col = 0;
	char **result;
	char *zErrMsg = NULL;

	QString sql;
	if (psd.isEmpty() || account.isEmpty())
	{
		return false;
	}
	else
	{
		sql = QString::fromUtf8("SELECT COUNT(*) FROM SYS_UserInfo WHERE UserName='%1' AND Password='%2'").arg(account).arg(psd);
	}
	int rc = sqlite3_get_table(conn, ws2s(sql.toStdWString()).c_str(), &result, &row, &col, &zErrMsg);
	if (rc != SQLITE_OK)
	{
		/// QMessageBox::warning(this,"警告", "查询用户失败!");
	}

	if (QString::fromUtf8(result[col]).toInt() > 0)
	{
		return true;
	}
	sqlite3_free_table(result);
	return false;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值