文档章节

sqlite3_exec

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


© 著作权归作者所有

共有 人打赏支持
石头哥哥
粉丝 300
博文 188
码字总数 120786
作品 2
重庆
程序员
在 SQLite3 中使用回调函数

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

阳光飞鸟 ⋅ 2015/03/13 ⋅ 0

用C语言操作Sqlite数据库

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

学习环境 ⋅ 2015/10/14 ⋅ 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

Cocos数据篇[3.4](6) ——SQLite3数据库基础用法

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

shahdza ⋅ 2015/02/19 ⋅ 0

数据持久化三之SQlite3

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

鹿微微鹿 ⋅ 2016/06/29 ⋅ 0

SQLite数据库实际运用

SQLite在我们这些运用过其他数据库的人手里,其实根本就不算是数据库,因为sqlite实在是太小了,而且sqlite中的数据类型 (name text, age integer, phoneNo text)都是假的,只是为了和其他数...

哥特复心 ⋅ 2014/01/07 ⋅ 0

Cocos2d-x中创建SQLite数据库

我们下边介绍如何通过SQLite3提供的API实现MyNotes数据库创建。创建数据库一般需要经过如下三个步骤。 (1) 使用sqlite3open函数打开数据库。 (2) 使用sqlite3exec函数执行Create Table语句,...

智捷课堂 ⋅ 2014/10/22 ⋅ 0

sqlite3编程 & 示例

0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库、创建表格、插入数据、查询数据、删除数据等。 1. 说明 这里我们假设你已经...

长平狐 ⋅ 2012/09/03 ⋅ 0

iOS数据持久化——SQLite(数据库)

1、 SQLite基本概述 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。 ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomi...

kinglin_fu ⋅ 2016/02/01 ⋅ 0

ios开发之iOS的数据库知识

// // ViewController.m // 01-sqlite3的基本使用 // // Created by 鹿微微鹿 on 16/5/3. // Copyright (c) 2016年 鹿微微鹿. All rights reserved. // //使用数据库的步骤ios使用的数据库是......

鹿微微鹿 ⋅ 2016/05/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长...

颖辉小居 ⋅ 19分钟前 ⋅ 0

利用有限制通配符提升API灵活性(28)

1、参数化类型是不可变的 List<String> 不是List<Object>的子类,但是二者是有联系的 利用有限制的通配符类型处理类似情况 List<? extends Object>(生产者) Collection<? super E>(消费者......

职业搬砖20年 ⋅ 25分钟前 ⋅ 0

ssm框架 +bootstrap分页

这里有两种方式 方式一:自己写分页 方式二:使用插件PageHelper 1.自己写分页 1.1 效果 1.2 实现过程 1.2.1 创建分页公共类 //---------------------------1.属性-------------------------...

Lucky_Me ⋅ 32分钟前 ⋅ 0

Istio

helm template install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml after $ kubectl create namespace istio-system$ kubectl create -f $HOME/ist......

openthings ⋅ 32分钟前 ⋅ 0

内核线程、轻量级进程、用户线程

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成...

117 ⋅ 37分钟前 ⋅ 0

elasticsearch2.4.6升级为elasticsearch-5.5.0的经历

将elasticsearch-5.5.0 中的配置 path.data 指向原来的数据路径 即 path.data: /usr/local/src/elasticsearch-2.4.6/data 注意: elasticsearch-5.5.0 需要将jdk版本升级到1.8...

晨猫 ⋅ 38分钟前 ⋅ 1

lvm讲解 磁盘故障小案例

1

oschina130111 ⋅ 42分钟前 ⋅ 0

那些提升开发人员工作效率的在线工具

本文转载自公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。 Hollis偏爱使用...

时刻在奔跑 ⋅ 54分钟前 ⋅ 0

restful风格 实现DELETE PUT请求 的web.xml的配置

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframe......

泉天下 ⋅ 今天 ⋅ 0

Shell数组

Shell数组 Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数...

蜗牛奔跑 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部