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外鍵寫入



分享到:


相關文章: