当前位置: 首页 > news >正文

重庆江北区网站建设wordpress+enter主题

重庆江北区网站建设,wordpress+enter主题,wordpress微信h5登录页面,新泰网络推广公司电话文章概要 〇、背景一、基本思路1.1 按时间分多文件,限制文件的个数1.2 按时间分数据表,限制表的个数1.3 按记录的时间删除超过规定时间数据,限制记录数据的时间1.4 按记录的数据条数删除多余的数据,限制记录数据的个数二、实现代码三、测试方式〇、背景 基于嵌入式编程,在… 文章概要 〇、背景一、基本思路1.1 按时间分多文件,限制文件的个数1.2 按时间分数据表,限制表的个数1.3 按记录的时间删除超过规定时间数据,限制记录数据的时间1.4 按记录的数据条数删除多余的数据,限制记录数据的个数 二、实现代码三、测试方式 〇、背景 基于嵌入式编程,在实际项目中往往需要记录一些安全数据、或者日志数据、或者状态数据等等,但是由于空间有限或者保存的数据的有限性原因,记录的数据往往也存在保质期,对于已过期的数据自然是采用自动删除策略较为方便,所以本文就提供几种简单的解决方案以供参考。 一、基本思路 1.1 按时间分多文件,限制文件的个数 这种记录方式其实实现比较简单,其实就是设置 时间粒度 生成一个 特定名称 的数据库文件(里面只有一个数据表),按照然后设定的时间(比如1天)删除数据库文件即可。 时间粒度 的设置,可以根据实际每单位时间写入的数据量进行合理的设置。 文件名称 的设置,可以是在基本名称后面加上创建的时间,这样的话方便判断此文件是否过期。 注: - 此种方式的好处就是如果系统崩溃或者写入数据时程序崩溃,不会影响到其他已经记录的数据库文件。并且,如果需要记录的数据量比较大的话,单个数据库记录文件相对大小稳定,方便文件的管理 - 缺点就是如果时间粒度比较小,或者数据量比较的小的时候,会产生过多的数据库文件,不方便统一查看。 1.2 按时间分数据表,限制表的个数 这种方式与上述的方式大同小异,唯一的区别就是只有一个数据库文件,然后在此数据库文件中根据时间粒度创建不同的数据表,创建数据表的名称也可以参考上述创建数据库的名称的方式。 相较于上述第一种方式,此种方式的优缺点几乎与第一种方式的正好相反。同时其也兼顾了如果时间粒度比较小,或者数据量比较的小的时候,会产生过多的数据表的缺点。 此种方式最为不推荐。 1.3 按记录的时间删除超过规定时间数据,限制记录数据的时间 在记录的数据中,时间往往是一个比较重要的信息,所以此种方式创建的数据表的项中,需要有一个当前数据记录的时间的信息(本例中updatetime 列)正中下怀。可以根据实际记录的时间粒度(或者实际时间的需求)自定义记录时间的格式,然后在创建触发器的时候,根据sqlite3自带的时间转换功能进行时间的转化与计算,然后设置对应的触发条件。 本例中时间的记录采用的是格式是:2024-08-12 11:22:33.456。具体实现可以详见如下的代码。 1.4 按记录的数据条数删除多余的数据,限制记录数据的个数 在想数据库中写入数据的时候,系统自动创建并管理rowid列,其记录的一个信息是当前记录的数据的条数,所以我们可以根据此rowid进行数据库中数据的限制。 具体实现可以详见如下的代码。 二、实现代码 整体实现代码也是比较简单,主要在代码中实现两个触发器设置,然后持续在数据库中写入数据,直到两个 触发器 触发进行数据的删除。比如本例中代码文件的名称为 sqlite_main.c 。详细实现代码如下所示。 代码中注释比较详细此处将不再进行其他说明。 #include "sqlite3.h" #include stdbool.h #include stdint.h #include stdio.h #include stdlib.h #include string.h #include sys/time.h #include time.h #include unistd.h#define SQLITE_DATABASE_NAME "sqlite3.db" /* 数据库的名称 */ #define SQLITE_TABLE_NAME_AA "table1" /* 数据表11名称 */ #define SQLITE_TABLE_NAME_BB "table2" /* 数据表22名称 */#define SQLTABLECDF_LOG_TIME 0x01U #define SQLTABLECDF_LOG_NUMS 0x00U #define SQLTABLECDF_FUN_TIME 0x01U #define SQLTABLECDF_FUN_NUMS 0x00U#define CFG_SQLTABLE_VALUE_MIN 0U /* 记录最小值 */ #define CFG_SQLTABLE_VALUE_MAX 10000U /* 记录的最大的条数值(默认值) */ #define CFG_SQLTABLE_TIME_MAX 72U /* 记录的时间的最大值(默认值),小时 *//* 定义数据库操作句柄 */ sqlite3 *g_sqlite_db_handle = NULL;typedef enum {LimitType_ByCount = 0, /* 数量限制 */LimitType_ByTime = 1, /* 时间限制 */ } EnumLimitType;/** @fn Sqlite_TableLimitTypeSet* @brief 设置数据表的限制方式及条件* @param[in] sqlfd 数据库操作句柄* @param[in] tablename 要操作的数据表名称* @param[in] type 操作的限制类型* @param[in] value 操作的限制条件* @param[out] none* @return true 执行成功 false 执行失败*/ bool Sqlite_TableLimitTypeSet(sqlite3 *const sqlfd, const char *const tablename, const EnumLimitType type, const uint32_t value) {char t_sql_cmd[1024] = {0}, *t_err_msg = NULL;uint32_t t_value = value;if (NULL == sqlfd || NULL == tablename)return false;memset(t_sql_cmd, 0, sizeof(t_sql_cmd));if (LimitType_ByCount == type){/* 参数有效性判断 */if ((value = CFG_SQLTABLE_VALUE_MIN || value CFG_SQLTABLE_VALUE_MAX))t_value = CFG_SQLTABLE_VALUE_MAX; /* 设置默认值 *//* 拼接SQL命令字符串 */
http://www.w-s-a.com/news/912099/

