精华内容
下载资源
问答
  • 在linux系统写的qt应用程序,想将txt文件导入到我的sqlite数据库,不知道怎么用程序实现,查不到相关资料,一般win可以用ActiveX组件实现,但linux应该怎么实现呢?求大神指点
  • //建立和qt和数据库连接 QSqlQueryModel model;//保存和遍历select结果 }; #endif // SQLITEQTDIALOG_H SqliteQtDialog.cpp #include "SqliteQtDialog.h" #include "ui_SqliteQtDialog.h" ...

     SqliteQtDialog.h

    #ifndef SQLITEQTDIALOG_H
    #define SQLITEQTDIALOG_H
    
    #include <QDialog>
    #include <QSqlDatabase>
    #include <QSqlQuery>
    #include <QSqlError>
    #include <QMessageBox>
    #include <QSqlQueryModel>
    #include <QDebug>
    
    namespace Ui {
    class SqliteQtDialog;
    }
    
    class SqliteQtDialog : public QDialog
    {
        Q_OBJECT
    
    public:
        explicit SqliteQtDialog(QWidget *parent = 0);
        ~SqliteQtDialog();
    
    private slots:
        void on_insertButton_clicked();
        void on_deleteButton_clicked();
        void on_modifyButton_clicked();
        void on_sortButton_clicked();
    private:
        void createDB(void);//创建数据库
        void createTable(void);//创建学生成绩表
        void queryTable(void);//查询数据表
    private:
        Ui::SqliteQtDialog *ui;
        QSqlDatabase db;//建立和qt和数据库连接
        QSqlQueryModel model;//保存和遍历select结果
    
    };
    
    #endif // SQLITEQTDIALOG_H

    SqliteQtDialog.cpp

    #include "SqliteQtDialog.h"
    #include "ui_SqliteQtDialog.h"
    
    SqliteQtDialog::SqliteQtDialog(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::SqliteQtDialog)
    {
        ui->setupUi(this);
        createDB();
        createTable();
        //查询和显示
        queryTable();
    }
    
    SqliteQtDialog::~SqliteQtDialog()
    {
        delete ui;
    }
    void SqliteQtDialog::createDB(void){//创建数据库
        //建立和SQlite数据库连接
        db = QSqlDatabase::addDatabase("QSQLITE");
        //设置数据库文件的名称
        db.setDatabaseName("menu.db");
        //打开数据库
        if(db.open() == false){
            QMessageBox::critical(this,"DataError",
                                  db.lastError().text());
        }
    }
    void SqliteQtDialog::createTable(void){//创建表
        //构建创建表的SQL语句
        QString createSql =
                QString("CREATE TABLE Student(\
                    id INT PRIMARY KEY NOT NULL,\
                    name TEXT NOT NULL,\
                    score REAL NOT NULL)");
         QSqlQuery query;
         query.exec(createSql);
    
    }
    void SqliteQtDialog::queryTable(void){//查询表
        QString str = QString("SELECT * FROM Student");
        model.setQuery(str);
        ui->tableView->setModel(&model);
    }
    void SqliteQtDialog::on_insertButton_clicked()
    {
        QSqlQuery query;
        //获取学号
        int id = ui->idEdit->text().toInt();
        //获取姓名
        QString name(ui->nameEdit->text());
        //获取成绩
        double score = ui->scoreEdit->text().toDouble();
        //构造sql语句
        QString insertSql = QString(
            "INSERT INTO Student VALUES(%1,'%2',%3);"
                    ).arg(id).arg(name).arg(score);
        qDebug() << insertSql;
        //执行sql语句
        query.exec(insertSql);
        query.exec("commit");
        //查询和显示
        queryTable();
    
    
    }
    //删除,通过ID匹配
    void SqliteQtDialog::on_deleteButton_clicked()
    {
        int id = ui->idEdit->text().toInt();
        //构造删除sql语句
        QString deleteSql = QString(
            "DELETE FROM Student WHERE id=%1").arg(id);
        QSqlQuery query;
        query.exec(deleteSql);
        //查询和显示
        queryTable();
    }
    //修改成绩
    void SqliteQtDialog::on_modifyButton_clicked()
    {
        QSqlQuery query;
        int id = ui->idEdit->text().toInt();
        double score = ui->scoreEdit->text().toDouble();
        QString modifySql = QString(
            "UPDATE Student SET score=%1 WHERE id=%2").
                arg(score).arg(id);
        qDebug() << modifySql;
        query.exec(modifySql);
        //查询和显示
        queryTable();
    }
    //排序
    void SqliteQtDialog::on_sortButton_clicked()
    {
        //获取排序关键字
        QString value = ui->ValueComboBox->currentText();
        //获取排序条件
        QString condition;
        if(ui->CondComboBox->currentIndex()){
            condition = "DESC";
        }
        else{
            condition = "ASC";
        }
        QString sortSql = QString(
            "SELECT * FROM Student ORDER BY %1 %2").
                arg(value).arg(condition);
        model.setQuery(sortSql);
        ui->tableView->setModel(&model);
    }
    
    

    SqliteQtDialog.ui

    展开全文
  • 嵌入式Linux基于Qt开发SQLite应用

    千次阅读 2018-03-06 16:19:50
    ByToradex秦海1)....基于上述特性,SQLite非常适合于嵌入式系统实现一个轻量级的数据库管理,本文就展示基于嵌入式LinuxQt GUI开发一个SQLite演示例程。 本文所演示的平台来自于Toradex Col...

    ByToradex秦海

    1). 简介

    SQLite是包含在一个相对很小的C程序库中的关系数据库管理系统,与其他数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序中。基于上述特性,SQLite非常适合于在嵌入式系统中实现一个轻量级的数据库管理,本文就展示基于嵌入式LinuxQt GUI开发一个SQLite演示例程。

    本文所演示的平台来自于Toradex Colibri iMX6 ARM嵌入式平台,这是一个基于NXP iMX6 ARM处理器,支持单核/双核Cortex-A9

    2. 准备

    a). Colibri iMX6 ARM核心版配合ColibriEva Board载板,连接调试串口UART1到开发主机方便调试。

    b). ColibriiMX6系统使用基于OpenEmbedded框架重新编译的集成Qt5.7 base以及Qsqllite支持的Toradex Linux image releaseV27版本以及对应的SDK.这个可以结合这里的说明自己进行编译也可以通过这里直接下载编译好的imageSDK文件,image更新方法请参考这里

    c). 关于开发主机SDK安装和Qtcreator开发环境的配置请参考之前发布的《嵌入式Linux基于Qt开发GPIO应用一文》。

    d). 演示程序使用的LCD10inch 18bit LVDS屏幕,请参考这里修改配置uboot显示分辨率。

    3). QT演示程序开发

    本文演示应用程序思路为,每隔10s读取当前系统时间以及CPU核心温度,并选择可以将数据保存到SQLite数据库中;同时程序可以查看当前数据库的数据条目。

    a). QT GUI 定义,如下所示

    image001.png

    说明如下:

    ./ 上面一组文本框和按键用于显示当前系统的时间和CPU核心温度,每隔10s刷新一次;点击 ”ADD”按键可以将当前显示的数据保存到SQLite数据库中。

    ./ 下面一组文本框和按键用于显示SQLite数据库中的数据条目,”Previous” /  “Next”按键用于查看上一条下一条,”Delete” 按键用于删除当前条目,”Clear” 按键用于清除整个数据库。

    b). SQLite 基本操作子程序

    在工程中创建了 sqliteset.cpp”  “sqliteset.h” 两个文件用于定义一些SQLite数据库的基本操作应用,具体代码如下:

    sqliteset.h - https://github.com/simonqin09/QtSQLiteDemo/blob/master/sqliteset.h

    sqliteset.cpp - https://github.com/simonqin09/QtSQLiteDemo/blob/master/sqliteset.cpp

    主要定义了下面一些函数:

    ---------------------------------------------------

    /* 创建Database */

    QSqlDatabase sql_create();

    /* 关闭database */

    void sql_close(QSqlDatabase DatabaseName);

    /* 创建database 表格 */

    QSqlQuery sql_create_table(QStringsql_table_keys);

    /* 插入数据到表格 */

    int sql_insert_data(QSqlQuery sql_table,QString data_string);

    /* 从表格删除数据 */

    int sql_delete_data(QSqlQuery sql_table,QString delete_string, int id);

    /* 清除整个表格 */

    int sql_clear_table(QSqlQuery sql_table,QString clear_string);

    /* 获取表格当前最大id */

    int sql_select_maxid(QSqlQuery sql_table,QString select_string);

    /* Colibri iMX6 CPU 核心温度读取 */

    QString temp_read();

    ---------------------------------------------------

    c). 主程序

     “mainwindow.h” “mainwindow.cpp” 组成,具体代码如下:

    mainwindow.h - https://github.com/simonqin09/QtSQLiteDemo/blob/master/mainwindow.h

    mainwindow.cpp – https://github.com/simonqin09/QtSQLiteDemo/blob/master/mainwindow.cpp

    说明如下:

    ./ MainWindow 主程序里面主要完成了一些初始化,创建数据库,如果数据库已经存在,则将最后一条数据显示在“Record Data” 部分;另外,设置Timer,每隔10s中获取系统时间和CPU核心温度,并显示到 “Real-timeData”部分。

    ./ “ADD” 按键,点击动作响应,将当前获取的实时数据保存到数据库。

    ./ “Previous” 按键,点击动作响应,显示上一条数据库数据信息,如果已经是第一条则无动作。

    ./ “Next” 按键,点击动作响应,显示下一条数据库数据信息,如果已经是最后一条则无动作。

    ./ “Delete” 按键,点击动作响应,删除当前条目数据,并将次条目后的所有条目id 序号减掉1,保证数据库数据条目id始终是连续的。

    ./ “Clear” 按键,点击动作响应,将整个数据库数据清除。

    ./ 最后还有一个 “data_time_temp_refresh”程序为计时器链接的10s到时的响应程序,对采集数据进行刷新。

    4). SQLite程序部署配置

    a). 将编译好的可执行程序 “qt-sqlite”复制到Colibri iMX6模块“/home/root” 目录下。

    b). 配置SQLite程序开机自启动

    ./ qtdemo_x11.sh,程序启动脚本文件

    https://github.com/simonqin09/QtSQLiteDemo/blob/master/qtdemo_x11.sh

    ---------------------------------------------------

    $ cp qtdemo_x11.sh /usr/bin

    $ chmod +x qtdemo_x11.sh

    ---------------------------------------------------

    ./ qtdemo_launch.servicesystemd自启动配置文件

    https://github.com/simonqin09/QtSQLiteDemo/blob/master/qtdemo_launch.service

    ---------------------------------------------------

    $ cp qtdemo_launch.service /etc/systemd/system/

    $ systemctl enable qtdemo_launch

    ---------------------------------------------------

    5). SQLite 示例程序演示

    a). 开机后,系统自动启动程序,如下所示

    image003.png

    b). 一个演示操作视频请点击这里观看

    6). 总结

    本文基于NXP iMX6嵌入式平台在嵌入式linux系统下测试SQLite数据库应用。

    展开全文
  • sqlite是一个小型的数据库,多用嵌入式系统,一下是我的

        sqlite是一个小型的数据库,多用在嵌入式系统中,以下是我的一个简单的应用。在网上找了好多文章,都不完整,无法在qt窗口上显示,经过多次试验,以下程序通过测试,希望对刚接触sqlite的各位有点帮助。

        qt支持sqlite数据库,首先要在工程文件.pro中加入QT +=  sql,加入头文件#include<QtSql>.

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

    db.setDatabaseName("test");

    if(!db.open())

    {

        qDebug("open error!");

    }

    qDebug("Database operation!");

    QSqlQuery query;

    if(query.exec("CREATE TABLE test_table(id INT PRIMZRY KEY,name VARCHAR)")==false)

    {

        qDebug("Database open error!");

    }

    query.exec("insert into test_table values(0,'yang')");

    query.exec("insert into test_table values(1,'li')");

    query.exec("insert into test_table values(2,'wang')");

    query.exec("insert into test_table values(3,'zhao')");

    query.exec("select * from test_table");

    while(query.next)

    {

        qDebug("Database operation too!");

        int  id = query.value(0).toInt();

        QString name = query.value(1),toString();

        qDebug() << id << name << endl;

    }

    QSqlTableModel *myModel = new QSqlTableModel;

    myModel->setTable("test_table");

    myModel->setHeaderData(0,Qt::Horizontal,tr("id"));

    myModel->setHeaderData(1,Qt::Horizontal,tr("name"));

    QTableView * view = new QTableView;

    view->setWindowTitle("mySqlQueryModel");

    myModel->select();

    view->setModel(myModel);

    view->show();

    以上是个人的实现方法,可以在qt窗口界面上显示数据库创建的表格,有不妥之处还望指出。

    展开全文
  • sqlite应该是成功安装了的,在Linux下使用sqlite在命令行可以操作数据库。但是在QT中打不开数据库,代码如下: QSqlDatabase dbconn=QSqlDatabase::addDatabase("QSQLITE"); dbconn.setDatabaseName("test.db")...
  • 下载 Qt SDK for Linux/X11 32-bit**(422MB) 下载文件为qt-sdk-linux-x86-opensource-2010.05.1.bin 下载完成后下载目录执行chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin <br /> ...

    去http://qt.nokia.com/downloads/downloads 下载

    Qt SDK for  Linux/X11 32-bit**(422MB)

    下载文件为qt-sdk-linux-x86-opensource-2010.05.1.bin

    下载完成后在下载目录中执行

    chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin

    接着执行安装./qt-sdk-linux-x86-opensource-2010.05.1.bin

    在home/username下vi .bashrc 在文件末尾填入一下几行

    export QTDIR=/home/xinghao/qt/qt

    export PATH=$QTDIR/bin:$PATH

    export MANPATH=$QTDIR/doc/man:$MANPATH

    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

    export QMAKESPEC=/home/tm/qt/qt/mkspecs/linux-g++(如果qmake编译时候出现错误:QMAKESPEC has not been set, so configuration cannot be deduced.

    Error processing project file: XXXXX.pro 就加入这一行)



    其中:
    QTDIR 的值为安装qt-sdk-linux-x86-opensource-2010.05.1.bin 的目录
     /home/username即为用户文件夹

    Sqlite 安装相比起来比较简单,直接把压缩包文件解压,然后编译make就可以了。由于是内存型数据库,Sqlite不需要数据库驱动,使用非常方便。
    展开全文
  • Linux下Qt4与SQLite3组合编程5部曲完整篇
  • linuxQt利用sqlite静态编译库

    千次阅读 2011-05-03 15:33:00
    sqlite3编译安装 ------------------------arm版---------------------- 1.从官方网站下载sqlite-autoconf-3070602.tar.gz 2.解压,进入当前目录 3.开始配置,执行命令如下(前提配置好交叉编译环境): ./...
  • 作者:zieckey([email]zieckey@yahoo.com.cn[/email])All Rights Reserved下文介绍的...1. 说明这里我们假设你已经编译好了sqlite的库文件 :libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3.so.0 libsqlite3...
  • 参考:http://www.linuxidc.com/Linux/2011-11/47465.htm sqlite3编译安装 ------------------------arm版---------------------- 1.从官方网站下载sqlite-autoconf-3070602.tar.gz 2.解压,进入当前目录 3....
  • qt中SQLite数据库编程

    千次阅读 多人点赞 2011-08-10 18:07:30
    本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. qt支持轻量级数据库SQLite,接下来测试这个数据库的基本操作 环境:Ubuntu10.04 + Qt4.7.0 要支持数据库编程,首先工程文件增加:QT += sq
  • //打印Qt支持的数据库驱动 qDebug() (); //添加Sqlite数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //设置数据库 db.setDatabaseName("../info.db"); //打开数据库 if( !db.open() ) ...
  • QT+SQLITE代码

    2018-10-23 14:24:23
    QT+SQLITE代码实例,很实用,很多嵌入式项目上都可以使用该份代码。
  • linux下搭建sqlite环境,以及在Qt上访问数据库的类,测试数据库的操作。
  • sqlite3编译安装------------------------arm版----------------------1....开始配置,执行命令如下(前提配置好交叉编译环境):./configure --prefix=/usr/local/sqlite_arm --host=arm-linux4.开...
  • SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成其他软件,非常适合嵌入式系统。 Qt5以上版本可以直接使用SQLiteQt自带驱动)。 用法 1 准备 引入SQL模块 在Qt项目文件(.pro文件),...
  • qt+sqlite

    2018-05-15 09:51:03
    网上查得可以不使用Qt自带的数据库,重新编译一个sqlite3库,然后在Qt中使用这个库就可以了。为了使学习的更为全面,报着认真敲代码的态度,我将这个学习过程以博客的形式写出来。对程序可能出现的问题,尽量...
  • QtSQLite

    2017-07-27 11:30:09
    SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成其他软件,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLiteQt自带驱动)。2.QtSql模块介绍 QtSql模块提供了与平台以及数据库种类无关...
  • 本文基于上一篇Sqlite数据库做一些基本的...1、上文提供了windows下Sqlite数据库的安装方法,本文此增加Linux和Ubuntu下Sqlite的安装: 1)离线安装 //下载安装包 sqlite3_3.7.9-2ubuntu1_i386.deb//ubun...
  • QT在Qt中使用SQLite数据库

    千次阅读 2017-04-04 00:47:02
    在QT中使用数据库 QMYSQL (MySQL) QSQLITE (SQlite 3 ) - QT 自带的数据库 ~/Qt5.4.1/5.4/gcc_64/plugins/sqldrivers // 数据库.so动态库文件 别的数据库可以下载下来,直接拷贝到该目录,就可以直接用了。 ...
  • 这是在linux下做的一个订餐管理系统,数据库使用的是sqlite,基本的功能都实现了,管理权限有总经理,系统管理员,前台管理员,客户,仓库管理员,菜单管理员,基本的订餐,菜单管理,仓库管理的功能都实现了
  • sudo apt-get install sqlite3 安装了...在QT Creator里输入#include <sqlite3.h>会有黄绿色的下划线!编译也不成功! 还有sql = "INSERT INTO \"SensorData\" VALUES();";这语句能不能把变量作为参数?
  • Qt下使用SQLite3

    热门讨论 2012-06-21 09:47:49
    编译环境:QT4.5+qt-creator2.4+arm-linux-gcc 4.3.3 程序是通过在QT槽函数调用SQLite3的API来实现对数据库的数据操作,这里我们默认嵌入式Linux中已经移植类SQLite3,程序中将调用SQLite3的库文件。
  • sqlite qt 实例,linux下ARMGCC4.4.1编译过 (请重新编译) 没有下载分到找我542178150免费给你。。。
  • QT5 使用 SQLITE

    万次阅读 多人点赞 2016-03-14 23:59:04
    我最近一直做的有关 Kindle 批注管理软件的项目,对于数据库我是用的是 SQLITE这篇文章我会介绍一下 SQLITE 数据库,以及如何 QT5 使用它。 SQLITE 简介WHAT IS SQLITESQLite,是一款轻型的数据库...
  • 作者:zieckey([email]zieckey@yahoo.com.cn[/...下文介绍的内容都是基于 Linux RedHat 9.0 平台的。 1. 说明 这里我们假设你已经编译好了sqlite的库文件 :libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3...
  • sqlite3编译安装------------------------arm版----------------------1....开始配置,执行命令如下(前提配置好交叉编译环境):./configure --prefix=/usr/local/sqlite_arm --host=arm-linux4.开...
  • qt 链接sqlite数据库

    2016-04-30 10:56:45
    在qt中常用的数据库有mysql和sqlite,它们都是轻量级的关系型的数据库,使用与操作也都非常便捷,下面就qt链接mysql和sqlite数据库的操作步骤做个简单的记录。1、qt链接sqlite数据库1)加载数据库的驱动 首先要包含...
  • Qt操作SQLite数据库

    2021-07-24 08:38:40
    Qt操作SQLite数据库前言一、SQLite 简介什么是 SQLite?为什么要用 SQLiteSQLite 局限性SQL-92特性方面低并发操作应用限制NFS问题数据库规模对象的数目和类型宿主变量引用存储过程二、使用步骤(Qt操作SQLite数据库...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,761
精华内容 2,704
关键字:

在linux下qt中sqlite

linux 订阅