sqlite
JDSH0224
这个作者很懒,什么都没留下…
展开
-
WAL文件的使用
数据中心有多种日志模式,具体描述如下,本次主要分析WAL日志模式的配置和操作:#define DB_JOURNAL_DELETE "DELETE" //默认模式。在该模式下,在事务结束时,日志文件将被删除#define DB_JOURNAL_TRUNCATE "TRUNCATE" //日志文件被阶段为零字节长度#define DB_JOURNAL_PERSIST "PERSIST" //日志文件被留在原地,但头部被重写,表明日志不再有效...原创 2020-06-04 15:29:50 · 1298 阅读 · 0 评论 -
SQLite3线程锁分析
sqlite3三种锁:1. 单线程模式2. 多线程模式3. 串行模式动态配置流程:1. sqlite3_config函数配置 ...... case SQLITE_CONFIG_SINGLETHREAD: { /* Disable all mutexing */ sqlite3GlobalConfig.bCoreMutex = 0; sqlite3GlobalConfig.bFullMutex = 0; break; } .原创 2020-05-16 15:12:31 · 700 阅读 · 0 评论 -
PRAGMA命令用法
https://www.iteye.com/blog/iihero-1189633原创 2020-04-20 13:46:11 · 160 阅读 · 0 评论 -
SQLite触发器
Table of Contents1.前提2. artist表3.track表4.触发器创建1.前提 笔者要建立两张数据表artist、track,通过触发器TRIGGER实现artist中插入记录时能同步到track数据库表。2. artist表CREATE TABLE artist(artistid INTEGER PRIMARY K...原创 2020-03-18 23:33:01 · 409 阅读 · 0 评论 -
SQLite 外键和视图
Table of Contents1.artist表1.1.创建artist表1.2artist表添加记录2.track表2.1 创建track表2.2track表添加记录3.view视图31.创建view视图3.2视图记录4.总结4.1外键4.2视图1.artist表1.1.创建artist表CREATE T...原创 2020-03-17 23:19:06 · 471 阅读 · 0 评论 -
SQLite数据库记录去重
SELECT DISTINCT 字段名 FROM 表名 WHERE 条件;去重关键字DISTINCT原创 2020-02-22 10:49:07 · 3793 阅读 · 0 评论 -
数据库唯一索UNIQUE,解决一张表的记录导入另外一张表时,记录相同用更新,没有的就增加
你可能在批量处理一个事务的时候,想要批量插入一系列的数据,但是这些数据当添加完一次之后,重新添加的时候,你不想要重新添加,只是想将原有的数据进行更新,例如:我想要通过Excel将一系列的图书导入到数据库中,而这些图书在你下一次编辑之后,重新导入,只是对原有的数据进行修改。以上是一个业务的场景。在MSSQL中,你可以使用诸如: IF NOTEXISTS(SELECT* FROMB...原创 2019-12-12 16:09:29 · 185 阅读 · 0 评论 -
用sqlite3_get_table代替SQLite3可视化工具中输入命令行查询返回的结果
1. 源代码//描述:查询数据库表的字段//参数:@pszTabName 数据库表名// @piRowNum 返回表的行数// @piColNum 返回表的列数// @ppszResults 返回的结果,这个结果在使用完之后必须释放,否则导致内存泄露!//返回:成功返回表字段信息,反之为NULLchar** CSqlApi::QueryFields(const char* psz...原创 2019-11-21 10:46:14 · 364 阅读 · 0 评论 -
SQLITE3默认行记录序号字段ROWID
1. 查询数据库行记录序号的字段名称为ROWIDselect ROWID from frz_50040200 where (ID=20020200 OR ID=20030200)2. 打印行ROWID原创 2019-11-20 15:50:34 · 1817 阅读 · 0 评论 -
JOIN和UNION区别
join 是两张表做交连后里面条件相同的部分记录产生一个记录集;union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 ;原创 2019-11-18 14:38:59 · 271 阅读 · 0 评论 -
SQLite3 使用容器vector批量插入记录
int SQL_EXE(std::vector<std::string> vtExeSql){ if (NULL == m_pDB) { return -1; } char* pErrMsg = NULL; int iRet = SQLITE_OK; iRet = sqlite3_exec(m_pDB, "BEGIN", NULL, NULL, &p...原创 2019-11-07 08:58:28 · 660 阅读 · 0 评论 -
sqlite3中的联合主键和自增主键
sqlite3中的自增主键和联合主键设置sqlite操作语句收集1、sqlite支持建立自增主键,sql语句如下:CREATE TABLE w_user( id integer primary key autoincrement, userename varchar(32), usercname varchar(32), userpass...原创 2019-11-01 23:13:57 · 1932 阅读 · 0 评论 -
SQLite内存数据库+ATTACH附加文件数据库
1. 数据库附加功能使用详见:https://blog.csdn.net/zhanglianyu00/article/details/784367642. 内存数据库使用(以下代码经过验证ok,源码是其它网友的,真的是坑,没有经过验证就发到网上...)const char* file_database_path = USER_DATA_SQLITE3_PATH"filedb"...原创 2019-08-01 18:34:19 · 2635 阅读 · 0 评论 -
SQLite3 union all 与union的差异
https://www.runoob.com/sqlite/sqlite-unions-clause.html原创 2019-08-01 19:10:00 · 1293 阅读 · 0 评论 -
SQLite中 limit 与 offset 的用法
SQL查询语句中的 limit 与 offset 的用法:limit y 分句表示: 读取 y 条数据limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据比如分页获取数据:第1页: 从第0个开始,获取20条数据selete * from testtable limit 0, 2...原创 2019-07-30 15:12:45 · 5545 阅读 · 0 评论 -
Sqlite sqlite3_config 报错 21
要使用Sqlite进行开发,需要用sqlite3_config()函数设置多线程模式,结果发现调用此函数一直ERROR,错误码是21.查看了相关的错误码文档,不明所以。。。之后果断google,找到了问题的所在和解决方案(以下的意思是必须在打开数据库前进行sqlite3_config配置,否则就会出现报21这个错误):I struggled long and hard with this a...原创 2019-07-12 16:46:38 · 1383 阅读 · 0 评论 -
sqlite内存数据库、文件数据库
详见:https://blog.csdn.net/lijinqi1987/article/details/51672711 由于sqlite对多进程操作支持效果不太理想,在项目中,为了避免频繁读写 文件数据库带来的性能损耗,我们可以采用操作sqlite内存数据库,并将内存数据库定时同步到文件数据库中的方法。实现思路如下:1、创建文件数据库;2、创建内存数据库(文件数据...转载 2019-07-16 09:06:13 · 1830 阅读 · 0 评论 -
linux sqlite3 arm平台移植
网上大部分资料太杂、太多,没有一个整体的统一,以下是本人心得,装载请指明出处,谢谢! 在ARM平台上移植sqlite3数据库需下载的安装包:ncurses-5.9.tar.gz,readline-6.1.tar.gz,sqlite-autoconf-3080100.tar.gzzlib-1.2.6.tar.gz ① 首先编译sqlite-autoconf-3...原创 2013-12-06 16:58:14 · 3286 阅读 · 0 评论 -
vs2008 sqlite3编译成sqlite3.lib静态库
1. 打开vs2008,新建项目-->Visual C++ -->Win32-->Win32--Win32项目, 等待应用程序向导,然后点击下一步即可;2. 在向导界面,应用程序类型选择“DLL”,附加选项选择“空白项目”;3. 指定编译的sqlite3.lib库需要的运行时库,项目工程-->配置属性-->C/C++调试-->代码生成-->运行时库...原创 2019-01-02 14:28:10 · 313 阅读 · 0 评论 -
SQLite PRAGMA
SQLite PRAGMASQLite 的 PRAGMA 命令是一个特殊的命令,可以用在 SQLite 环境内控制各种环境变量和状态标志。一个 PRAGMA 值可以被读取,也可以根据需求进行设置。语法要查询当前的 PRAGMA 值,只需要提供该 pragma 的名字:PRAGMA pragma_name;要为 PRAGMA 设置一个新的值,语法如下:PRAGMA pra...转载 2019-01-14 17:32:08 · 189 阅读 · 1 评论 -
SQLite3并发问题
1. https://blog.csdn.net/tajon1226/article/details/548643222. https://blog.csdn.net/u012218838/article/details/793629293. http://blog.51cto.com/linzimo777/15442024. 数据库创建时指定的线程模式:https://www.cnb...原创 2019-01-17 00:01:22 · 1234 阅读 · 0 评论 -
PRAGMA auto_vacuum
1. SQLite Vacuum VACUUM命令通过复制主数据库中的内容到一个临时数据库文件,然后清空主数据库,并从副本中重新载入原始的数据库文件。这消除了空闲页,把表中的数据排列为连续的,另外会清理数据库文件结构。如果表中没有明确的整型主键(INTEGER PRIMARY KEY),VACUUM 命令可能会改变表中条目的行 ID(ROWID)。VACUUM 命令只适用于主数据库,...原创 2019-02-22 09:42:31 · 1627 阅读 · 0 评论 -
C/C++混合编程出现:预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)问题的解决方案
今天试了一下C/C++混合编程,然后就出现了上面那个蛋疼的问题,去网上查了一下,发现原来是C语言和C++预编译头的问题。error:预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)英文版:fatal error C1853: 'pjtname.pch' precompiled header file is from a previous version...转载 2019-05-09 17:23:27 · 1368 阅读 · 0 评论 -
为什么不用sqlite3_get_table获取数据?
问题:将16进制数据转换成字符串,然后插入到SQLite3数据库,通过可视化工具或sqlite3_get_table()可以正常获取数据,但16进制数据转换成字符串带来的问题是会导致NandFlash空间增大一倍,如16进制0x34转换成字符串后是0x33、0x34,占用两字节空间,在紧缺的NandFlash资源下是不允许的!所以入库的16进制数据需直接存储到数据库,而不进行字符串的转换之后再入库...原创 2019-05-09 19:52:25 · 1816 阅读 · 1 评论 -
SQLite可视化管理工具汇总(更新中)
SQLiteSpy最新版本1.9.8,重大改变,支持db拖拽SQLiteStudio最新版本3.0.3,重大改变,打开数据量较大的数据库速度明显改善,还有count查询,堪比SQLiteExpertSQLiteExpert 最新版本3.5.76,相信也更好用了,尚未体验,SQLiteStudio已经很满足了,推荐!【免费且保持更新】1、SQLiteSpy免费 单文件ht...转载 2019-05-10 08:56:57 · 4548 阅读 · 0 评论 -
SQLite事务并发访问问题?
//描述:执行命令 void ExecSqlCmd(sqlite3 *db, const char *sql, const char *pszThrdName){ int iRet; char *err_msg = 0; char buf[1024]; if ((iRet = sqlite3_exec(db, sql, NULL, 0, &err_msg)) != S...原创 2019-05-10 16:19:40 · 879 阅读 · 0 评论 -
sqlite3内存数据库
1.https://www.cnblogs.com/soqu36/p/9153855.html2.https://sqlite.org/inmemorydb.html原创 2019-06-26 19:10:28 · 3556 阅读 · 0 评论 -
SQLite支持3种线程模式
1. 单线程:这种模式下,没有进行互斥,多线程使用不安全。禁用所有的mutex锁,并发使用时会出错。当SQLite编译时加了SQLITE_THREADSAFE=0参数,或者在初始化SQLite前调用sqlite3_config(SQLITE_CONFIG_SINGLETHREAD)时启用。 2. 多线程:这种模式下,只要一个数据库连接不被多个线程同时使用就是安全的。源码中是启用bCore...原创 2019-07-13 11:26:48 · 2259 阅读 · 0 评论 -
sqlite3操作总结
里面对Makefile的说明很详细,通过make的参数指定是gcc编译还是arm-linux-gcc编译https://blog.csdn.net/xinxin_2011/article/details/85341091原创 2019-07-10 16:02:43 · 126 阅读 · 0 评论 -
嵌入式linux 项目开发(一)——SQLite数据库
转:https://blog.51cto.com/9291927/1828666转载 2019-07-15 23:39:01 · 281 阅读 · 0 评论 -
SQLite3调测优化
非常好的一篇博客,详见:https://blog.csdn.net/lijinqi1987/article/details/51852721首先,建立数据库rc = sqlite3_exec(db, "create table if not exists testinfo (id integer primary key, age integer, height text, weight ...原创 2019-07-16 09:02:29 · 862 阅读 · 0 评论 -
linux+vs2010+sqlite3+C++
本文主要描述在vs2010开发工具和linux下使用sqlite3数据库的开发步骤。1. vs2010+sqlite3详见项目工程:点击打开链接2. linux+sqlite3linux环境下sqlite3环境搭建:点击打开链接3.数据库可视化工具网盘下载路径:点击打开链接...原创 2018-02-16 16:20:32 · 217 阅读 · 0 评论