Jquery中文网 www.jquerycn.cn
Jquery中文网 >  数据库  >  sqlite  >  正文 SQLite函数使用教程(1)

SQLite函数使用教程(1)

发布时间:2014-07-20   编辑:www.jquerycn.cn
SQLite函数使用教程(1)

SQLite官方的使用介绍中附带了一个C语言的实例,该实例使用了回调的方法处理由SQL语句返回的记录集,这种回调函数的方法比较复杂,而且也并没有获得什么实质性的好处。这里推荐使用另外一组函数来完成该类操作,经实践检验证明,该方法在效率方面不存在任何问题。
 

复制代码 代码如下:

sqlite3 *db;
char *zErrMsg = 0;
int nrow = 0, ncolumn = 0;  //查询语句返回的结果集的行数,列数
char temp[256], FileRoot[256];
char ** azResult;   //用于保存查询结果集数据
sprintf(temp, _T("%s"), _T("\test.db"));

/*
SQLite3以UTF-8的编码方式处理字符串,所以在使用sqlite3_open打开数据库之前需要将数据库路径进行编码转换。
*/

   CCodingConv::GB2312_2_UTF8(FileRoot, 256, temp, 0);
   sqlite3_open(FileRoot, &db);
   if(db == NULL)
    {
        return -1;
    }
 
    // sqlite3_get_table函数可以返回SQL语句执行之后的记录集,以及行列数
    sqlite3_get_table(db, "SELECT name, age FROM list;", &azResult, &nrow, &ncolumn, &zErrMsg);

//nrow表明一共有多少项符合该次查询条件的记录
    for(int k = 1; k <= nrow; k++)
    {
        printf(azResult[k*ncolumn]);   //对应name列的数据
printf(azResult[k*ncolumn+1]);  //对应age列的数据
    }
 
//释放为记录集分配的内存,如果返回了空记录集并不会发生错误
    sqlite3_free_table(azResult);
//关闭数据库
    sqlite3_close(db);
return 0;

注释:原代码中的CCodingConv类可以进行UTF-8到GB2312之间的转换。
 

复制代码 代码如下:
创建数据表
CREATE TABLE list (name varchar(40) UNIQUE, age integer);

存入数据:
   

复制代码 代码如下:
sqlite3_exec(db, "insert into list values ('tamsyn','24');", 0, 0, &zErrMsg);
    sqlite3_exec(db, "insert into list values ('mistletoe','23');", 0, 0, &zErrMsg);

使用这种方法在C语言中可以更方便的使用SQLite3,避免了回调函数的复杂性。并且可以完成任何SQL语言的查询操作。

您可能感兴趣的文章:
SQLite 常用函数
SQLite 教程
SQLite Truncate Table
SQLite Indexed By
SQLite 语法
SQLite 60分钟入门教程
SQLite Vacuum
SQLite 简介
SQLite 触发器
SQLite Alter 命令

[关闭]