C/C++ SQLite 之基础篇

文章目录:

                 

1. 下载 SQLite3 源码:

2. 下载 SQLite3.dll 文件:

3. 生成 SQLite3.lib 文件 :

4. 生成或者下载 SQLite3 Shell 文件 :

5. 创建数据库以及数据表:

6. 总结:

1. 下载 SQLite3 源码:

虽然说摆弄 c/c++ 有很长时间了,但是说到用 c/c++ 来摆弄数据库倒还真是没有弄过,

一直有关数据库的项目似乎都用 .Net 给去 OK 了,就好比 SQLite,

现在的项目就是用的 SQLite.Net,有什么东西都是用 c# 直接操作 SQLite.Net 了,

而相对底层的东西则使用 c/c++ 完成且封装成 DLL 供 c# 调用就 OK 了。

不过有的时候自己在写一些小东西的时候,可能也会有些数据需要本地存储的,

以前为了图个简单,就直接存文件咯,不过要是相对隐私点的东西的话,

我想还是有个数据库比较好,这不是就有 SQLite3 了嘛,注意一下哈,

SQLite3 是供 c/c++ 代码来使用的,如果是 .Net 的话那就得用 SQLite.Net 了,

废话少说,进入正题了,首先我们需要下载好 SQLite3 的相关文件,

官网地址:http://www.sqlite.org/download.html

                                       

我们先下载的是 SQLite3 的源码,下载好后,你可以解压缩出来,然后你就会看到 4 个 C/C++ 文件了。

而我们每次在 C/C++ 中使用 SQLite3 时总是需要其中的头文件 sqlite3.h

2. 下载 SQLite3.dll:

然后需要下载的是 SQLite3 的 DLL 文件以及导出库,

下载完后你可以解压出来,你会发现只有 SQLite3.dll 和 SQLite3.def 两个文件,

3. 生成 SQLite3.lib 文件:

做过 c/c++ DLL 的都知道,.def 文件可以用来定义一个 DLL 中 API 的导出,

所以我们可以打开 SQLite3.def 看看,里面定义的 API 名称就是 SQLite3.dll 所导出的 API,

而在 C/C++ 中如果你要链接到其他的 DLL 上,你必须要有那个 DLL 的导出库,也就是 .lib 文件,

而我们这里没有导出文件(Lib)怎么办呢?没有那就根据 DLL 和.def 文件来生成一个 .lib 文件不就 OK 了 ~

首先将 SQLite3.dll 和 SQLite3.def 文件拷贝到 VS 安装目录下的 Bin 文件夹,

比如我安装的是 VS2010,且默认安装在 C:\Program Files\ 目录下面,

那么你就需要将上面的两个文件拷贝到以下目录:

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

然后打开 Visual Studio 命令提示符,且定位到上面的这个目录,

然后输入命令:lib /def:sqlite3.def /machine:ix86

然后你就会在 Bin 目录下发现已经生成了 SQLite3.lib 文件。

4. 生成或下载 SQLite3 Shell 文件:

关于这 SQLite3 的 Shell 文件呢,就是用来创建 SQLite3 数据库啊,创建表啊之类的东西,

说白了就是个 SQLite Admin 的控制台界面,当然咯,控制台这个东西并不怎么好用,

所以你可以考虑换个其他的带 GUI 的工具来管理你的 SQLite3 数据库。

有个工具不错,叫 DataBase.Net,什么乱七八糟的数据库它都可以连接上去,不过要 .Net Framework 的支持。

对于这个 SQLite3 的 Shell 文件你可以直接在 SQLite 的官方网站上下载到,

而后,除了下载 SQLite3 的 Shell 工具外,我们还可以自己编译 SQLite 源代码来生成这个工具,

前面我们已经下载好了 SQLite3 的源代码,并且源代码里面还有一个叫做 shell.c 的文件,

其实这个文件就可以用来处理 SQLite3 Shell 命令的,

所以我们可以直接在 VS2010 下新建一个 Console 项目,

然后将源代码里面的 4 个 C\C++ 文件拷贝到项目中,然后直接编译,

你也可以得到 SQLite3 的 Shell 工具 SQLite3.exe。

5. 创建数据库以及数据表:

这里使用麻烦点的方式,即使用 SQLite3 的 Shell 工具,

下面的例子呢就是很简单的方式,即使用 SQLite3 的 Shell 工具来创建个 DataBase,

然后再创建个 Table,再插入几条记录,查询一下就 OK 了。

具体命令就看下面的截图就好了:

首先在命令行下定位到你的 SQLite3.exe 也就是 Shell 程序所在的目录:

比如我的 SQLite3.exe 所在目录为:

E:\Code\SQLite\sqlite-shell-win32-x86-3071000

然后输入命令 sqlite3 testDB.db 从而创建 SQLite 数据库,

然后输入命令 create table testDB_ID(ID int, Number int) 来创建数据表 testDB_ID

然后输入命令 ; 从而执行上面的创建表的命令。

