Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4235017
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: SQLite/嵌入式数据库

2011-08-14 10:49:27

本文的copyright归yuweixian4230@163.com 所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。
作者:yuweixian4230@163.com
博客:
yuweixian4230.blog.chinaunix.net

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

  3. int main( void )
  4. {
  5.     sqlite3 *pdb = NULL;
  6.     char *szErrMsg = 0;
  7.     int rc;
  8.     int i = 0;
  9.     //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
  10.     rc = sqlite3_open("test.db", &pdb);
  11.     if( rc )
  12.     {
  13.         fprintf(stderr, "Can't open database: %s", sqlite3_errmsg(pdb));
  14.         sqlite3_close(pdb);
  15.         return 0;
  16.     }
  17.     // 创建一张新数据表
  18.     //创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中
  19.     char *strSql = " CREATE TABLE test_table (ID INTEGER PRIMARY KEY,name VARCHAR(12));";
  20.     sqlite3_exec(pdb,strSql,0,0,&szErrMsg );

  21.     // 向数据表中添加二条记录
  22.     strSql = "INSERT INTO test_table VALUES( 1 , 'tom');";
  23.     sqlite3_exec(pdb,strSql,0,0,&szErrMsg );
  24.     strSql = "INSERT INTO test_table VALUES( 2 , 'Jim');";
  25.     sqlite3_exec(pdb,strSql,0,0,&szErrMsg );

  26.     // 查询所有记录
  27.     int nRow = 0, nColumn = 0;
  28.     char **pResult; //二维数组存放结果    
  29.     
  30.     strSql = "SELECT * FROM test_table ";
  31.     sqlite3_get_table(pdb,strSql,&pResult,&nRow,&nColumn,&szErrMsg );
  32.     printf("Query recond %d \n ID Name:\n",nRow);
  33.     for(; i<(nRow+1)*nColumn;i++)
  34.     {
  35.         printf("%s ", pResult[i]);
  36.         if(i % 2 == 0)
  37.             printf("\n");
  38.     }
  39.     
  40.     //释放掉 azResult 的内存空间
  41.     sqlite3_free_table(pResult);
  42.     sqlite3_close(pdb); //关闭数据库
  43.     return 0;
  44. }

  1. ywx@ywx:~/yu/sqlite$ gcc sqlitetest.c -o sqlitetest -lsqlite3 -lpthread
  2. ywx@ywx:~/yu/sqlite$ ls
  3. data.sql sqlite_open sqlitetest test2.db
  4. liu.htm sqlite_open.c sqlitetest.c
  5. ywx@ywx:~/yu/sqlite$ ./sqlitetest
  6. Query recond 2
  7.  ID Name:
  8. ID
  9. name 1
  10. tom 2
  11. Jim ywx@ywx:~/yu/sqlite$








阅读(1359) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~