sqlite3函数接口

sqlite3函数接口(重点★):

int sqlite3_open(const char*, sqlite3**);
函数用于打开/创建一个函数库
const char* 指定文件名,sqlite3** 指定数据库句柄,用户通过数据库句柄操作数据库
返回一个整数错误代码,=0 表示成功码,> 0都是错误

int sqlite3_close(sqlite3*);
关闭数据库文件,参数是数据库句柄

int sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void*, char**);
函数用于执行一条或多条SQL语句,SQL语句之间用“;”隔开
sqlite3*指定已打开的数据库句柄,const char *sql   指定SQL指令,sqlite_callback  在回调函数中可以获得SQL执行的结果,void*  指定传给回调函数的数据 , char**   指定命令执行失败的详细错误信息
返回0表示sql指令执行完毕,否则说明这次执行没有成功

int sqlite3_get_table(
  sqlite3 *db,          /* An open database */
  const char *zSql,     /* SQL to be evaluated */
  char ***pazResult,    /* Results of the query */
  int *pnRow,           /* Number of result rows written here */
  int *pnColumn,        /* Number of result columns written here */
  char **pzErrmsg       /* Error msg written here */
);
sqlite3_get_table主要是用于非回调的方式进行select查询
db 打开数据库得到的指针, zSql 一条sql语句,跟sqlite3_exec中一样,        pazResult 查询的数据结果,他是一个指针数组,内存分布为:字段名称,后面是紧接着是每个字段的值,     pnRow 查询到的数据条数(行数),      pnColumn 查询到的字段数(列数),      pzReemsg 错误信息;
返回0或其他

void sqlite3_free_table(char **result);
用于释放保存查询内容的指针数组

int sqlite_callback(
    void* pv,    /* 由 sqlite3_exec() 的第四个参数传递而来 */
    int argc,        /* 表的列数 */
    char** argv,    /* 指向查询结果的指针数组, 可以由 sqlite3_column_text() 得到 */
    char** col        /* 指向表头名的指针数组, 可以由 sqlite3_column_name() 得到 */
);
返回值:1 中断查找,0 继续列举查询到的数据

还有2个(次要):

const char *sqlite3_errmsg(sqlite3*);
返回错误码所对应的文字说明,参数是数据库句柄

void sqlite3_free(void*);
 释放存放错误信息的内存空间,sqlite3_errmsg  返回的errmsg必须用此函数释放

原文地址:https://www.cnblogs.com/zx0722/p/11314397.html

时间: 2024-10-11 22:38:47

sqlite3函数接口的相关文章

sqlite3 C接口

<1,>创建Sqlite3数据库文件 C接口调用测试; 无parentDir <2,>数据插入接口 执行sql语句函数int sqlite3_exec(sqlite3*,//打开数据库连接对象,sqlite3 *db = NULL;const char *sql, //需要执行的sqlint(*callback)(void*,int,char**,char**),//回调函数void *,//回调函数的第一个参数char **errmsg //错误消息); **pp,指的是取指针的

Java 8 中函数接口,陈货翻新了炒,只是为了Lambda表达式

Java开发人员应该对java.lang.Runnable,java.util.Comparator,java.util.concurrent.Callable 等等接口不会感到陌生.他们都只有一个单一的抽象方法.这样的接口,我们通常叫单一抽象方法接口(SAM,Single Abstract Method Interface). 以前大家应该经常使用下面的代码片段 public class InnerAnonymousClassSample { public static void main(S

【E2LSH源码分析】E2LSH函数接口

上一小节,我们对E2LSH代码主要的源码框架和用到的数据结构作了简单介绍(http://blog.csdn.net/jasonding1354/article/details/38331229),这一节我将简单介绍一下E2LSH的主要函数接口. 1.构建R-NN数据结构(定义在NearNeighbors.h) 输入为1-δ.R.d和数据集P,利用下面函数来构建: PRNearNeighborStructT initSelfTunedRNearNeighborWithDataSet(RealT t

数据库(SQLITE3函数总结): sqlite3_open, sqlite3_exec, slite3_close,sqlite3_prepare_v2,sqlite3_column_text,

Sqlite3 的确很好用.小巧.速度快.最近研究它,有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记. 导入SQLLite library并引入头文件. libsqlite3.dylib本身是个链接,在这里它指向libsqlite3.0.dylib.也就是说在这里你添加libsqlite3.dylib和添加libsqlite3.0.dylib其实是添加了同一个文件,没有区别,那为什么要添加libsqlite3.0.dylib呢?原因在于libsqlite3.dylib是旧版的sq

Advapi32.dll 函数接口说明

Advapi32.dll 函数接口说明             函数原型                               说明    AbortSystemShutDown               终止使用InitiatezSystemShutdown函数启动系统                                                         AccessCheck                       服务器应用程序用该函数来控制验证客户对

IO端口和IO内存的区别及分别使用的函数接口

每个外设都是通过读写其寄存器来控制的.外设寄存器也称为I/O端口,通常包括:控制寄存器.状态寄存器和数据寄存器三大类.根据访问外设寄存器的不同方式,可以把CPU分成两大类.一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没有专门用于设备I/O的指令.这就是所谓的"I/O内存"方式.另一类CPU(典型的如X86),将外设的寄存器看成一个独立的地址空间,所以访问内存的指令不能用来访问这

C# 使用 SAP NCO3.0 调用SAP RFC函数接口

C# 使用 SAP NCO3.0 调用SAP RFC函数接口 最近使用C#调用SAP RFC函数,SAP提供了NCO3.0组件. 下载组件安装,之后引用“sapnco.dll”和“sapnco_utils.dll”两个文件. 在程序中 using SAP.Middleware.Connector; 具体看下面代码 使用app.config文件配置注册客户端连接 <?xml version="1.0"?> <configuration> <configSec

java调用matlab函数接口的两种方案

Java 调用matlab 函数接口 Java调用matlab函数接口有两种方式: l 一种是通过matlab把函数打成jar包: l 一种是把matlab编译成dll后,用C++再封装成java能支持的数据类型的dll. 注意:不论用这两种方式中的哪一种,最终部署时都需要matlab环境(MCR,在matlab安装路径下有). 1. 方式一:matlab直接打jar包 1.1. 利用matlab自带工具打jar包 1.1.1. 建立jar包 在matlab的Commond Window中输入d

函数接口

了解如何创建自定义函数接口,以及为什么应尽量使用内置接口 https://www.ibm.com/developerworks/cn/java/j-java8idioms7/index.html 系列内容: 此内容是该系列的一部分:Java 8 习惯用语 lambda 表达式的类型是什么?一些语言使用函数值或函数对象来表示 lambda 表达式,但 Java? 语言没有这么做.Java 使用函数接口来表示 lambda 表达式类型.乍一看似乎有点奇怪,但事实上这是一种确保对 Java 语言旧版本