`
iihero
  • 浏览: 249581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQLite指南(3) - 5分钟了解熟悉SQLite

 
阅读更多
在没有大量阅读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环境进行实验。
1
0
分享到:
评论

相关推荐

    SQLite权威指南,使用手册,使用指南

    SQLite的权威指南手册,帮助你尽快熟悉SQLite数据库的开发。

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 ...• SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...

    Google Android SDK开发范例大全(完整版)

    在本文中,了解 Android 平台,以及如何将它用于移动和非移动应用程序。安装 Android SDK,并构建一个简单的应用程序。下载 本文中的示例应用程序的源代码。 ---------------------------------------------------...

    Android编程之SQLite数据库操作方法详解

    主要介绍了Android编程之SQLite数据库操作方法,简单介绍了SQLite数据库及Android操作SQLite数据库的步骤与相关实现技巧,需要的朋友可以参考下

    vc++ 开发实例源码包

    引用了Splayer中的Sqlite3库,进行了测试。 SrcFirstProg 简单的窗口程序。 SuperGrid - 特别的 listview 控件 网格形式的视图,自绘了CComboBox、CEdit、CSuperGridCtrl实现。 tab 演示了CTabCtrl控件的使用方法...

    C++后端学习的技术栈

    5.数据库操作:熟悉SQL语言,能使用ODBC、JDBC等数据库接口或ORM框架(如SQLite、MySQL、PostgreSQL等)进行数据访问、存储与管理。 6.Web服务开发:了解RESTful API设计原则,能使用Web服务器库(如Poco, Boost....

    联盟发现者

    本指南假定读者已将Ruby 2.5.3或更高版本与SQLite3一起安装。 有关不熟悉theee框架的人员的更多信息,请访问 。 使开发服务器运行的步骤应该很熟悉。 克隆完此代码存储库后,cd进入league-finder目录并运行以下命令...

    Android高级编程--源代码

    通过学习,您可以打下牢固的理论根基,了解使用当前android 1.0 sdk编写定制移动程序所需的知识,还能灵活快捷地运用未来的增强功能构建最前沿的解决方案。  主要内容  ◆android移动开发的最佳实践  ◆简要介绍...

    vc++ 应用源码包_5

    引用了Splayer中的Sqlite3库,进行了测试。 SrcFirstProg 简单的窗口程序。 SuperGrid - 特别的 listview 控件 网格形式的视图,自绘了CComboBox、CEdit、CSuperGridCtrl实现。 tab 演示了CTabCtrl控件的使用方法...

    vc++ 应用源码包_3

    引用了Splayer中的Sqlite3库,进行了测试。 SrcFirstProg 简单的窗口程序。 SuperGrid - 特别的 listview 控件 网格形式的视图,自绘了CComboBox、CEdit、CSuperGridCtrl实现。 tab 演示了CTabCtrl控件的使用方法...

    vc++ 应用源码包_1

    引用了Splayer中的Sqlite3库,进行了测试。 SrcFirstProg 简单的窗口程序。 SuperGrid - 特别的 listview 控件 网格形式的视图,自绘了CComboBox、CEdit、CSuperGridCtrl实现。 tab 演示了CTabCtrl控件的使用方法...

    vc++ 应用源码包_2

    引用了Splayer中的Sqlite3库,进行了测试。 SrcFirstProg 简单的窗口程序。 SuperGrid - 特别的 listview 控件 网格形式的视图,自绘了CComboBox、CEdit、CSuperGridCtrl实现。 tab 演示了CTabCtrl控件的使用方法...

    vc++ 应用源码包_6

    引用了Splayer中的Sqlite3库,进行了测试。 SrcFirstProg 简单的窗口程序。 SuperGrid - 特别的 listview 控件 网格形式的视图,自绘了CComboBox、CEdit、CSuperGridCtrl实现。 tab 演示了CTabCtrl控件的使用方法...

Global site tag (gtag.js) - Google Analytics