文档章节

sqlite3_exec

石头哥哥
 石头哥哥
发布于 2016/02/16 15:07
字数 406
阅读 76
收藏 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( )允许执行一批命令,并可以通过回调接口收集所有的返回数据。  


© 著作权归作者所有

共有 人打赏支持
上一篇: muduo arm 移植
下一篇: android 组件
石头哥哥
粉丝 302
博文 203
码字总数 120417
作品 2
渝中
程序员
私信 提问
在 SQLite3 中使用回调函数

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

阳光飞鸟
2015/03/13
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
0
0
用C语言操作Sqlite数据库

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

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

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

shahdza
2015/02/19
0
0
数据持久化三之SQlite3

使用数据库的步骤ios使用的数据库是sqlite3 UIKit框架并不支持sqlite3,需要导入一个支持sqlite的库 1.创建一个数据库文件,如果已经有了只需要打开数据库文件 2.创建一张表 3.对表的数据进行...

鹿微微鹿
2016/06/29
15
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
10
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
17
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
17
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
8
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部