sqlite3_exec

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433212.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HBase 集群搭建

文章目录 安装前准备兼容性官方网址 集群搭建搭建 Hadoop 集群搭建 Zookeeper 集群解压缩安装配置文件高可用配置分发 HBase 文件 服务的启停启动顺序停止顺序 验证进程查看 Web 端页面 安装前准备 兼容性 1)与 Zookeeper 的兼容性问题,越新越好&#…

四叉树碰撞优化版,速度飞一样

http://bbs.9ria.com/thread-243675-1-1.html转载于:https://www.cnblogs.com/chenhongyu/p/3283165.html

在哪个Linux发行版上运行python,怎么在linux上运行python

Linux默认是已经安装好了Python程序目前来说,大多数的Linux发行版是安装了两个版本的Python程序一个是Python 2.x一个是Python 3.x一些系统自带的程序文件需要Python 2的支持,另外Python 3又是大势所趋所以,我们最好不要动系统的Python版本需…

职场上个人的核心技术_职场上,这3种人表面老实,实际却是个“高手”,要远离...

职场上,这3种人表面老实,实际却是个“高手”,要远离!在职场生活中,每一步都需要走好,因为你不慎走错了一步也就可能满盘皆输。而公司里面也有一种比较特殊的情况,也就是有这么3种类型的人&#…

使用SQLite3存储和读取数据

SQLite3是嵌入在iOS中的关系型数据库,对于存储大规模的数据很有效。SQLite3使得不必将每个对象都加到内存中。 基本操作: (1)打开或者创建数据库 sqlite3 *database; int result sqlite3_open("/path/databaseFile"…

NCBI SRA数据预处理

SRA数据的的处理流程大概如下 一、SRA数据下载、 NCBI 上存储的数据现在大都存储为SRA格式。 下载以后就是以SRA为后缀名。 这里可以通过三种方式下载SRA格式的数据。 1.通过http方式,2.通过ftp方式,3.通过Aspera Aspera可以在NCBI网站上下载。 参阅&…

化浆池是什么东西_一种双工位浆化池的制作方法

本发明涉及铋矿用生产设备技术领域,具体的说是一种双工位浆化池。背景技术:铋在自然界中以游离金属和矿物的形式存在。铋的主要矿物有自然铋辉铋矿、铋华、以及菱铋矿、铜铋矿等,其中以辉铋矿与铋华为最重要。铋的矿物大都与钨、钼、铅、锡、…

Linux下,sqlite简单实例

#include "stdlib.h"#include "stdio.h"#include "sqlite3.h"int main(){charcSql[1024] {0};sqlite3*pSql NULL;char *pError NULL;int i 0, j 0;char**ppTableData NULL;int nRow 0, nColumn 0;int pos 0;//打开数据库sqlite3_open("…

linux编程参数列表,Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)...

一. 概述linux安全系统的核心是用户账户。 创建用户时会分配用户ID(UID)。 UID是唯一的,但在登录系统时不是用UID,而是用登录名。在讲文件权限之之前,先了解下linux是怎样处理用户账户的。以及用户账户需要的文件和工具,这样处理文…

GitHub托管BootStrap资源汇总(持续更新中…)

Twitter BootStrap已经火过大江南北,对于无法依赖美工的程序员来说,这一成熟前卫的前端框架简直就一神器,轻轻松松地实现出专业的UI效果。GitHub上相关的的开源项目更是层出不穷,在此整理列举一些感觉不错的组件或增强实现&#x…

Sqlite3_prepare

这个函数将sql文本转换成一个准备语句(prepared statement)对象,同时返回这个对象的指针。这个接口需要一个数据库连接指针以及一个要准备的包含SQL语句的文本。它实际上并不执行(evaluate)这个SQL语句,它仅…

python爬虫框架scrapy实例详解_python爬虫框架scrapy实例详解

生成项目scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码。打开命令行,执行:scrapy startproject tutorial,生成的项目类似下面的结构tutorial/scrapy.cfgtutorial/__in…

themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...

实现文件上传和回显1、新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 。pow.xml文件下的依赖如下2、根据下图,创建如下文件3、直接上代码配置文件 application.xmlserver:port: 8005file:upload:path: F://upload/relationImg: /images/配置…

sqlite3_setp

这个过程用于执行有前面sqlite3_prepare创建的准备语句。这个语句执行到结果的第一行可用的位置。继续前进到结果的第二行的话,只需再次调用sqlite3_setp()。继续调用sqlite3_setp()知道这个语句完成,那些不返回结果的语句(如:INS…

aix linux运维,运维老司机分享的八个AIX日常运维经验及案例

原文来自微信公众号:AIX专家俱乐部【经验分享】在AIX启动时,打开debug模式经常遇到aix无法启动,但又不知道pending在哪,因此打开启动过程的debug模式,对于诊断问题有很大的帮帮助。下面是打开debug的方法:打…

Mysql找不到mysql.sock怎么办?

1. #ps -aux|grep mysql 找mysql的进程. #kill mysql进程号 确定全部kill光 2.直接跳第3步,无效再使用第2步 /usr/local/mysql/bin/mysqld_safe --usermysql & 启动mysql. bin/mysql -u root -p 登陆mysql 3. 重启mysql服务,可以到mysql的安装目录下…

ssr无法在win10使用_Win10疑难解答无法使用怎么办-百度经验

Win10疑难解答无法使用的解决方法Win10系统打开疑难解答工具时只显示“出于安全考虑,某些设置由组策略控制”,怎么办?1、打开Windows10系统的控制面板,双击疑难解答,出现提示:出于安全考虑,某些…

sqlite3_column

这个过程从执行sqlite3_step()执行一个准备语句得到的结果集的当前行中返回一个列。每次sqlite3_step得到一个结果集的列停下后,这个过程就可以被多次调用去查询这个行的各列的值。对列操作是有多个函数,均以sqlite3_column为前缀 const void *sqlite3_…

linux中将hdfs数据导入hbase,将数据文件导入到HBase中

假设有一个TSV格式的数据文件test.dat(TSV是指数据文件中的每个字段是以制表符隔开的)首先,将test.dat上传到hdfs上,具体的命令如下:hadoop fs -copyFromLocal test.dat的路径名 /tmp/test.dat(/tmp是hdfs上的一个目录)执行以下命令就可以查…

ios13看怎么airpods电量_iPhoneXR查看airpods蓝牙耳机电量的三种方法

AirPods是苹果公司研发的一款蓝牙耳机,与方法一、当 AirPods 与 iPhoneXR 已经自动配对连接,这时想看耳机和盒子电量,只要在 iPhoneXR 屏幕点亮或解锁的情况下,在手机旁边打开 AirPods 收纳盒的盖子,手机便会自动弹出耳…