函数:sqlite3_exec(),称为便捷函数,封装了好多任务。

函数声明:

int  sqlite3_exec( sqlite   * , const  char * sql , sqlite_callback , void  *data , char  ** errmmsg) ;  其中 sqlite* 表示打开的数据库; sql 为执行的sql语句;callback回

调函数;void  *data为回调函数的第一个参数指向提供给回调函数的应用程序特定的数据,也是回调函数的第一个参数; errmsg 为错误信息,是指向错误消息字符串的指针 。

sqlite_exec() 有两个错误消息来源,返回值和可读的字符串errmsg。

注意:如果提供 了errmsg,用来创建错误消息的内存是在堆上分布的。 故在调用后,应该检查一下是否为null值,如果有错误发生,使用sqlite3_free()释放errmsg占用的内存。

在简单命令中使用sqlite3_ exec( ),实例代码:

int  main( int  argc , char  ** argv )

{

sqlite3  *db;

char    *zErr ;

nt       rc ;

char    *sql;

rc = sqlite3_open_v2( "test.db" ,  &db);

if( rc) {

fprintf(stderr , " Can't  open  database :%s\n" , sqlite3_errmsg(db));

sqlite3_close(db);

exit(1);

}

sql="create table episodes(id int , name text ) ";

rc = sqlite3_exec(db ,  sql, NULL ,  NULL , &zErr ) ;

if(rc ! = SQLITE_OK) {

if( zErr != NULL  ) {

fprintf( stderr , " SQL error : %s\n " , zErr);

sqlite3_free(zErr) ;

}

}

sql = "insert  into  episodes values ( 10,'the  dinner  party ' )";

rc =  sqlite3_exec(db , sql , NULL ,NULL , &zErr);

sqlite3_close(db) ;

return 0 ;

}

回调函数的声明:

typedef  int  ( * sqlite3_callback ) (void  * , int , char ** ,char **  );其中void *是为sqlite3_exec()第四个参数提供的数据,int代表字段的数目,char** 便是行中字段名称的字符串的数组,char**表示字段ing成的字符串数组。

sqlite3_exec( )允许执行一批命令,并可以通过回调接口收集所有的返回数据。

sqlite3_exec相关推荐

  1. SQLLite (二) :sqlite3_open, sqlite3_exec, slite3_close

    导入SQLLite library并引入头文件 libsqlite3.dylib本身是个链接,在这里它指向libsqlite3.0.dylib.也就是说在这里你添加libsqlite3.dylib和添 ...

  2. sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_close

    打开数据库链接sqlite3_open用法 原型: int sqlite3_open(const char *filename, /* Database filename (UTF-8) */sqli ...

  3. PC微信逆向--定位sqlite3_exec和数据库句柄

    写在前面 最近在做PC端微信逆向,搞定了基本的收发消息,通讯录获取等,这期间遇到一个小小的问题,从通讯录获取到的内容不全,除非登录后手动点击过某个好友,不然获取不到头像.V3等,所以产生了解密数据库的 ...

  4. PC微信逆向--调用sqlite3_exec执行SQL

    文章目录 写在前面 回顾 sqlite3_exec 回调函数 函数指针 编写代码 注入的DLL 注入程序 输出结果 写在后面 写在前面 上一篇文章,实现了定位保存微信数据库句柄的容器和微信内部的sql ...

  5. sqlite3_exec及其回调函数

    一)sqlite3_exec 1.头文件和函数原型 #include "sqlite3.h"int sqlite3_exec(sqlite3*, const char *sql, ...

  6. 深入理解SQLite3之sqlite3_exec及回调函数

    sqlite3的C/C++接口API主要有3个重要函数,分别为 1.sqlite3_open(const char* filename, sqlite3 **ppDb); 2.int sqlite3_ ...

  7. iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用

    CoreData的介绍和使用  源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...

  8. SQLite3简单C++包装类源码示例

    一个比较好的SQLite3 C++ wrapper包装类的通常思路是这样的: 数据库连接类,包含连接池,和sqlite3*,负责与数据库文件的连接问题: 一些create table,insert,u ...

  9. 【数据库】sqlite3数据库备份、导出方法汇总

    [数据库]sqlite3常用命令及SQL语句 目录 1.直接拷贝数据库 2.使用.backup .clone 1)交互式 2)脚本 3.导出到csv文件中(其它格式类似) 1)交互式 2)脚本 3)导 ...

最新文章

  1. Marvelous Designer衣袖设计教程
  2. Git学习系列之Git基本操作克隆项目(图文详解)
  3. python文件的用法_Python文件读写常见用法总结
  4. 数据类型与数据传送指令
  5. AXI_04 AXI_LITE_MASTER_IP设计与验证
  6. 移动通信例题整理_第3章_无线信号的衰落
  7. 删除目录软链接注意事项
  8. tyvj1467 通向聚会的道路
  9. BootStrap入门教程 (二)
  10. 保存会话数据——session学习
  11. dorado java_[Java教程]dorado 7 使用总结
  12. 制作Windows severs 2019启动盘
  13. oracle 中 使用 begin end 批量更新,删除资料
  14. 巧用京东物流分享链接批量查询多个京东快递的物流信息
  15. 石家庄规划建设智慧城市 三年后城市将大变样
  16. 《程序员》走近创新工场 解密李开复如何寻找创业之星
  17. 基于SG90舵机(伺服电机)的操作笔记
  18. 【低智版狗屁不通文章生成器】Python 基于一条语法随机生成简单中文句子的小练习
  19. 一篇评价牛顿的搞笑文章,作者老罗,但很有才
  20. 机器学习——KNN分类器的学习

热门文章

  1. c#语言中的变量名,在C#中创建动态变量名
  2. matlab画线不同颜色_怎样画线框图才有意义?
  3. java 字符过滤器_Java Web---登录验证和字符编码过滤器
  4. svn服务器如何扫描文件,基于文件仓库进行建模协作(EA+SVN)
  5. 【离散数学中的数据结构与算法】四 加法法则与乘法法则
  6. 【BZOJ2791】[Poi2012]Rendezvous 倍增
  7. 一个容易被忽视的css选择器
  8. 单元测试原来是这样的呼
  9. PHP的pm、pm.max_requests、memory_limit
  10. android 获取和设置屏幕亮度