最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

QT5連接MySQL實(shí)現(xiàn)增刪改查

 更新時(shí)間:2022年12月28日 09:50:46   作者:音視頻開發(fā)老舅  
這篇文章主要為大家詳細(xì)介紹了QT5如何連接MySQL實(shí)現(xiàn)增刪改查功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下

實(shí)現(xiàn)代碼

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#include 
#include 
#include 
 
const char *kDbType = "QMYSQL";      // 數(shù)據(jù)庫類型
const QString& kHost = "127.0.0.1";  // 數(shù)據(jù)庫的ipd地址
const int kPort = 3306;              // 數(shù)據(jù)庫端口號(hào)
const QString& kUsername = "root";   // 數(shù)據(jù)庫賬號(hào)
const QString& kPassword = "123456"; // 數(shù)據(jù)庫密碼
//const QString& dbname = "test";    // 數(shù)據(jù)庫名
 
class DBSql{
 
private:
    QSqlDatabase db;    // 數(shù)據(jù)庫操作對象
    QSqlQuery query;
    QSqlError error;    // SQLError對象
    bool flag;          // 判斷函數(shù)是否執(zhí)行
    bool DBInit(){
        db = QSqlDatabase::addDatabase(kDbType);
        db.setHostName(kHost);
        db.setPort(kPort);
        db.setUserName(kUsername);
        db.setPassword(kPassword);
        QString sqlname = "數(shù)據(jù)庫連接";
        flag = db.open();
        sqlerror(flag,query,NULL,sqlname);
        return flag;
    }
    void sqlerror(bool flag,QSqlQuery query,QString sql,QString sqlname){
        if(flag){
            qDebug() << sqlname+"成功!" << sql;
        }else{
            error = query.lastError();
            qDebug() << sqlname+"失??!" << sql << error.driverText() << error.databaseText();
        }
    }
public:
 
