日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

qt mysql读写_QT读写Sqlite数据库

發布時間:2023/12/19 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt mysql读写_QT读写Sqlite数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QT讀寫Sqlite數據庫

//.h

/****************************************************************************

**

** Date??? : 2010-05-08

** Author? : furtherchan

** If you have any questions , please contact me

**

****************************************************************************/

#ifndef SQLITEDB_H

#define SQLITEDB_H

#include

#include

#include

#include

#include

#include

#include

class SqliteDB : public QObject

{

public:

SqliteDB();

QStringList strListUser;

QStringList strListId;

QStringList strListName;

void connectDB();

void closeDB();

void getUserInfo( QString id );

void updateUserLogStat( QString id, QString stat );

int insertNewUser( QString id, QString password, QString name, QString ip, QString port);

void getUserAllOnline();

void updateUserIp(QString id, QString ip);

private:

QSqlDatabase db;

};

#endif // SQLITEDB_H

//.cpp

/****************************************************************************

**

** Date??? : 2010-05-08

** Author? : furtherchan

** If you have any questions , please contact me

**

****************************************************************************/

#include "sqlitedb.h"

SqliteDB::SqliteDB()

{

}

void SqliteDB::connectDB()

{

db = QSqlDatabase::addDatabase("QSQLITE");

db.setDatabaseName("chat.db");

if ( !db.open())

{

QMessageBox::critical(NULL, "Connect to db...", "Connect failed.");

}

}

void SqliteDB::closeDB()

{

db.close();

}

void SqliteDB::getUserInfo(QString id)

{

this->connectDB();

QSqlQuery? query;

strListUser.clear();

if (!(query.exec("SELECT id, password, name, logstat,ip FROM user")))

{

QMessageBox::critical(NULL, "exec", "Exec failed.");

}

while (query.next())

{

if ( query.value(0).toString() == id )

{

strListUser.append(query.value(0).toString());

strListUser.append(query.value(1).toString());

strListUser.append(query.value(2).toString());

strListUser.append(query.value(3).toString());

strListUser.append(query.value(4).toString());

}

}

this->closeDB();

}

void SqliteDB::updateUserLogStat(QString id, QString stat)

{

this->connectDB();

QSqlQuery? query;

strListUser.clear();

if(!(query.prepare("UPDATE user SET logstat = :stat WHERE id = :id")))

{

QMessageBox::critical(NULL, "prepare", "Prepare failed.");

}

query.bindValue(":id",id);

query.bindValue(":stat",stat);

if(!query.exec())

{

QMessageBox::critical(NULL, "exec", "Exec failed.");

}

this->closeDB();

}

void SqliteDB::updateUserIp(QString id, QString ip)

{

this->connectDB();

QSqlQuery? query;

strListUser.clear();

if(!(query.prepare("UPDATE user SET ip = :ip WHERE id = :id")))

{

QMessageBox::critical(NULL, "prepare", "Prepare failed."+id);

}

query.bindValue(":id",id);

query.bindValue(":ip",ip);

if(!query.exec())

{

QMessageBox::critical(NULL, "exec", "Exec failed.");

}

this->closeDB();

}

void SqliteDB::getUserAllOnline()

{

this->connectDB();

QSqlQuery? query;

strListId.clear();

strListName.clear();

if(!(query.prepare("SELECT id, name FROM user WHERE logstat = :logstat")))

{

QMessageBox::critical(NULL, "prepare", "Prepare failed.");

}

query.bindValue(":logstat","1");

if(!query.exec())

{

QMessageBox::critical(NULL, "exec", "Exec failed.");

}

while (query.next())

{

strListId.append(query.value(0).toString());

strListName.append(query.value(1).toString());

}

this->closeDB();

}

int SqliteDB::insertNewUser( QString id, QString password, QString name, QString ip, QString port)

{

this->connectDB();

QSqlQuery? query;

if (!(query.exec("SELECT id FROM user")))

{

QMessageBox::critical(NULL, "exec", "Exec failed.");

return -1;

}

while (query.next())

{

if ( query.value(0).toString() == id )

{

return 0;

}

}

query.prepare("INSERT INTO user (id, password, name, ip, port, logstat)" "VALUES (:id, :password, :name, :ip, :port, :logstat)");

query.bindValue(":id", id);

query.bindValue(":password", password);

query.bindValue(":name", name);

query.bindValue(":ip", ip);

query.bindValue(":port", port);

query.bindValue(":logstat", "0");

query.exec();

this->closeDB();

return 1;}

總結

以上是生活随笔為你收集整理的qt mysql读写_QT读写Sqlite数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。