相关文章:

  • 江门站排名优化建立什么网站赚钱
  • 科普文章在那个网站做招聘网站代做
  • 监控设备东莞网站建设游戏网站域名
  • 对商家而言网站建设的好处网址导航怎么彻底删除
  • app设计网站模板企业展厅策划设计公司有哪些
  • wordpress销售主题手机网站关键词优化
  • 怎么查一个网站是什么程序做的三亚城乡建设局网站
  • 深圳分销网站设计公司做网站一般需要多久
  • 企业网站设计代码丹东seo排名公司
  • 企业网站建设定制开发服务网站建设说课ppt
  • 大连市城乡建设局网站网站免费网站入口
  • 做暧网站网站备案ps
  • 知名网站建设公司电话长子网站建设
  • 网站建设的意义与目的建立什么船籍港
  • 广州注册公司营业执照网站建设代码优化
  • 百度网站官网马克互联网主题 wordpress
  • 网站制作 客户刁难深圳自助建站
  • 怎么去推广一个网站广东餐饮品牌设计
  • 网站代码加密了怎么做兰州最新大事
  • 现在ui做的比较好的网站去年做啥网站致富
  • 广东网站建设咨询电话好牌子网
  • 公司怎样制作网站南阳网站关键词
  • 营销型网站建设与网盟完整php网站开发
  • 网站做微信链接怎么做的石桥铺网站建设公司
  • 济南mip网站建设公司做图书馆网站模板
  • app 门户网站网站项目框架
  • 做网站视频网站备案 新闻审批号
  • 织梦网站怎么居中视频网站开发与制作
  • 网站上海备案佛山网站seo哪家好
  • 品牌形象网站有哪些珠海市区工商年报在哪个网站做