Sqlite3入门,安装和使用。
来源:互联网 发布:java项目开发人员配置 编辑:程序博客网 时间:2024/06/04 19:05
Win 7 + MSVC 2012 试用版
之所以用Sqlite,主要是因为,朋友不能在公司电脑上面安装东西,基于Mysql这种需要安装而且要起后台服务的程序自然都玩不了,那就Sqlite。
1、首先声明一下,完全没有必要安装,网上很多什么又是编译,又是什么生成lib的玩法,完全是绕路了(我觉得)。直接在工程里面把官方的C和H文件including进去就是了。我不知道其他人实际开发怎么玩的,有一点我知道,Qt的Sqlite3支持就是直接把源代码涵盖进去,而不是使用库再链接。
2、下载官网的源代码http://www.sqlite.com/download.html:
下载后,解压,如下:
D:\Sqlite开发\源代码\sqlite-amalgamation-3071700>dir Volume in drive D is D Volume Serial Number is D8DC-109A Directory of D:\Sqlite开发\源代码\sqlite-amalgamation-30717002013/05/22 09:09 <DIR> .2013/05/22 09:09 <DIR> ..2013/05/20 13:56 99,401 shell.c2013/05/20 13:56 4,973,863 sqlite3.c2013/05/20 13:56 348,618 sqlite3.h2013/05/20 13:56 25,974 sqlite3ext.h 4 File(s) 5,447,856 bytes 2 Dir(s) 37,436,293,120 bytes free
3、新建一个VS空工程,路径:D:\Qt_Proj\Sqlite_cons1,代码在D:\Qt_Proj\Sqlite_cons1\Sqlite_cons1路径下面,此时还没有代码,把步骤2里面的sqlite3.c和sqlite3.h拷贝过来,然后添加一个main文件:source.cpp。
4、完成程序功能,也就是source.cpp的实现代码:
#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(){ sqlite3 *db; char *zErrMsg = 0; int rc; rc = sqlite3_open("./test.db", &db); if( rc ){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return(1); } rc = sqlite3_exec(db, "create table if not exists work (first integer primary key autoincrement, second text)", callback, 0, &zErrMsg); if( rc!=SQLITE_OK ){ fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } rc = sqlite3_exec(db, "insert into work(second) values ('吃饭')", callback, 0, &zErrMsg); if( rc!=SQLITE_OK ){ fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } rc = sqlite3_exec(db, "insert into work(second) values ('asdf')", callback, 0, &zErrMsg); if( rc!=SQLITE_OK ){ fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sqlite3_close(db); return 0;}
5、运行程序,会生成test.db:
6、这个时候我们用Sqlite shell工具查看效果:
D:\Qt_Proj\Sqlite_cons1\Sqlite_cons1>Sqlite3 test.dbSQLite version 3.7.17 2013-05-20 00:56:22Enter ".help" for instructionsEnter SQL statements terminated with a ";"sqlite> .tableworksqlite> select * from work;1|│╘╖╣╟δ░┤2|asdfsqlite>
上面有乱码,是因为我的cmd我修改了字体和显示,以至于不能显示中文了。
7、再说明一下,编译的文件里面一个是cpp的,而Sqlite3的实现文件是.c文件,没有关系的,在sqlite3.h里面有这么一段:
#ifndef _SQLITE3_H_#define _SQLITE3_H_#include <stdarg.h> /* Needed for the definition of va_list *//*** Make sure we can call this stuff from C++.*/#ifdef __cplusplusextern "C" {#endif
8、如果出现一定要用lib和dll文件的情况,那么,也不用重新编译.c文件,执行如下操作即可:
E:\Sqlite开发\windows 工具>cd sqlite-dll-win32-x86-3071700E:\Sqlite开发\windows 工具\sqlite-dll-win32-x86-3071700>dir 驱动器 E 中的卷是 E 卷的序列号是 4CD7-E1DC E:\Sqlite开发\windows 工具\sqlite-dll-win32-x86-3071700 的目录2013/05/22 18:55 <DIR> .2013/05/22 18:55 <DIR> ..2013/05/20 12:58 4,385 sqlite3.def2013/05/20 12:58 620,718 sqlite3.dll 2 个文件 625,103 字节 2 个目录 41,283,182,592 可用字节E:\Sqlite开发\windows 工具\sqlite-dll-win32-x86-3071700>lib /def:sqlite3.defMicrosoft (R) Library Manager Version 11.00.60315.1Copyright (C) Microsoft Corporation. All rights reserved.LINK : warning LNK4068: /MACHINE not specified; defaulting to X86 Creating library sqlite3.lib and object sqlite3.expE:\Sqlite开发\windows 工具\sqlite-dll-win32-x86-3071700>dir 驱动器 E 中的卷是 E 卷的序列号是 4CD7-E1DC E:\Sqlite开发\windows 工具\sqlite-dll-win32-x86-3071700 的目录2013/05/22 19:10 <DIR> .2013/05/22 19:10 <DIR> ..2013/05/20 12:58 4,385 sqlite3.def2013/05/20 12:58 620,718 sqlite3.dll2013/05/22 19:10 29,576 sqlite3.exp2013/05/22 19:10 49,522 sqlite3.lib 4 个文件 704,201 字节 2 个目录 41,283,092,480 可用字节
也就是在dll文件夹路径下面做一次如下操作,就可以得到相应的lib文件了:
lib /def:sqlite3.def
注:这里简单说一下一个容易被人家理解错误的一个点,就是,不管是动态链接库还是静态链接库,都需要lib文件,只是前者是依据lib文件链接,然后在运行时找dll文件,后者就直接将lib文件链接在可执行文件一起了。
- Sqlite3入门,安装和使用。
- sqlite3-sqlite3使用入门
- SQLite3:安装和简单使用
- sqlite3的安装和使用
- sqlite3使用入门
- sqlite3使用入门
- sqlite3使用入门
- Sqlite3 使用入门
- sqlite3使用入门
- Sqlite3安装与使用
- sqlite3安装使用
- sqlite3安装使用---笔记
- 嵌入式数据库SqLite3使用入门
- linux下的sqlite3的编译安装和使用 -----转载
- sqlite3在Linux下的安装和使用
- linux下的sqlite3的编译安装和使用
- 安装使用数据库系统Sqlite3
- sqlite3 安装和基本指令
- Box2D
- inline-block 前世今生
- ASP.net中怎样获取menu被单击的条目信息
- 2010年12月7日下午北大数据库系统原理上机题
- oracle数据库密码修改
- Sqlite3入门,安装和使用。
- office app之 Mail App 从新建到发布
- Install and deploy rails on CentOS
- 情色网站启示:请尊重你不懂的领域
- poj 1703 find them,catch them
- Spring Batch异常
- oracle数据库建立dblink
- cocos2d-x 菜鸟学习笔记四(游戏场景与场景切换)
- 手机网站前端开发布局技巧