    // 構(gòu)造函數(shù),初始化數(shù)據(jù)庫連接
    DBSql(){
        this->DBInit();
    }
    // 設(shè)置數(shù)據(jù)庫名
    void setDatabase(const QString& dbname){
        db.setDatabaseName(dbname);
        db.open();
    }
    // 查詢表字段數(shù)
    int sqlRecord(const QString& sql){
        QSqlQuery query(sql);
        QSqlRecord record = query.record();
        int const n = record.count();
        qDebug()<<"查詢的字段總數(shù):"<< n;
        return n;
    }
    // 查詢結(jié)果總數(shù)
    int sqlTotal(const QString& sql){
        QSqlQuery query(sql);
        return query.size();
    }
    // 根據(jù)sql返回查詢結(jié)果
    QString sqlQueryValue(const QString& sql){
        QSqlQuery query(db);
        flag = query.exec(sql);
        if(flag && query.next()){
            return query.value(0).toString();
        }else{
            sqlerror(false,query,sql,"返回查詢結(jié)果失敗");
            return NULL;
        }
    }
    // 增加記錄
    bool sqlInsert(const QString& sql){
        QSqlQuery query(db);
        flag = query.exec(sql);
        sqlerror(flag,query,sql,"增加記錄");
        return flag;
    }
    // 刪除記錄
    bool sqlDelete(const QString& sql){
        QSqlQuery query(db);
        flag = query.exec(sql);
        sqlerror(flag,query,sql,"刪除記錄");
        return flag;
    }
    // 查詢記錄
    list* sqlQuery1(const QString& sql){
        db.open();
        QSqlQuery query(db);
        query.exec(sql);
        const int count = query.record().count();
        const int total = query.size();
        cout<<"The number of fileds to query: "<* dot;
        int *in;
        dot = new list;
        int i = 0;
        while(query.next()){
            int j = 0;
            in = new int[4];
            while(jpush_back(in);
        sqlerror(flag,query,sql,"查詢記錄");
        return dot;
        }
    }
 
    int(*f(const QString& sql,const int total))[4]{
        db.open();
        QSqlQuery query(db);
        query.exec(sql);
        const int count = query.record().count();
        cout<<"The number of fileds to query: "<* li;
//    li = dbsql.sqlQuery1(sqlquery);
//    qDebug()<size();
//    list::iterator iterator;
//    for(iterator=li->begin();iterator!=li->end();++iterator){
//        cout<<*iterator<

運(yùn)行結(jié)果

測試數(shù)據(jù)

/*
 Navicat Premium Data Transfer
 Source Server         : localhost_3306
 Source Server Type    : MySQL
 Source Server Version : 50556
 Source Host           : localhost:3306
 Source Schema         : test
 Target Server Type    : MySQL
 Target Server Version : 50556
 File Encoding         : 65001
 Date: 23/03/2020 12:09:27
*/
 
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
 
-- ----------------------------
-- Table structure for xy
-- ----------------------------
DROP TABLE IF EXISTS `xy`;
CREATE TABLE `xy`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `x1` int(255) NULL DEFAULT NULL,
  `y1` int(255) NULL DEFAULT NULL,
  `x2` int(255) NULL DEFAULT NULL,
  `y2` int(255) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
 
-- ----------------------------
-- Records of xy
-- ----------------------------
INSERT INTO `xy` VALUES (1, 1, 12, 3, 4);
INSERT INTO `xy` VALUES (2, 5, 6, 7, 8);
INSERT INTO `xy` VALUES (3, 9, 10, 11, 12);
INSERT INTO `xy` VALUES (7, 13, 14, 15, 16);
INSERT INTO `xy` VALUES (8, 17, 18, 19, 20);
INSERT INTO `xy` VALUES (9, 21, 22, 23, 24);
 
SET FOREIGN_KEY_CHECKS = 1;

到此這篇關(guān)于QT5連接MySQL實(shí)現(xiàn)增刪改查的文章就介紹到這了,更多相關(guān)QT5 MySQL增刪改查內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中new和delete的介紹

    C++中new和delete的介紹

    今天小編就為大家分享一篇關(guān)于C++中new和delete的介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • static全局變量與普通的全局變量的區(qū)別詳細(xì)解析

    static全局變量與普通的全局變量的區(qū)別詳細(xì)解析

    以下是對static全局變量與普通的全局變量的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-09-09
  • C++ STL入門教程(7) multimap、multiset的使用

    C++ STL入門教程(7) multimap、multiset的使用

    這篇文章主要介紹了C++ STL入門教程第七篇,multimap一對多索引,multiset多元集合的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • OpenCV圖像特征提取之Shi-Tomasi角點(diǎn)檢測算法詳解

    OpenCV圖像特征提取之Shi-Tomasi角點(diǎn)檢測算法詳解

    Harris角點(diǎn)檢測算法就是對角點(diǎn)響應(yīng)函數(shù)R進(jìn)行閾值處理,Shi-Tomasi原理幾乎和Harris一樣的,只不過最后計(jì)算角點(diǎn)響應(yīng)的公式發(fā)生了變化。本文將和大家詳細(xì)說說Shi-Tomasi角點(diǎn)檢測算法的原理與實(shí)現(xiàn),需要的可以參考一下
    2022-09-09
  • C++求兩數(shù)之和并返回下標(biāo)詳解

    C++求兩數(shù)之和并返回下標(biāo)詳解

    這篇文章主要介紹了C++求兩數(shù)之和并返回下標(biāo)題目的代碼詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言實(shí)現(xiàn)電腦關(guān)機(jī)程序

    C語言實(shí)現(xiàn)電腦關(guān)機(jī)程序

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)電腦關(guān)機(jī)程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C++實(shí)現(xiàn)簡單推箱子小游戲

    C++實(shí)現(xiàn)簡單推箱子小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單推箱子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C++獲取項(xiàng)目路徑的兩種方式詳解

    C++獲取項(xiàng)目路徑的兩種方式詳解

    這篇文章主要介紹了C++獲取項(xiàng)目路徑的兩種方式的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • C++中對象的常引用總結(jié)

    C++中對象的常引用總結(jié)

    以下是對C++中對象的常引用進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • 結(jié)構(gòu)體類型數(shù)據(jù)作為函數(shù)參數(shù)(三種方法)

    結(jié)構(gòu)體類型數(shù)據(jù)作為函數(shù)參數(shù)(三種方法)

    將一個(gè)結(jié)構(gòu)體中變量中的數(shù)據(jù)傳遞給另一個(gè)函數(shù),有以下三種方法。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10

最新評論

克什克腾旗| 林州市| 南涧| 和田县| 合江县| 景洪市| 察雅县| 镇宁| 兴宁市| 沽源县| 宿州市| 呼玛县| 平远县| 上犹县| 金阳县| 廊坊市| 教育| 邯郸县| 五大连池市| 四川省| 广东省| 麻栗坡县| 庆阳市| 青海省| 林甸县| 汾阳市| 富顺县| 多伦县| 麻栗坡县| 肇东市| SHOW| 北海市| 纳雍县| 西丰县| 阳泉市| 边坝县| 肇东市| 武义县| 景泰县| 达孜县| 读书|