JDK动态代理 Eclipse routing jackson vue插件 品优购电商系统开发 删除数组第一个元素 html好看的字体样式 nikto扫描web漏洞 java 大文件上传 linux查找文件内容 SketchUp 数据库查询 python输出 python程序 python中time python编程语言 python获取时间戳 python读取字典 java日期 java重写和重载的区别 java数组添加 java时间函数 java接口的使用 java安装教程 java八大基本数据类型 java语言是什么 java字符比较 linux系统命令大全 linux云服务器 迷宫解锁 莫莫小工具 0x0000004e netreflector teraterm 暴力猴插件 pr动态字幕 服务器下载 系统激活 视频旋转软件
当前位置: 首页 > 学习教程  > 编程语言

qt中使用sqlite3教程

2020/10/16 17:57:57 文章标签:

qt中默认带有sqlite的驱动库,但是实际使用的时候嫌麻烦,所以花时间研究了一下ssqlite默认的,感觉挺精简的,特此记录一下 1.新建一个qt的静态库工程sqlite3_static,然后把建立项目时生成的文件全删掉,叫sql…

qt中默认带有sqlite的驱动库,但是实际使用的时候嫌麻烦,所以花时间研究了一下ssqlite默认的,感觉挺精简的,特此记录一下

1.新建一个qt的静态库工程sqlite3_static,然后把建立项目时生成的文件全删掉,叫sqlite源码中的文件

主要是红色圈住的3个

最后编译就会生成

把这个库文件导入要是用的项目中就可以了

2.使用案例

#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include "E:\new_qt_prj\sqlite3_static\sqlite3.h"

void print_row(int n_values, char** values)
{
    for (int i = 0; i < n_values; ++i)
        qDebug()<<values[i];
    qDebug()<<"\n";
}

int print_result(void* data, int n_columns, char** column_values, char** column_names)
{
    static int column_names_printed = 0;
    if (column_names_printed++ == 0)
        print_row(n_columns, column_names);
    print_row(n_columns, column_values);
    return 0;
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    sqlite3 *db = NULL;
    char *errMsg = NULL;
    int rc = sqlite3_open("test.db", &db);
    if( rc )
    {
        qDebug()<<"Can't open database: "<<sqlite3_errmsg(db);
        sqlite3_close(db);
        return 0;
    }
    else
        qDebug()<<"open test.db successfully!\n";

    rc = sqlite3_exec(db, "BEGIN TRANSACTION;", NULL, NULL, NULL);
    rc = sqlite3_exec(db, "CREATE TABLE students(number varchar(10), name varchar(10), "
            "sex varchar(6), age varchar(2));", NULL, NULL, NULL);
    rc = sqlite3_exec(db, "INSERT INTO students VALUES('00001','Mary','female','15');"
            "INSERT INTO students VALUES('00002', 'John', 'male', '16');",
                        NULL, NULL, &errMsg);
    rc = sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='female';",
                        print_result, NULL, &errMsg);
    rc = sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='male';",
                        print_result, NULL, &errMsg);
    rc = sqlite3_exec(db, "COMMIT TRANSACTION;", NULL, NULL, NULL);

    qDebug()<<"error code: "<<rc<<"\n";
    qDebug()<<"error message:"<<errMsg<<"\n";

    sqlite3_close(db);


    return a.exec();
}

运行截图


本文链接: http://www.dtmao.cc/news_show_300218.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?