C语言使用SQLite3数据库

简介: 原文:C语言使用SQLite3数据库SQLite是一个著名的免费数据库(不管是商用还是私人使用都免费),已经向众多公司如Adobe, Airbus, Apple, google, GE, Microsoft等提供了支持。
原文: C语言使用SQLite3数据库

SQLite是一个著名的免费数据库(不管是商用还是私人使用都免费),已经向众多公司如Adobe, Airbus, Apple, google, GE, Microsoft等提供了支持。

SQLite不像其它多数的SQL数据库,它没有一个独立的服务进程,它是独立的、无进程的数据库(用起来它也像一个语言库),它对数据的读写操作是直达磁盘的。

下面我们使用C语言来试用一个SQLite

1 先到http://www.sqlite.org/download.html下载你的操作系统所对应的文件

对方C语言的操作来说,只需要源码就可以了:

Source Code

sqlite-autoconf-3080701.tar.gz
(1.91 MiB)

一般而言我们也需要使用命令行对数据库中的数据进行增删改查操作,所以也下载下面的这两个文件:

Precompiled Binaries for Windows

sqlite-shell-win32-x86-3080701.zip
(303.20 KiB)

sqlite-dll-win32-x86-3080701.zip
(335.37 KiB)

 

2 在QT Creator中新建一个纯C工程(我这里名字叫做sqlite3_test),然后修改main.c为下面这样样子

#include <stdio.h>
#include <sqlite3.h>

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
    int i;

    for(i=0; i<argc; i++){
         printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
    }

    printf("\n");
    return 0;
}

int main(int argc, char **argv)
{
    sqlite3 *db;
    char *zErrMsg = 0;
    int rc;

    if( argc!=3 ){
        fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
        return(1);
    }

    rc = sqlite3_open(argv[1], &db);
    if( rc ){
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        return(1);
    }

    rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
    if( rc!=SQLITE_OK ){
        fprintf(stderr, "SQL error: %s\n", zErrMsg);
        sqlite3_free(zErrMsg);
    }

    sqlite3_close(db);

    return 0;
}

 

3

将sqlite-autoconf-3080701.tar.gz解压出来,把其中的sqlite3.h拷贝出来放到Qt工程根目录下。

将sqlite-dll-win32-x86-3080701.zip解压出来,把其中的sqlite3.dll拷贝到Qt工程目录下。

将sqlite-shell-win32-x86-3080701.zip解压出来,把其中的sqlite3.ext拷贝到C:\Windows\System32下面,这样在CMD命令行窗口下就可以直接运行sqlite3了(shell)。

打开一个CMD窗口,然后到达你的工程根目录下面,然后运行sqlite3打开SQLite Shell,按下面的操作新建一个数据库并插入数据,以便于C语言去读取操作:

sqlite> .tables
sqlite> .open test.db
sqlite> .tables
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!', 10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select *from tbl1;
hello!|10
goodbye|20

 

 

4 设置QT工程的编译选项

第3步把该要的文件都拷贝到对应的目录了,然后现在编译还没有办法通过,需要一些设置。

修改sqlite3_test.pro文件(红色为新增的)

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.c

LIBS += sqlite3.dll

include(deployment.pri)
qtcAddDeployment()

给应用程序添加运行参数,即从命令行运行的话需要执行sqlite3_test test.db "select * from tbl1"

test.db "select * from tbl1"

 

5 编译运行

 

参考:

Command Line Shell For SQLite http://www.sqlite.org/cli.html

C-language interface to SQLite http://www.sqlite.org/c3ref/intro.html

SQL As Understood By SQLite http://www.sqlite.org/lang.html

SQLite3 C语言API入门 http://www.blogjava.net/xylz/archive/2012/09/25/388519.html

SQLite3 API编程手册 http://www.cnblogs.com/hnrainll/archive/2011/09/08/2170506.html

目录
相关文章
|
6天前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
96 13
|
4月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
540 15
|
5月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
110 8
|
6月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
104 4
|
6月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
131 3
|
6月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
7月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
174 2
|
7月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
393 1
|
8月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
1044 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
6月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
132 0