执行完这些命令后,在你的 Shell 程序也就是 SQLite3.exe 所在的位置中发现你创建的 testDB.db 数据库了。

其实上面的这种创建数据库的方式太麻烦了,还不如直接用 Database.Net 来做,方便很多,

比如我用 DataBase.Net 打开我们上面创建的这个 testDB.db 数据库,用这个工具来管理数据库很方便。

6. 小结:

好,这篇博文到这里就完了,话说回来上面的文章还真没有讲到什么有用的东西,

仅仅是一些关于 SQLite 的环境啊之类的流水账记录。

仅仅是对于那些没有操作过 SQLite3 的小白可能还有点作用,

当然咯,我也还是个小白,所以才做这个文章做个记录。

下面的篇章就要来写写在 C\C++ 下面对 SQLite 的一些具体的操作了。

时间: 2024-11-07 10:58:39

C/C++ SQLite 之基础篇的相关文章

基础篇:6.Android数据库编程---SQLite

简介: 在Android平台上,继承了一个嵌入式关系型数据库---SQLite.SQLite具有跨平台特性,可以在所有主要的操作系统上运行.SQLite通过独占性和共享锁实现独立事务处理,因此多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据,在进行写操作之前,必须先获得独占锁.另一方面,SQLite采取动态数据类型,当某个值插入数据库时,SQLite会检查它的类型,如果该类型与所关联的列不匹配,SQLite则会进行强制转换.SQLite支持以下几种数据类型:NULL(空值).I

问道python之基础篇【一】 认识python

问道python之基础篇[一] 认识python 1.python的简介 1.1.什么是python? Python是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python语法简洁清晰,特色之一是强制用空白符作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够用其他语言制作的各种模块(尤其是C++)很轻松地联结在一起. 1.2.python的特点 简单,易学,免费.开源,高层语言,移植性,

oracle(sql)基础篇系列(五)——PLSQL、游标、存储过程、触发器

  PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00

Hybrid APP基础篇(四)->JSBridge的原理

说明 JSBridge实现原理 目录 前言 参考来源 前置技术要求 楔子 原理概述 简介 url scheme介绍 实现流程 实现思路 第一步:设计出一个Native与JS交互的全局桥对象 第二步:JS如何调用Native 第三步:Native如何得知api被调用 第四步:分析url-参数和回调的格式 第五步:Native如何调用JS 第六步:H5中api方法的注册以及格式 进一步完善JSBridge方案 思路 实现 注意 完整的JSBridge 完整调用流程图 另外实现:不采用url sche

网络基础篇----计算机网络基本概述(1)

享受生活  热爱挑战                                                                刘明远分享    一   计算机网络基本概述(1) 每章一段话: 不要让自己闲下来,给自己找些事情做.哪怕是看看书. 正文   (提示:本章内容比较无聊,最好当看故事一样来看,不必记下只需了解,内容基础) 1什么是计算机网络 号称新的"电力火花"是以计算机.通信.信息技术为支撑的计算机网络技术. 计算机网络将两台或多台计算机通过电缆或网络设

js调试系列: 源码定位与调试[基础篇]

js调试系列目录: - 如果看了1, 2两篇,你对控制台应该有一个初步了解了,今天我们来个简单的调试.昨天留的三个课后练习,差不多就是今天要讲的内容.我们先来处理第一个问题:1. 查看文章下方 推荐 这个功能所调用的函数源码其实非常简单,点放大镜选中那个推荐即可.这个  votePost(cb_entryId,'Digg')  就是推荐按钮所调用的函数了,是不是非常简单. 第二个问题,定位到函数所在文件位置.其实也是非常简单的,当然,不熟悉控制台的朋友也许不知道怎么看.我在控制台输入 voteP

DOM系列---基础篇

DOM (Document Object Model) 即文档对象模型, 针对 HTML 和 XML 文档的 API (应用程序接口) .DOM 描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM 产生于 网景公司及微软公司创始的 DHTML(动态 HTML) ,但现在它已经成为表现和操作页面标记的真正跨平台.语言中立的方式. DOM 中的三个字母: D(文档)可以理解为整个 Web 加载的网页文档: O(对象)可以理解为类似 window 对象之类的东西,可以调用属性

深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)

在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多数只能访问应用程序的private目录或其它系统共享目录.在iphone中,apple博采众长,提供了多种数据持久化的方法,下面笔者会逐个进行详细的讲解. iphone提供的数据持久化的方法,从数据保存的方式上讲可以分为三大部分:属性列表.对象归档.嵌入式数据库(SQLite3).其他方法. 一.属

Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编译,所以借此篇内容说明一下原由并为之后文章的学习做准备. 即使本片内容只是在围绕一个小小的HelloWorld程序开展,但还是希望朋友们不要急于求成,"欲速则不达". 文章整体思路: 我们循序渐进地来看,一个Qt应用的完成有以下一个重要的步骤: 项目创建->源码编译->程序运行