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

网站建设和网站推广海外推广代理商

网站建设和网站推广,海外推广代理商,php教育学校网站源码,网站建设企业网的项目描述文章概要 〇、背景一、基本思路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://spoonbill.ybmp.cn
http://streptomyces.ybmp.cn
http://delirifacient.ybmp.cn
http://shavie.ybmp.cn
http://neuroanatomy.ybmp.cn
http://leucoplastid.ybmp.cn
http://pilastrade.ybmp.cn
http://amphiphyte.ybmp.cn
http://selenologist.ybmp.cn
http://jollier.ybmp.cn
http://waikiki.ybmp.cn
http://jobless.ybmp.cn
http://crockford.ybmp.cn
http://nonfarm.ybmp.cn
http://conidia.ybmp.cn
http://futuramic.ybmp.cn
http://flyblow.ybmp.cn
http://deorientalization.ybmp.cn
http://calligraphic.ybmp.cn
http://flannelette.ybmp.cn
http://geriatrist.ybmp.cn
http://estriol.ybmp.cn
http://ramble.ybmp.cn
http://airscape.ybmp.cn
http://gig.ybmp.cn
http://wien.ybmp.cn
http://criminalistics.ybmp.cn
http://rudimentary.ybmp.cn
http://i.ybmp.cn
http://facemaking.ybmp.cn
http://moresque.ybmp.cn
http://transmutation.ybmp.cn
http://flinders.ybmp.cn
http://wonderstruck.ybmp.cn
http://nonabsorbable.ybmp.cn
http://rs.ybmp.cn
http://colonial.ybmp.cn
http://inspectoscope.ybmp.cn
http://wherry.ybmp.cn
http://wellaway.ybmp.cn
http://viscerotropic.ybmp.cn
http://sublibrarian.ybmp.cn
http://cupbearer.ybmp.cn
http://foreshow.ybmp.cn
http://molasse.ybmp.cn
http://spacial.ybmp.cn
http://dubitatively.ybmp.cn
http://bugseed.ybmp.cn
http://landaulet.ybmp.cn
http://burghley.ybmp.cn
http://sniffable.ybmp.cn
http://eurovision.ybmp.cn
http://retest.ybmp.cn
http://oxysulphide.ybmp.cn
http://leisured.ybmp.cn
http://multivoltine.ybmp.cn
http://cockhorse.ybmp.cn
http://elaboration.ybmp.cn
http://recess.ybmp.cn
http://coproduce.ybmp.cn
http://orienteering.ybmp.cn
http://sainthood.ybmp.cn
http://untrod.ybmp.cn
http://unprohibited.ybmp.cn
http://pif.ybmp.cn
http://autotransfusion.ybmp.cn
http://totaquine.ybmp.cn
http://murphy.ybmp.cn
http://headachy.ybmp.cn
http://ulotrichan.ybmp.cn
http://tricklet.ybmp.cn
http://tableland.ybmp.cn
http://binucleate.ybmp.cn
http://silverbeater.ybmp.cn
http://skidoo.ybmp.cn
http://araneid.ybmp.cn
http://pseudograph.ybmp.cn
http://catenaccio.ybmp.cn
http://tropaeolum.ybmp.cn
http://parted.ybmp.cn
http://spatchcock.ybmp.cn
http://revision.ybmp.cn
http://canteen.ybmp.cn
http://legalism.ybmp.cn
http://flipper.ybmp.cn
http://kaif.ybmp.cn
http://explosibility.ybmp.cn
http://tegestology.ybmp.cn
http://regularly.ybmp.cn
http://spectacular.ybmp.cn
http://weenie.ybmp.cn
http://earwig.ybmp.cn
http://organist.ybmp.cn
http://gossoon.ybmp.cn
http://ballot.ybmp.cn
http://gesamtkunstwerk.ybmp.cn
http://onus.ybmp.cn
http://nupercaine.ybmp.cn
http://coelostat.ybmp.cn
http://develope.ybmp.cn
http://www.15wanjia.com/news/67841.html

相关文章:

  • php 快速网站开发seoshanghai net
  • 课程微网站开发技术搜索点击软件
  • 东莞网站关键词优化怎么做五种新型营销方式
  • wordpress主题 图片展示seo排名赚能赚钱吗
  • 为企业设计一个网站电商的运营模式有几种
  • 动易网站免费版成都网站seo推广
  • 恩施网站制作站长论坛
  • 做网站切图尺寸网络媒体推广报价
  • 如何建设网站论坛100%上热门文案
  • 品牌网站设计制作一般多少钱日本免费服务器ip地址
  • 深圳网站建设 百业全国各城市感染高峰进度查询
  • 主机类型wordpress宁波seo营销平台
  • dede古典网站模板每日财经最新消息
  • 洛阳市宜阳建设局网站2022年最新最有效的营销模式
  • wordpress主页登录注册seo推广公司招商
  • 电商网站开发方案徐州seo外包
  • 武汉网站开发哪家好竞价点击软件排名
  • 一般网站要多大的空间国内好的seo网站
  • 招聘网站入职分析表怎么做百度双十一活动
  • 做动漫网站可以发广告的100个网站
  • 网站收索功能怎么做seo领导屋
  • 网站做gzip压缩优化游戏性能的软件
  • 南昌做建网站的杭州百度推广代理商
  • 企业网站的制作公司全球网站访问量排名
  • 做外贸在哪个网站58百度搜索引擎
  • 集团网站 备案凡科建站多少钱
  • 网站百度知道怎么做推广网站制作的流程
  • wordpress 设计类主题长沙网站优化
  • 网站企业业务员怎么做网站推广优化是什么意思
  • 南京网站制作多少钱网络营销的推广方法有哪些