文档章节

sqlite3_exec

石头哥哥
 石头哥哥
发布于 2016/02/16 15:07
字数 406
阅读 2K
收藏 0

函数: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( )允许执行一批命令,并可以通过回调接口收集所有的返回数据。  


© 著作权归作者所有

石头哥哥

石头哥哥

粉丝 303
博文 203
码字总数 120417
作品 2
广州
程序员
私信 提问
加载中

评论(0)

在 SQLite3 中使用回调函数

回调函数的格式如下: int sqlitecallback( void pv, / 由 sqlite3exec() 的第四个参数传递而来 / int argc, / 表的列数 / char argv, / 指向查询结果的指针数组, 可以由 sqlite3columntext(...

阳光飞鸟
2015/03/13
283
0
提升SQLite数据插入效率低、速度慢的方法(转)

前言 SQLite数据库由于其简单、灵活、轻量、开源,已经被越来越多的被应用到中小型应用中。甚至有人说,SQLite完全可以用来取代C语言中的文件读写操作。因此我最近编写有关遥感数据处理的程序...

rainbowzc
2017/02/26
0
0
【非凡程序员】 OC第十八节课 (数据库mysql和sqlite3的应用)

在代码中应用sqlite3 ViewController.h文件 #import <UIKit/UIKit.h> #import "sqlite3.h" @interface ViewController : UIViewController { sqlite3 link; NSString path; } @end ViewContr......

七月流火zsp
2015/06/17
103
0
用C语言操作Sqlite数据库

在工作中,我总是使用编译后sqlite3可执行程序,进行数据库的创建;其实我们操作sqlite数据库, 也可是使用源代码级别的形式去操作数据库。我在网上查找,对部分代码进行修改,添加上注释, ...

学习环境
2015/10/14
315
0
Cocos数据篇[3.4](6) ——SQLite3数据库基础用法

【唠叨】 在Cocos2d-x中,简单数据存储,可以使用UserDefault。那么如何存储大量,不规则的数据?我们可以使用 SQLite数据库 存储数据。SQLite 是使用非常广泛的 嵌入式数据库 ,它有小巧 、...

shahdza
2015/02/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

daily work report on May 25,2020

React-Native工程师 岗位要求 1、三年以上基于React-Native技术完成电商平台app混合开发实际工作经验,熟悉电商平台相关业务。 2、能熟练掌握React-Native,并能基于该技术独立完成相关工作,...

qwfys
16分钟前
23
0
HTTP/3 未来可期?

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"加群",加入新技术 2015 年 HTTP/2 标准发表后,大多数主流浏览器也于当年年底支持该标准。此后,凭借着多路复用、头部压缩、服务器推...

osc_3b0dcpcm
18分钟前
5
0
【原创】JVM系列01 | 开篇

  20大进阶架构专题每日送达   1. Java 虚拟机是什么? 1.1 虚拟机   虚拟机:虚拟的计算机,一个用来执行虚拟计算机指令的软件。   虚拟机分为系统虚拟机和程序虚拟机。   系统虚...

osc_0k23td2u
19分钟前
8
0
Flink 1.10 细粒度资源管理解析

相信不少读者在开发 Flink 应用时或多或少会遇到在内存调优方面的问题,比如在我们生产环境中遇到最多的 TaskManager 在容器化环境下占用超出容器限制的内存而被 YARN/Mesos kill 掉[1],再比...

osc_n0c6719w
20分钟前
17
0
IDEA使用技巧-->查看继承关系

在开发中项目庞大的时候你会不知道当前类在项目中的使用情况,在哪被继承?在哪被实现?和谁有关联? 快捷键 eclipse中是: ctrl+tidea中是: ctrl+H点击当前类, 然后ctrl+H...

宇宝
21分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部