Qt学习之sqlite外键写入

Qt学习之sqlite外键写入

最终效果展示

Qt sqlite外键写入前言

<code>最近在学习sqlite数据库相关的知识,遇到的问题是:我有一张表例如用户表,其中字段有(id, 用户名,密码,权限),
由于其中权限不定,我想做成可拓展的,如(普通用户,管理员,......)。然后想到的解决办法就是外键,于是利用搜索引擎找到了答案。/<code>

Qt sqlite外键写入关键词

<code>FOREIGN KEY(class_id) REFERENCES pc_class(id))/<code>

Qt sqlite外键写入例子(开启事务写入)

<code>QStringList sqlList << QString("create table users (id INTEGER primary key AUTOINCREMENT,") +
QString("name varchar(16), password varchar(30), power int, FOREIGN KEY(power) REFERENCES user_roles(id));")
// 创建user_roles表
<< QString("create table user_roles (id INTEGER primary key AUTOINCREMENT,") +
QString("name varchar(16), desc varchar(100));");/<code>

Qt sqlite语句执行

<code>Qt sqlite外键写入前言
最近在学习sqlite数据库相关的知识,遇到的问题是:我有一张表例如用户表,其中字段有(id, 用户名,密码,权限),
由于其中权限不定,我想做成可拓展的,如(普通用户,管理员,......)。然后想到的解决办法就是外键,于是利用搜索引擎找到了答案。

Qt sqlite外键写入关键词
FOREIGN KEY(class_id) REFERENCES pc_class(id))
Qt sqlite外键写入例子(开启事务写入)
QStringList sqlList << QString("create table users (id INTEGER primary key AUTOINCREMENT,") +
QString("name varchar(16), password varchar(30), power int, FOREIGN KEY(power) REFERENCES user_roles(id));")
// 创建user_roles表
<< QString("create table user_roles (id INTEGER primary key AUTOINCREMENT,") +
QString("name varchar(16), desc varchar(100));");
Qt sqlite语句执行


// 连接数据库
void DbSqlite::initSqlDatabase(QSqlDatabase & database, QString connName,
\tQString connType, QString dbName, QString dbHost,
\tQString dbPort, QString dbUserName, QString dbPassword) {
\tif (QSqlDatabase::contains(connName)) {
\t\tdatabase = QSqlDatabase::database(connName);
\t} else {
\t\tdatabase = QSqlDatabase::addDatabase(connType);
\t\tdatabase.setDatabaseName(dbName);
\t\tdatabase.setHostName(dbHost);
\t\tdatabase.setPort(QString(dbPort).toInt());
\t\tdatabase.setUserName(dbUserName);
\t\tdatabase.setPassword(dbPassword);
\t}
}

STATUS_CODE DbSqlite::actionSqlCmd(QSqlDatabase & database, QString strSql) {
\tQSqlQuery sqlQuery(database);

\tif (database.open()) {
\t\tif (sqlQuery.exec(strSql)) {
\t\t\treturn STATUS_CODE::ACTION_SUCCESS;
\t\t} else {
\t\t\t// 数据表已存在
\t\t\tLogger::instance().writeSystemLog(QStringLiteral("SQL语句执行失败"));
\t\t\treturn STATUS_CODE::DB_EXEC_ERROR;
\t\t}
\t} else {
\t\treturn STATUS_CODE::DB_NO_OPEN;
\t}
}


Qt sqlite语句执行结果展示









原文地址: https://itzhai.cn/xuexijiaocheng/814.html/<code>
Qt学习之sqlite外键写入

Qt学习之sqlite外键写入



分享到:


相關文章: