1、SQL语句的预编译:将语句转为数据流,执行语句前检查语句的语法,但不能知道语句是否能查出结果。此方法有返回值

 预编译成功则返回SQLITE_OK----0否则返回SQLITE_ERROR----1
int sqlite3_prepare_v2(
  sqlite3 *db,                 //指向数据库的指针
  const char *zSql,         //SQL语句
  int nByte,                   //SQL语句的长度 (一般用-1,系统可以自动算出字符串得长度)
  sqlite3_stmt **ppStmt, //指向语句的指针
  const char **pzTail       //SQL中没有用到的一部分,一般为空
);
 
 
2、SQL语句的值绑定
*此类方法均有返回值  预编译成功则返回SQLITE_OK----0否则返回SQLITE_ERROR----1
//对整数值的绑定
int sqlite3_bind_int(
sqlite3_stmt*,            //指向语句的指针
int,                      //占位符的序号(从1开始以此类推)
int                       //绑定的值
);
 
//对字符串值的绑定
int sqlite3_bind_text(
sqlite3_stmt*,            //指向语句的指针
int,                      //占位符的序号(从1开始以此类推)
const char*,              //要绑定的值(这里要c类型的字符串(CString),一般我们使用的是oc的字符串(NSString*)要通过- (__strong const char *)UTF8String转一下就可以了)
int n,                    //该字符串的长度(一般用-1,系统可以自动算出字符串得长度)
void(*)(void*)            //回调函数(这里博主还没用过所以不是很了解以后会慢慢更新)
);
 
//对二进制数据值的绑定 一般用于图片的存取
int sqlite3_bind_blob(
sqlite3_stmt*,            //指向语句的指针
int,                      //占位符的序号(从1开始以此类推)
const void*,              //要绑定的值(这里要的是c类型的比特(Byte),一般我们使用的是oc的NSDATA(NsData*)要通过- (const void *)bytes转一下就可以了)
int n,                    //数据的长度(用- (NSUInteger)length得到  这里为什么不用-1呢?因为-1对于算字符串长度在行,其他的不一定准所以这里我们手动算出数据的长度)
void(*)(void*)            //回调函数(这里博主还没用过所以不是很了解以后会慢慢更新)
);
 
 
3、SQL语句的取值(从数据库中对每一列取值)
//对整数字段的取值
int sqlite3_column_int(
sqlite3_stmt*,            //指向语句的指针
int iCol                  //数据库中表中列的序号(从0开始以此类推)
);
//对字符串字段的取值
*注意这里我们取得是无符号的c字符串我们要先转为有符号C字符串再转为OC字符串
例sname为oc字符串
NSString *sname=[NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];

const unsigned char *sqlite3_column_text(
sqlite3_stmt*,            //指向语句的指针
int iCol                  //数据库中表中列的序号(从0开始以此类推)
);

//对二进制字段的取值
*注意这里我们取得是c二进制我们要转为oc二进制(我们要将byte(c)转为nsdata(oc)通过+ (id)dataWithBytes:(const void *)bytes length:(NSUInteger)length;因为这里需要数据的长度所以需要调用int sqlite3_column_bytes(sqlite3_stmt*, int iCol);获取数据的长度)

int length=sqlite3_column_bytes(stmt,3);//获取二进制数据的长度
NSData *img=[NSData dataWithBytes:sqlite3_column_blob(stmt, 3) length:length]; //将二进制数据转换位NSData对象
 
const void *sqlite3_column_blob(
sqlite3_stmt*,            //指向语句的指针
int iCol                  //数据库中表中列的序号(从0开始以此类推)
);
 

sqlite常用语法详细介绍的更多相关文章

  1. sqlite数据库操作详细介绍 增删改查,游标

    sqlite数据库操作详细介绍 增删改查,游标     本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code     package com.example ...

  2. Linq常用语法详细

    1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; // ...

  3. Linux 操作系统下 VI 编辑器常用命令详细介绍

    一.Vi 简介 vi是unix世界中最通用的全屏编辑器,linux中是用的是vi的加强版vim,vim同vi完全兼容,vi就是"visual interface"的缩写.它可以执行 ...

  4. java基础语法详细介绍

    一.概述 1.java语言概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言; java之父---James Goslin ...

  5. java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal

    一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...

  6. Redis常用命令详细介绍

    一.字符串 字符串键是Redis最基本的键值对类型,将一个单独的键和一个单独的值关联起来.通过字符串键,不仅可以存储和读取字符串,如果输入能被解释为整数和浮点数,还能执行自增或自减操作. 1.SET: ...

  7. linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

    linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...

  8. Android SQLite 数据库详细介绍

    Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...

  9. thinkPHP 模板中的语法知识 详细介绍(十二)

    原文:thinkPHP 模板中的语法知识 详细介绍(十二) 本章节:介绍模板中的语法,详细的语法介绍 一.导入CSS和JS文件    ==>记住常量的是大写 1.css link .js  sc ...

随机推荐

  1. rails常用gem

    一,开发模式下 1,better_errors 使用全新的页面替换 Rails 默认的错误页面,显示更多的上下文信息,例如源码 和变量的值:配合binding_of_caller可以执行代码查看变量的 ...

  2. FCKeditor配置与使用

    fckeditor - (1)资料介绍与安装 fckeditor介绍  FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器.  1.fckeditor官网:http://ww ...

  3. Python笔记 #08# NumPy: Statistic Basis

    数据分析的基本步骤: 了解你的数据(get to know your data), 做一些统计学处理(像僵尸一样盯着数字不会带给你任何灵感!) 实现可视化(get a better feeling f ...

  4. 一次频繁Full GC问题排查过程分享

    问题描述 应用收到频繁Full GC告警 问题排查 登录到对应机器上去,查看GC日志,发现YGC一分钟已经达到了15次,比Full GC还要频繁一些,其中Full GC平均10分钟超过了4次,如下图 ...

  5. bzoj2456 / P2397 yyy loves Maths VI (mode)

    P2397 yyy loves Maths VI (mode) 神奇的摩尔投票法(大雾) 保证众数个数大于一半. 两两相消,剩下的那个必定是众数. 我们只要开2个变量,一个存个数,一个存值即可. (l ...

  6. 20145319 《网络渗透》MS11-050漏洞渗透

    20145319 <网络渗透>MS11-050漏洞渗透 一 实验内容 初步掌握平台matesploit的使用 有了初步完成渗透操作的思路 了解MS11_050相关知识: - 安全公告:KB ...

  7. ifconfig源码分析之与内核交互数据

    <ifconfig源码分析之与内核交互数据>本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝.转载,转载时请保持文档的完整性.参考资料:<Linux设备驱动 ...

  8. Rsync+sersync实现实时同步

    介绍: sersync主要用于服务器同步,web镜像等功能.基于boost1.43.0,inotify api,rsync command.开发.目前使用的比较多的同步解决方案是inotify-too ...

  9. CGI, FCGI, SCGI, WSGI 释异

    IKI Links: CGI - http://en.wikipedia.org/wiki/Common_Gateway_Interface FCGI - http://en.wikipedia.or ...

  10. ${user.home} is not working in jenkins windows system

    default setting create m2 in C:\Windows\system32\config\systemprofile change it to <localReposito ...