QT-sql操作(sqlite数据库文件)

这篇具有很好参考价值的文章主要介绍了QT-sql操作(sqlite数据库文件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

  •  1 #include <QCoreApplication>
     2 #include <QSqlDriver>
     3 #include <QSqlDatabase>
     4 #include <QSqlQuery>
     5 #include <QDebug>
     6 #include <QSqlError>
     7 int main(int argc, char *argv[])
     8 {
     9     QCoreApplication a(argc, argv);
    10     QSqlDatabase DB;
    11     QString strDB = "D:/Source_Collection/Source_12_11/master_bulid/MainWindow/release/par/MasterDB.db";
    12 
    13     if(QSqlDatabase::contains("ParaRange"))
    14     {
    15         DB = QSqlDatabase::database("ParaRange");
    16     }
    17     else
    18     {
    19         DB = QSqlDatabase::addDatabase("SQLITECIPHER","ParaRange");
    20         DB.setDatabaseName(strDB);
    21         DB.setPassword("s7T2e5P2s0T0e4p");
    22     }
    23     if(!DB.open())
    24     {
    25         qDebug()<<"open datebase failed";
    26         qDebug()<<DB.lastError().text();//输出错误信息
    27         return {} ;
    28     }
    29 
    30 #if 1     //** 占位 */
    31     QString userProvidedAddress = "0x" + QString("c02e").toUpper();  // 这个值是用户提供的
    32     //QString userProvidedAddress = "0xC02E";
    33     // 创建 QSqlQuery 对象
    34     QSqlQuery query(DB);
    35 
    36     // 准备 SQL 查询语句,使用 :address 作为占位符
    37     QString sqlQuery = "SELECT PT_Max, PT_Min FROM Range WHERE PT_Address = :address";
    38     query.prepare(sqlQuery);
    39 
    40     // 绑定参数,将用户提供的地址值绑定到占位符上
    41     query.bindValue(":address", QVariant(userProvidedAddress));
    42     // 执行查询
    43     if (query.exec()) {
    44         // 处理查询结果
    45         while (query.next()) {
    46             double ptMax = query.value("PT_Max").toDouble();
    47             double ptMin = query.value("PT_Min").toDouble();
    48 
    49             qDebug() << "PT_Max:" << ptMax << "PT_Min:" << ptMin;
    50         }
    51     } else {
    52         // 查询执行失败
    53         qDebug() << "Query execution failed: " << query.lastError().text();
    54     }
    55     #else
    56     //* 直接写sql */
    57     address = QString("0x%1").arg(address.toUpper());
    58     QSqlQuery query("SELECT PT_Max, PT_Min FROM Range WHERE PT_Address = '" + address + "'",DB);
    59     while (query.next()){
    60         qDebug() << query.value(0).toDouble() << query.value(1).toDouble();
    61     }
    62 #endif
    63 
    64     return a.exec();
    65 }

     

#include <SqlDriver>

如名称,数据库驱动。

1. 驱动信息:

  • hasFeature: 检查驱动是否支持特定功能,如事务、批处理等。
  • isQuerySize: 驱动是否支持 QSqlQuery::size 函数。

2. 数据库连接:

  • openclose: 打开和关闭数据库连接。
  • isOpen: 判断数据库连接是否处于打开状态。
  • commitTransactionrollbackTransaction: 提交和回滚事务。

3. 查询执行:

  • exec: 执行 SQL 查询。
  • lastError: 获取最后一个错误。
  • record: 获取查询结果的字段信息。
  • preparebindValue: 预处理和绑定参数。

4. 元数据查询:

  • recordtablesprimaryIndex: 获取数据库表的元数据信息。
  • isIdentifierEscapedescapeIdentifier: 判断和转义标识符(表名、字段名)。

5. 事务管理:

  • hasFeature(QSqlDriver::Transactions): 检查是否支持事务。
  • commitTransactionrollbackTransaction: 提交和回滚事务。

 

#include <QsqlDataBase> 

提供了一个接口,供开发者能够连接到数据库,并执行sql查询以及管理数据库连接。

1. 数据库连接:

  • 静态方法 addDatabase: 用于添加一个数据库连接。
  • 静态方法 removeDatabase: 用于移除数据库连接。

2. 连接属性:

  • setHostNamesetDatabaseNamesetUserNamesetPassword: 用于设置数据库连接的主机名、数据库名称、用户名和密码。
  • setPort: 设置数据库连接的端口。
  • setConnectOptions: 设置连接选项,比如设置字符集。

3. 连接状态:

  • isOpen: 判断数据库连接是否处于打开状态。
  • openclose: 分别用于打开和关闭数据库连接。

4. 错误处理:

  • lastError: 获取最后一个数据库错误。
  • isValid: 判断数据库连接是否有效。

5. 查询执行:

  • exec: 用于执行 SQL 查询。
  • transactioncommitrollback: 用于事务管理。

6. 驱动相关:

  • driver: 获取数据库连接所使用的驱动。
  • drivers: 获取可用的数据库驱动列表。

7. 信号和槽:

  • connectionNameChanged: 当连接名称改变时发出的信号。
  • commitDataRequest: 当应用程序请求提交数据时发出的信号。

#include <QSqlQuery>

Qt 框架中用于执行 SQL 查询的类,它封装了数据库查询的操作,并提供了一系列方法来处理查询结果。

QSqlQuery 对象通过 QSqlDatabase 对象创建,它用于执行 SQL 语句并处理查询结果。文章来源地址https://www.toymoban.com/news/detail-760185.html

1. 执行 SQL 查询:

  • exec: 执行 SQL 查询语句。

2. 参数绑定:

  • bindValue: 绑定值到 SQL 查询中的参数。
  • addBindValue: 添加一个绑定值到 SQL 查询中。

3. 查询结果处理:

  • next: 移动到查询结果的下一行。
  • previous: 移动到查询结果的上一行。
  • firstlast: 移动到查询结果的第一行和最后一行。
  • seek: 移动到查询结果的指定行。
  • value: 获取当前行指定字段的值。
  • record: 获取查询结果的字段信息。

4. 元数据查询:

  • record: 获取查询结果的字段信息。
  • size: 获取查询结果的行数。

5. 事务支持:

  • isActive: 判断查询是否处于活动状态(在事务中)。
  • isValid: 判断查询是否有效。

6. 批量操作:

  • execBatch: 批量执行一组 SQL 查询。

到了这里,关于QT-sql操作(sqlite数据库文件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • navicat导入sql数据库文件的简单操作步骤

    目录 前言必读 一、概念 二、操作步骤 (一)新建连接  (二)新建数据库 (三)数据库导入sql文件 读者手册(必读)_云边的快乐猫的博客-CSDN博客 在很多项目当中都有sql文件导入到MySQL数据库的需要,因为有sql数据库文件,这个项目才能正常运行起来,那么现在就来学习

    2024年02月03日
    浏览(56)
  • 基于Qt数据库项目实现(Sqlite3为例)|考查数据库、表格(QTableView 显示)(进阶)

    01 数据库表格(QTableView 显示) 本小节设计一个生活中的例子,使用数据库修改/查询员工的编号、姓名、年龄、性别与照片信息。 本例将数据库的内容显示到 QTableView 上。如果只是简单的显示数据库的内容到QTableView 上,可以使用下面的方法,此方法 QTableView 上可以看到

    2024年02月20日
    浏览(50)
  • sqlite3 关系型数据库语言 SQL 语言

            SQL(Structured Query Language)语言是一种结构化查询语言,是一个通用的,功能强大的关系型数据库操作语言. 包含 6 个部分: 1.数据查询语言(DQL:Data Query Language)         从数据库的二维表格中查询数据,保留字 SELECT 是 DQL 中用的最多的语句 2.数据操作语言(DML)       

    2024年02月07日
    浏览(57)
  • Sqlite c++操作数据库中文乱码

    char* Utf2Gb(const char* utf8) {     int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);     wchar_t* wstr = new wchar_t[len + 1];     memset(wstr, 0, len + 1);     MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len);     len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);     char* str = new char[len + 1];     

    2024年02月03日
    浏览(51)
  • 基于Qt数据库项目实现(Sqlite3为例)|考查数据库、绘制(画家)、事件等知识点(进阶)

    坚持最初的梦想,扬帆起航,乘风破浪,永不言败。 01 数据库 数据库是什么?简易言之,就是保存数据的文件。可以存储大量数据,包括插入数据、更新数据、截取数据等。用专业术语来说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计

    2024年02月19日
    浏览(47)
  • SQLite实战系列——如何优雅地操作数据库?

    在上一篇《SQLite学习(一)SQLite介绍、历史和下载启动方式》 中,讲解了 SQLite的历史,和其下载安装的方式,在本篇博客将讲解 SQLite 中,对数据库的操作。 同学们将学习到: SQLite 创建数据库 SQLite 删除数据库/

    2024年02月03日
    浏览(45)
  • SQLITE_BUSY 是指 SQLite 数据库返回的错误码,表示数据库正在被其他进程或线程使用,因此当前操作无法完成。

    当多个进程或线程同时尝试对同一个 SQLite 数据库进行写操作时,就可能出现 SQLITE_BUSY 错误。这是为了确保数据库的数据完整性和一致性而设计的并发控制机制。 如果你在使用 SQLite 时遇到 SQLITE_BUSY 错误,可以考虑以下解决方法: 重试操作:在捕获到 SQLITE_BUSY 错误后,可以

    2024年02月09日
    浏览(49)
  • Python数据库模块sqlite3操作实例(非常实用)

    当使用Python进行SQLite数据库操作时, sqlite3 模块是一个非常常用和强大的工具。它提供了一系列函数和方法,用于创建、连接、查询和管理数据库。下面是一些常见的用法示例:   sqlite-utils 、 sqlitebiter 和其他类似的库可以提供更高级的功能,包括预编译语句的执行优化和数

    2024年02月13日
    浏览(49)
  • 实例讲解C++连接各种数据库,包含SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 数据库

      C++ 是一种通用的编程语言,可以使用不同的库和驱动程序来连接各种数据库。以下是一些示例代码,演示如何使用 C++ 连接 SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 数据库。 连接 SQL Server 数据库 要使用 C++ 连接 SQL Server 数据库,可以使用 Microsoft 的 ADODB 库。以

    2024年02月05日
    浏览(66)
  • 使用Python进行数据库连接与操作SQLite和MySQL【第144篇—SQLite和MySQL】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在现代应用程序开发中,与数据库进行交互是至关重要的一环。Python提供了强大的库来连接和操作各种类型的数据库,其中包括SQLite和MySQL。

    2024年03月27日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包