Linux下sqlite 编程

7479阅读 8评论2012-04-04 Bean_lee
分类:SQLite/嵌入式数据库

    最近三四天学习的主要内容是数据库相关的知识,本科时初步学习过数据库的知识,通过了三级数据库考试,但是蜻蜓点水,没啥收获。本文主要是讲一下在linux下进行sqlite接口调用的一些体会和心得。


    首先是安装,我用的是Ubuntu系统,安装就比较简单了,直接apt-get就搞定了。

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<sqlite3.h>


  4. int main()
  5. {
  6.     sqlite3* db;
  7.         int ret;
  8.         char *sql;
  9.         char *zerr;

  10.         ret = sqlite3_open("test.db",&db);
  11.         if(ret)
  12.         {
  13.          fprintf(stderr,"cannot open db : %s\n",sqlite3_errmsg(db));
  14.                 sqlite3_close(db);
  15.                 return 1;
  16.         }

  17.         sql = "create table episodes(id int ,name text)";
  18.         ret = sqlite3_exec(db,sql,NULL,NULL,&zerr);
  19.         if(ret != SQLITE_OK)
  20.         {
  21.          if(zerr!=NULL)
  22.                 {
  23.                  fprintf(stderr,"SQL error:%s\n",zerr);
  24.                         sqlite3_free(zerr);
  25.                 }
  26.         }
  27.         sql = "insert into episodes values(10,'the dinner party')";
  28.         ret = sqlite3_exec(db,sql,NULL,NULL,&zerr);

  29.         sqlite3_close(db);
  30.         return 0;
  31. }
    首先遇到的问题是,没有头文件,我去官网下载了sqlite-amalgamation-3071100.zip,解压下来,把头文件sqlite3.h放入到了/usr/include/ 路径下。 

    然后遇到的问题是 没有动态库,我加上 -lsqlite3选项还是无法找到动态库。看了网上说了中方法,说是可以通过apt-get install libsqlite3-dev的方法解决,我尝试了下,果然,再次编译就成功了。

   上面是我遇到的问题,我也不知道我解决问题的办法是不是正确的,更优雅的做法应该是什么样的,如果有路过高手,请不吝赐教。

点击(此处)折叠或打开

  1. root@libin:~/program/DB/sqlite# gcc -o test test.c -lsqlite3
  2. root@libin:~/program/DB/sqlite# ./test
  3. root@libin:~/program/DB/sqlite# ll
  4. 总用量 24
  5. drwxr-xr-x 2 root root 4096 2012-04-04 12:08 ./
  6. drwxr-xr-x 3 root root 4096 2012-04-04 10:04 ../
  7. -rwxr-xr-x 1 root root 7343 2012-04-04 12:08 test*
  8. -rw-r--r-- 1 root root 666 2012-04-04 12:08 test.c
  9. -rw-r--r-- 1 root root 2048 2012-04-04 12:08 test.db
我们可以看到生成了数据库test.db.


点击(此处)折叠或打开

  1. root@libin:~/program/DB/sqlite# sqlite3 test.db
  2. SQLite version 3.6.22
  3. Enter ".help" for instructions
  4. Enter SQL statements terminated with a ";"
  5. sqlite> select * from episodes ;
  6. 10|the dinner party
  7. sqlite>


参考文献:
1 SQLite 权威指南
2 cannot find lxxx 问题总结
上一篇:打开MEM_CHECK_,定位malloc free 故障
下一篇:IPC之本地套接字

文章评论