当前位置: 首页 > article >正文

qt6 使用QPSQL

检查可用的数据库驱动:

    // iteator all database driver
    QStringList drivers = QSqlDatabase::drivers();
    QStringList::iterator it;
    for (it = drivers.begin(); it != drivers.end(); ++it)
    {
        qDebug() << *it;
    }

qt6 自带pg数据库驱动:

pro文件加个说明:

引用位置添加(按需添加,这里我就大致加一下):

 test code: 理想情况当然是要用pool,这里只是演示调用而已

QSqlError DbTool::testConnection(const QString &driver, const QString &dbName, const QString &host, const QString &user, const QString &passwd, int port)
{
    // 为每个连接创建一个唯一的标识符
    static int cCount = 0;

    // 存储数据库连接的错误信息
    QSqlError err;

    // 添加数据库连接并设置连接参数
     db = QSqlDatabase::addDatabase(driver, QString("myChat%1").arg(++cCount));
    db.setDatabaseName(dbName);
    db.setHostName(host);
    db.setPort(port);

    // 尝试打开数据库连接
    if (!db.open(user, passwd)) {
        // 如果打开失败,获取错误信息并移除数据库连接
        err = db.lastError();
        db = QSqlDatabase();
        QSqlDatabase::removeDatabase(QString("mychat%1").arg(cCount));
    }else{
        // QMessageBox::information(0, QObject::tr("Database Information"),
        //     "Database is connected successfully");
        qDebug() << "Database is connected successfully";
        //query table sys_doctors
        QSqlQuery query(db);
        bool b=query.exec("SELECT user_name FROM sys_doctors");
        if (b)
        {
            qDebug() << "query success";
        }
        else
        {
            qDebug() << "query failed";
        }
        while (query.next())
        {
            QString name = query.value(0).toString();
            qDebug() << name;
        }

        db.close();  

    }

    // 返回数据库连接的错误信息(如果有)
    return err;
}

调用代码:

    QSqlError err = dbtool->testConnection("QPSQL", "myChat", "localhost", "postgres", "1", 5432);
    if (err.type() != QSqlError::NoError)
    {
        qDebug() << err.text();


    }
    else
    {
        qDebug() << "Database is connected successfully";

    }


http://www.kler.cn/a/324521.html

相关文章:

  • redis和mongodb等对比分析
  • 网络基础(4)传输层
  • vue3 element el-table实现表格动态增加/删除/编辑表格行,带有校验规则
  • 什么是PostgreSQL,有什么特点
  • 网盘聚合搜索项目Aipan(爱盼)
  • springboot实现简单的数据查询接口(无实体类)
  • 【k8s】:DevOps 模式详解
  • 物联网系统中模拟温度传感器测温方案
  • 设计模式之享元(Flyweight)模式
  • 设计模式小记:构造器
  • QT九月28日
  • 阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
  • 量化金融中的 AI 革命:LLMs 如何重新定义交易策略
  • .NET 开源的功能强大的人脸识别 API
  • 博客摘录「 GD32的flash读、擦除、写操作」2024年9月2日
  • 前端问答:JavaScript 中的??和|| 有啥不同
  • 小程序电量
  • 阿布量化:基于 Python 的量化交易框架
  • 德克威尔FS系列一体式PROFINET协议模块组态步骤
  • 文件和目录
  • YOLOv8最新改进2023 CVPR 结合BiFormer
  • 【Java-JVM】
  • Vue之axios请求
  • 性能优化-数据库索引优化实战指南
  • 【Flume Kafaka实战】Using Kafka with Flume
  • ISA Server配置https踩坑全过程