- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 sqlite数据库之事务处理
左边窗口执行事务,在开启事务后插入了一条数据,但是还没有提交或回滚,此时在右边窗口执行查询操作,结果查不到刚刚插入的数据,说明事务是线程互斥的。如图中所示,插入的数据保存在了数据库中。如图中效果所示,回滚之后插入的数据没有了。现在来试试插入数据后提交。在一个进程开启事务后,另一个进程插入记录会报错,显示数据库被锁住了。关于sqlite,我封装了几个类方法方便调用sqlite,课参考。然后开启事务,插入一条记录后执行回滚操作。现在来试试多进程间的事务处理关系。执行回滚后记录被撤回了。
2023-12-04 20:57:08 536
原创 sqlite数据库方法类使用说明-检查列字段是否存在、添加列、删除列
然后调用方法check_field检查字段SALARY是否灿在,若不存在则新增此字段,并且设置默认值为10000;若存在则提示已存在。插入后重新检查字段是否存在,并且查询一条记录打印其值,看默认值是否生效。注意“sqlite err info:query aborted”并非查询错误,此日志是因为check_field检查到字段存在时在回调函数中返回非0导致查询终止而形成的日志。本项目旨在分享知识和经验,欢迎广大网友一起加入到开源项目中一起分享贡献知识和经验。接下来是删除表中字段的例程。
2023-12-01 16:20:45 756
原创 sqlite方法类使用说明-blob数据类型读写操作
中的数据库方法类blob数据类型操作使用说明(包括blob数据类型的读操作和写操作等)。本项目旨在分享知识和经验,欢迎广大网友一起加入到开源项目中一起分享贡献知识和经验。编译以上代码,执行写入成功,接下来编写读blob数据测试代码以验证写入是否成功。需要注意的是写操作使用的列索引是从1开始的,并非从0开始,这个地方容易出错!本篇旨在分享接口类的使用,内部原理请参考文章。
2023-11-30 23:29:29 1183
原创 sqlite数据库方法类使用说明-添加索引查询、检查索引是否存在
本文主要演示中的数据库方法类索引操作使用说明(包括新建索引、查询数据、检查索引是否存在等)。本项目旨在分享知识和经验,欢迎广大网友一起加入到开源项目中一起分享贡献知识和经验。
2023-11-27 21:07:59 1187
原创 sqlite数据库方法类使用说明-创建数据表、查询数据表、插入记录
/SQL 语句 仅供参考//创建表# ifndef __SELDOM_SQLITE_SQLCMD_H # define __SELDOM_SQLITE_SQLCMD_H //SQL 语句 仅供参考 //创建表 # define SQLCMD_CREATE_TABLE(TABLE_NAME , MEMBER) "CREATE TABLE IF NOT EXISTS " TABLE_NAME " (" MEMBER ");
2023-11-26 15:14:05 690
原创 sqlite数据库操作类使用说明-基础篇
sqlite数据库操作类使用说明-基础篇本文主要演示sqlite数据库类的基础用法。本篇数据库类使用c++进行封装,但导出了C语言接口,本文测试代码使用的是C语言用法,c++用法基本一致,集成了一些常用的宏定义以及不常用的宏定义用法。先上测试代码:#include <Wdebug.h>#include <stdio.h>#include <sqlite/Wsqlite.h>#include <stdlib.h>#define TABLE_
2021-07-19 21:11:55 516 1
原创 sqlite之按先插入先删除规则限制记录数
sqlite之按先插入先删除规则限制记录数首先创建一个带时间的表,并插入一些记录查询记录现在总共有11条记录执行语句:delete from record where rowid in (select rowid from record limit 2);删除最先插入的两条记录,然后查询结果如下:...
2021-04-21 20:45:21 558
原创 sqlite3数据库之blob数据类型读写
sqlite3数据库之blob数据类型读写近期在开发过程中需要在数据库中保存二进制文件,于是去了解了一下sqlite3的数据类型,发现blob可以存储二进制数据。但是blob要如何操作呢?用什么语句呢?其实它是需要操作sqlite3库的一些底层API来实现。下面我们就来做实验。先上测试代码:#include "Wdebug.h"#include "sqlite/Wsqlite.h"#include <stdlib.h>#define TABLE_NAME "TEST_BL
2021-04-13 22:37:57 11409
原创 sqlite3 踩坑日记之INTEGER型主键与rowid
sqlite3 踩坑日记之INTEGER型主键与rowidsqlite创建表的时候有个隐藏字段为rowid,本以为这个字段是固定存在不变的。但是实践之后发现我错了。。。先上代码:#include <strio.h>#include "sqlite/sqlite.h"#include <stdlib.h>#define TABLE_NAME "TEST"static int callback(void* pdata, int argc, char** argv
2021-04-12 22:42:28 754
原创 c++字符串操作之std::ostringstream踩坑日记
c++字符串操作之std::ostringstream踩坑日记在开发过程中经常会遇到字符串操作,而std::string又没有format操作,这就很难受了。于是我找到了std::ostringstream类;ostringstream类的用法也很简单,就是流操作。头文件:include <sstream>如:int number = 14;double ddata = 21.7;char* pstr = "test";std::ostringstream ostr;ostr
2021-04-12 22:29:19 1733
原创 c语言0长度数组
零长度数组0长度数组有何意义呢?那么0长度的数组有什么作用呢?单独定义数组是不合法的,编译器会报错,但是如果定义在结构体中则编译器视为合法语法;定义示例如下所示:struct str{ int len; char s[0];};0长度数组有何意义呢? 0长度数组实质上就是指长度为0的数组,在结构体中它不占用内存空间。 在控制台输出上述结构体的大小可以得到如下结果:printf("sizeof(str) = %ld\r\n", sizeof(struct str));
2020-05-08 22:08:41 811
sqlite3数据库操作类
2019-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人