自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 sqlite数据库之事务处理

左边窗口执行事务,在开启事务后插入了一条数据,但是还没有提交或回滚,此时在右边窗口执行查询操作,结果查不到刚刚插入的数据,说明事务是线程互斥的。如图中所示,插入的数据保存在了数据库中。如图中效果所示,回滚之后插入的数据没有了。现在来试试插入数据后提交。在一个进程开启事务后,另一个进程插入记录会报错,显示数据库被锁住了。关于sqlite,我封装了几个类方法方便调用sqlite,课参考。然后开启事务,插入一条记录后执行回滚操作。现在来试试多进程间的事务处理关系。执行回滚后记录被撤回了。

2023-12-04 20:57:08 500

原创 sqlite数据库方法类使用说明-检查列字段是否存在、添加列、删除列

然后调用方法check_field检查字段SALARY是否灿在,若不存在则新增此字段,并且设置默认值为10000;若存在则提示已存在。插入后重新检查字段是否存在,并且查询一条记录打印其值,看默认值是否生效。注意“sqlite err info:query aborted”并非查询错误,此日志是因为check_field检查到字段存在时在回调函数中返回非0导致查询终止而形成的日志。本项目旨在分享知识和经验,欢迎广大网友一起加入到开源项目中一起分享贡献知识和经验。接下来是删除表中字段的例程。

2023-12-01 16:20:45 632

原创 sqlite方法类使用说明-blob数据类型读写操作

中的数据库方法类blob数据类型操作使用说明(包括blob数据类型的读操作和写操作等)。本项目旨在分享知识和经验,欢迎广大网友一起加入到开源项目中一起分享贡献知识和经验。编译以上代码,执行写入成功,接下来编写读blob数据测试代码以验证写入是否成功。需要注意的是写操作使用的列索引是从1开始的,并非从0开始,这个地方容易出错!本篇旨在分享接口类的使用,内部原理请参考文章。

2023-11-30 23:29:29 1011

原创 sqlite数据库方法类使用说明-添加索引查询、检查索引是否存在

本文主要演示中的数据库方法类索引操作使用说明(包括新建索引、查询数据、检查索引是否存在等)。本项目旨在分享知识和经验,欢迎广大网友一起加入到开源项目中一起分享贡献知识和经验。

2023-11-27 21:07:59 1000

原创 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 600

原创 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 455 1

原创 sqlite之按先插入先删除规则限制记录数

sqlite之按先插入先删除规则限制记录数首先创建一个带时间的表,并插入一些记录查询记录现在总共有11条记录执行语句:delete from record where rowid in (select rowid from record limit 2);删除最先插入的两条记录,然后查询结果如下:...

2021-04-21 20:45:21 514

原创 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 10928

原创 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 700

原创 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 1464

原创 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 670

sqlite3数据库操作类

本工程自带许多测试实例; 本程序可编译成可执行文件,直接运行代码进行测试;并可以选择运行模式进入灵活的循环可执行模式,通过命令行交互方式进行数据库操作; 此类集成了许多数据库常用操作和一些不常用操作的方法和实例(包括blob数据类型的操作,此blob类型的读写不限于单个读写,可自由灵活的操作多个blob字段);本程序为本人对sqlite3的包装,目的在于更方便的调用数据库操作等; 本程序采用C++进行封装(注释详细),将数据库的一些操作封装成类的形式; 并用C语言格式导出C接口供C语言的调用; 即本程序是C语言、C++兼容 本程序所使用的Makefile文件由本人创作(注释详细),可支持动态库编译、静态库编译等等,经过长时间优化积累,可通过简单修改参数适用于绝大部分应用场景。 本程序的调试输出使用的是本人自创的debug接口,以库的形式形成依赖,线程安全,以后会找机会包装上传此类源代码; 本程序可兼容linux以及windows环境,本人的运行环境在Linux,也试过在windows环境可编译运行。

2019-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除