sqlite

iOS开发数据库篇—SQLite常用的函数

核能气质少年 提交于 2020-03-12 11:32:09
一、简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据库实例 ); 2.执行任何SQL语句 int sqlite3_exec( sqlite3*, // 一个打开的数据库实例 const char *sql, // 需要执行的SQL语句 int (*callback)(void*,int,char**,char**), // SQL语句执行完毕后的回调 void *, // 回调函数的第1个参数 char **errmsg // 错误信息 ); 3.检查SQL语句的合法性(查询前的准备) int sqlite3_prepare_v2( sqlite3 *db, // 数据库实例 const char *zSql, // 需要检查的SQL语句 int nByte, // SQL语句的最大字节长度 sqlite3_stmt **ppStmt, // sqlite3_stmt实例,用来获得数据库数据 const char **pzTail ); 4.查询一行数据 int sqlite3_step(sqlite3_stmt*); // 如果查询到一行数据,就会返回SQLITE_ROW 5.利用stmt获得某一字段的值(字段的下标从0开始) double sqlite3

SQLite升级

血红的双手。 提交于 2020-03-10 05:50:08
升级方案 1.让用户将应用卸载然后再安装最新版本的app 2.对数据库进行升级 对于第一种方案,用户卸载老版本就会造成数据丢失,这样对于用户的体验性极差,不到万不得已的时候不要做。 我们倾向于选择第二项方案。 不同版本升级分析 3.1.Version1.0 当我们开发第一个版本数据库的时候,SQLiteOpenHelper的继承类里会走onCreate()方法,即 —->v1.0 走onCreate(),这时候并不涉及更新的方法。 3.2.Version2.0 当我们开发到第二个数据库版本的时候,分两种情况: (1) 用户从1.0版本升级到2.0版本 SQLiteOpenHelper的继承类里会走onUpgrade()方法,不走onCreate()方法。即v1.0—->v2.0 走onUpgrade(); (2) 如果是用户直接安装v2.0 , SQLiteOpenHelper的继承类里会走onCreate()方法,不走onUpgrade()方法。即 —->v2.0 走onCreate() 3.3.Version3.0 (1) 用户从1.0版本升级到3.0版本 ,SQLiteOpenHelper的继承类里会走onUpgrade()方法,不走onCreate()方法。即v1.0—->v3.0 走onUpgrade() (2) 用户从2.0版本升级到3.0版本

.net core加载加密的sqlite文件失败解决方案

僤鯓⒐⒋嵵緔 提交于 2020-03-08 18:53:29
.net core加载加密的sqlite文件失败解决方案   在项目开发过程中,遇到使用sqlite的场景。在加载加密的sqlite时,连接sqlite时报错,,先用百度查询了下资料,尚未找到对应解决方法,故接着在stackoverflow上查找,找到了解决思路,并已解决问题。 1.开发时所用到的相关内容 1.1相关项目组件 组件名称 版本 Microsoft.NETCore.App 2.1.0 sqlSugarCore 5.0.0.9 1.2 sqlite加密软件 软件名称 版本 SQLiteStudio 3.1.1 2.解决过程 2.1 遇错过程   刚开始用的时候是直接用SQLiteStudio直接创建了SQLCipher加密的sqlite文件,用sqlsugar进行DB连接时候程序报错。报错提示如下: file is encrypted or is not a database 2.2 第一种解决方案——System.Data.Sqlite 2.2.1 使用System.Data.Sqlite   在sqlite连接的时候,弃用sqlsugar,转而采用System.Data.Sqlite中的sqliteconnection来连接,这个需要自行从nuget中下载,当前采用是System.Data.Sqlite的最新版本1.0.112,且需要将原先加密方式进行改变

Sqlite3 使用教程

北城余情 提交于 2020-03-08 14:59:21
OS X 自从 10.4 后把 SQLite 这套相当出名的数据库软件,放进了作业系统工具集里。OS X 包装的是第三版 的 SQLite,又称 SQLite3。这套软件有几个特色:  软件属于公共财(public domain),SQLite 可说是某种「美德软件」(virtueware),作者本人放 弃着作权,而给使用 SQLite 的人以下的「祝福」(blessing): o May you do good and not evil. 愿你行善莫行恶 o May you find forgiveness for yourself and forgive others. 愿你原谅自己宽恕他人 o May you share freely, never taking more than you give. 愿你宽心与人分享,所取不多于你 所施予  支援大多数的 SQL 指令(下面会简单介绍)。  一个档案就是一个数据库。不需要安装数据库服务器软件。  完整的 Unicode 支援(因此没有跨语系的问题)。  速度很快。 目前在 OS X 10.4 里,SQLite 是以/usr/bin/sqlite3 的形式包装,也就说这是一个命令列工具,必须先从终端 机(Terminal.app 或其他程序)进入 shell 之后才能使用。网络上有一些息协助使用 SQLite

解决System.Data.SQLite兼容32位和64位问题

别来无恙 提交于 2020-03-08 11:12:20
将当前说明文档的目录下的x64、x86目录和System.Data.SQLite.dll文件复制到您的应用程序根目录中(注意更新引用,引用System.Data.SQLite.dll即可,两目录中的不需要引用,但发布时需打包)。 如果是WEB网站,则复制到Bin目录下即可,发布时,也注意x64和x86一起打包发布 注意,当前的System.Data.SQLite.dll是完全的托管代码,不是混合程序集,文件大小为两百多KB, 如果你使用的是八百多KB以上的,说明你使用的是混合程序集,混合程序集是指定的处理器架构的,无法在不同架构下使用 所谓混合程序集的System.Date.SQLite指的是包含了托管的代码和Native的C/C++代码,本解决办法提供的System.Data.SQLite的为完全的托管 代码,必须配合Native Interop dll才能使用 注意:System.Data.SQLite必须是1.0.86.0及其以上版本 文件下载地址: http://files.cnblogs.com/Ares-blog/sqlite%E5%85%BC%E5%AE%B964%E4%BD%8D%E5%92%8C32%E4%BD%8D%E6%96%B9%E6%A1%88.zip 来源: https://www.cnblogs.com/Ares-blog/p/3439354.html

sqlite常用命令

我的未来我决定 提交于 2020-03-07 23:59:40
sqlite常用命令 一、查看版本信息: #sqlite3 -version 二、sqlite3常用命令 1、当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识: 2、输出帮助信息: sqlite>.help 3、查看数据库文件信息命令(注意命令前带字符’.’): sqlite>.database 4、退出sqlite终端命令: sqlite>.quit 或 sqlite>.exit 5、列出当前显示格式的配置: sqlite>.show 6、显示数据库结构:.schema 显示表的结构:.schema 表名 其实就是一些 SQL 语句,他们描述了数据库的结构,如图 7、导出某个表的数据: .dump 表名 8、设置导出目标: .output 文件名 或者 .output stdout 先运行 .output cars.sql ,然后再运行 .dump 命令试试看?如果要回复成导出到终端(标准输出),则运行 .output stdout 10、设置分隔符:.separator 分隔符 我们可以首先运行 SELECT * FROM Cars; ,可以看到默认的分隔符是 | 运行.separator : 以后,再 SELECT * FROM Cars;,可以看到分隔符已经变成 : 了 11、显示标题栏:.headers on 12

What is the difference between SQLite integer data types like int, integer, bigint, etc.?

大城市里の小女人 提交于 2020-03-07 21:50:52
问题 What is the difference between integer data types in sqlite? INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 Which one can store 32-bit integers and which one can store 64-bit values? Is there support for 128-bit? I find integer data size a little confusing for now, INTEGER for example can store up to 64-bit signed integers, but values may occupy only 32 bits on disk. Calling sqlite3_column_int on an INTEGER column will work only if the value stored is less that int32

What is the difference between SQLite integer data types like int, integer, bigint, etc.?

若如初见. 提交于 2020-03-07 21:47:29
问题 What is the difference between integer data types in sqlite? INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 Which one can store 32-bit integers and which one can store 64-bit values? Is there support for 128-bit? I find integer data size a little confusing for now, INTEGER for example can store up to 64-bit signed integers, but values may occupy only 32 bits on disk. Calling sqlite3_column_int on an INTEGER column will work only if the value stored is less that int32

What is the difference between SQLite integer data types like int, integer, bigint, etc.?

与世无争的帅哥 提交于 2020-03-07 21:45:55
问题 What is the difference between integer data types in sqlite? INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 Which one can store 32-bit integers and which one can store 64-bit values? Is there support for 128-bit? I find integer data size a little confusing for now, INTEGER for example can store up to 64-bit signed integers, but values may occupy only 32 bits on disk. Calling sqlite3_column_int on an INTEGER column will work only if the value stored is less that int32

What is the difference between SQLite integer data types like int, integer, bigint, etc.?

拟墨画扇 提交于 2020-03-07 21:44:05
问题 What is the difference between integer data types in sqlite? INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 Which one can store 32-bit integers and which one can store 64-bit values? Is there support for 128-bit? I find integer data size a little confusing for now, INTEGER for example can store up to 64-bit signed integers, but values may occupy only 32 bits on disk. Calling sqlite3_column_int on an INTEGER column will work only if the value stored is less that int32