在没有大量阅读SQLite在线文档并且不了解相关配置之前,几分钟的时间可以让你快速了解SQLite.
1. 下载源代码,你总能从http://www.sqlite.org/download.html 这里下载到最新的SQLite发行版本对应的源码。
2. 创建数据库
你可以从http://www.sqlite.org/download.html这里下载到sqlite3.exe,也可以直接依据下文:
http://iihero.iteye.com/blog/1175595,自己动手编译出该可执行文件。
进到cmd窗口,进到sqlite3所在目录,执行sqlite3 <demo.db全路径>,即可为你创建一个数据库文件。如果是sqlite3 demo.db,则会在当前目录为你创建该数据库。
D:\shared>sqlite3 d:\shared\demo\test.db
SQLite version 3.7.6
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table t(id int primary key, col2 varchar(32));
sqlite> insert into t values(1, 'iihero');
sqlite> insert into t values(2, '中国');
sqlite> select * from t;
1|iihero
2|中国
sqlite>
3.编写简单的使用SQLite的应用程序
使用C-API来访问SQLite数据库:
#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]);
exit(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(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;
}
逻辑很简单,就带两个参数,每一个参数为db文件的路径,第2个参数为要执行的sql语句。
设该文件为demo.c.
编译,需要sqlite3.h, sqlite3.c以及这个demo.c
下边看看我的整个编译及测试过程:
E:\learn\db_research\sqlite\sqlite_auto_build>cd sqlite-amalgamation-3070800
E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>cl -Gs -GX -D_WIN32 -nologo -Zi -DOS_WIN=1 -DSQLITE_DEBUG=1 -DWIN32=1 -DTHREADSAFE=1 -DSQLITE_OS_WIN=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SOUNDEX=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -I. demo.c sqlite3.c -o demo.exe
cl : Command line warning D9035 : option 'GX' has been deprecated and will be removed in a future release
cl : Command line warning D9036 : use 'EHsc' instead of 'GX'
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
demo.c
sqlite3.c
Generating Code...
E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>dir demo.exe
驱动器 E 中的卷没有标签。
卷的序列号是 04EC-044E
E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800 的目录
2011-09-27 21:32 1,221,120 demo.exe
1 个文件 1,221,120 字节
0 个目录 8,856,236,032 可用字节
E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>demo.exe d:\shared\demo\test.db "create table t123(id int primary key, col2 varchar(32)); insert into t123 values(1, 'iihero')"
E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>d:\shared\sqlite3.exe d:\shared\demo\test.db
SQLite version 3.7.6
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from t123;
1|iihero
sqlite>
上边的例子,我并没有创建一个独立的VC工程,因为不过是几个源文件,加一条编译命令。没必要弄得那么烦琐。如果您有兴趣,也可以根据上边的编译命令,建立一个Win32 console工程,应该很简单。
至于tcl编译并绑定的示例,有兴趣的,可以自行下载http://www.sqlite.org/sqlite-autoconf-3070800.tar.gz, 并搭建tcl环境进行实验。
分享到:
相关推荐
对于开发者来说,熟悉SQLite的源码还可以帮助定制特定功能,例如添加新的VFS支持或优化特定操作。 总之,SQLite 3.8.7源码包提供了一个深入了解和定制SQLite的机会,对于数据库开发者、移动应用开发者以及希望优化...
为了深入学习这个话题,你需要理解SQLite3的API,熟悉Linux开发环境,以及对ARM架构的编译和调试有一定了解。通过阅读提供的源代码和遵循移植指南,你可以将SQLite3集成到你的ARM Linux项目中,实现高效、安全的...
"sqlite-amalgamation-3420000"是SQLite的一个特定版本,编号为3420000,这个版本包含了SQLite的所有源代码,合并在一个集合(amalgamation)中,便于开发者集成到自己的项目中。 SQLite的主要特点包括: 1. **轻...
"sqlite-shell-linux-x86-3080704.zip" 是一个专为Linux x86平台编译的SQLite命令行shell工具的压缩包,版本号为3.8.7.4。这个工具允许用户直接在终端中与SQLite数据库进行交互,执行SQL语句,创建、查询、更新和...
而 `使用说明.txt` 文件很可能是对如何使用 SQLite3 和 SVN 的详细指南,包括如何初始化数据库、执行 SQL 命令、如何用 SVN 管理数据库文件等内容。 总的来说,SQLite3 是一个强大的数据库系统,而 SVN 是一个有效...
这样,开发者可以利用熟悉的ODBC API来操作SQLite3数据库,而无需了解SQLite3的特定细节。这种驱动程序的使用极大地拓宽了SQLite3在企业级应用中的应用范围,因为许多企业级软件和工具都支持ODBC接口。 使用SQLite3...
SQLite3 是一个开源的、轻量级的数据库引擎,...在实际应用中,了解 SQL 语言的基础知识,熟悉 SQLite3 的特定命令和函数,是充分发挥其功能的关键。同时,保持对 SQLite3 更新的关注,以便获取最新的功能和安全修复。
SQLite.net 与其他 ADO.NET 提供商(如 SQL Server 的 System.Data.SqlClient)的接口类似,因此对于熟悉 ADO.NET 的开发者来说,学习成本较低。此外,SQLite.net 还支持 LINQ to SQL,提供了一种更高级别的对象关系...
这个压缩包"sqlite-3310100.7z"包含了SQLite 3.31.0版本的相关组件,让我们逐一解析其中的文件内容。 首先,我们看到一个名为"sqlite-doc-3310100.zip"的文件,这通常包含了SQLite的官方文档。这个文档提供了全面的...
5. **恢复元数据**:清理完成后,关闭 SQLite3,重新启动 TortoiseSVN,看看问题是否得到解决。如果问题仍然存在,可能需要更复杂的修复策略,或者寻求专业的技术支持。 在上述链接的博客文章中...
SQLite3是一个轻量级的、开源的数据库管理系统,它不依赖于任何服务器进程,可以直接在本地...不过,对于不熟悉SQLite3或SVN的用户来说,建议先了解相关知识,或者寻求专业人士的帮助,以免对数据造成不必要的损失。
同时,熟悉Sqlitestudio的用户界面和快捷键能够提高工作效率。 总的来说,Sqlitestudio作为一款免费且功能丰富的SQLite数据库管理工具,对于开发人员和数据库管理员来说是一个理想的选择,它简化了数据库的管理工作...
"SQLite-1.0.65.1-vs2010rc-net4-setup"这个标题暗示了这是一个针对.NET Framework 4.0平台的SQLite数据库引擎的更新版本,具体来说是1.0.65.1版,并且与Visual Studio 2010(VS2010)兼容。"Updated the sqlite ...
- **SQLite权威指南.pdf**:这是一本全面介绍SQLite的书籍,涵盖了SQLite的原理、API、性能优化等多个方面。 - **SQLite命令行工具.txt**:可能包含了SQLite命令行工具的基本用法和常用命令的速查表。 通过这些资源...
SQLite3是一种轻量级、自...如果你是嵌入式开发者,熟悉源码后可以更有效地集成SQLite3到你的产品中,或者根据特定需求进行定制。同时,这也是一个极好的学习数据库原理的机会,对于提升数据库相关的编程技能大有裨益。
根据提供的信息,“sqlite权威指南第2版”这本书主要聚焦于SQLite数据库系统的深入讲解与应用实践。尽管提供的部分内容并未直接涉及SQLite的技术细节,但从标题、描述以及标签中可以推断出本书的内容将涵盖SQLite的...
最后,"sqlite-src-3250100"很可能就是SQLite v3.25.1的源代码文件,包含所有必要的C语言源文件和构建脚本。 在实际应用中,SQLite可以用于移动应用、桌面应用,甚至是服务器端的轻量级数据存储。它的API易于集成到...
9. **错误处理与日志**:熟悉SQLite的错误代码和日志系统,这对于调试和问题排查至关重要。 10. **优化指南**:文档还会提供性能调优的建议,包括索引策略、查询优化等。 这个CHM文件对于SQLite初学者和开发者来说...