开发者社区> 杰克.陈> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Go实战--go语言操作sqlite数据库(The way to go)
Go实战--go语言操作sqlite数据库(The way to go) 生命不止,继续 go go go !!! 继续与大家分享,go语言的实战,今天介绍的是如何操作sqlite数据库。
1845 0
codeblocks创建和使用静态库(C语言)
静态库  (扩展名为 .a 或 .lib) 是包含函数的文件,用于在link阶段整合执行程序,动态链接库(扩展名  .dll)是不在link阶段整合进执行程序中的。 DLL文件在执行阶段动态调用 下面我们将用免费的开发工具CodeBocks开发静态库 创建静态库 启动Codeblocks并创建一个类型为 "Static Library" (File/New/Project/Static Library/Go)的项目。
1064 0
使用iOS原生sqlite3框架对sqlite数据库进行操作(二)
使用iOS原生sqlite3框架对sqlite数据库进行操作
97 0
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用(一)
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用
97 0
Android Studio 通过一个登录功能介绍SQLite数据库的使用
前言:         SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
4340 0
使用iOS原生sqlite3框架对sqlite数据库进行操作(三)
使用iOS原生sqlite3框架对sqlite数据库进行操作
64 0
如何使用VC6编译sqlite3(版本:sqlite-source-3_6_22)
如何使用VC6编译sqlite-source-3_6_22 引言: 小老虎多多使用VC6编译sqlite-source-3_6_22的编译方法。 一.创建Win32动态链接库工程 1.打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:sqlite3; ...
825 0
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用(二)
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用
118 0
使用iOS原生sqlite3框架对sqlite数据库进行操作(五)
使用iOS原生sqlite3框架对sqlite数据库进行操作
63 0
如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)
如何使用VC6编译sqlite-source-3_6_23_1 一.版本: 2010-Mar-30  Version3.6.23.1 二.源代码获取: 在官网的http://www.sqlite.
816 0
+关注
杰克.陈
一个安静的程序猿~
10425
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载