WKDB_SQLServer
2020年09月13日20:12:06
数据库驱动的索引表名修改为TI
2020年09月11日16:02:17
该数据库驱动为SQL Server数据库驱动
一、通道配置
1、通讯配置
无需设置
2、驱动属性配置
数据库名字
服务器IP
端口号
用户名
密码
存储天数
是否覆盖 0:不覆盖; 1:覆盖
数据未读取时是否存储 0:不存储; 1:存储
二、设备配置
1、基本信息
无需配置基本信息
2、存储点表组
采集点名 点击关联到需要转发的点
变量名 变量名
变量描述 变量描述
数据库点的ID 数据库中用于匹配该点的ID索引号,应为唯一标识,为索引表的主键.
数据库ID设置为0时表示不处理,不存储该数据点
数据库点的ID应设置为正数,并且不能重复
存储类型 数据表分为3种类型,分别是如下三种类型:
0:INT,整型数,数据范围为-2147483648~2147483647;
1:DOUBLE,双精度浮点型,数值范围为-1.79769313486232E308 到1.79769313486232E308
2:VARCHAR(200),字符串,最大可保存200字符
变化存储 数据变化存储的标志位,表示数值发生变化时是否存储该数值
0:数值发生变化时不会存储
1:当数值发生变化且变化幅度超过设置的“变化幅度”时会存储此值
变化幅度 默认值为5,表示当数据变化超过5%时会存储此值,只有当"变化存储"参数设置为"1"时此参数有效
当变化幅度设置为0时,时标的变化或者数值的变化均会写入数据库
当变化幅度非0时,只有当数值变化超过变化幅度时才会写入数据库
周期存储 数据周期存储的标志位,表示数值是否按照周期存储的方式存储数值
0:不需要周期存储数值
1:按照设定的“周期”参数定时向数据库写入数据
周期(ms) 默认为60000,表示一分钟存储一次数值,只有当"周期存储"参数设置为"1"时此参数生效
小数点位数 当"存储类型"设置为"1"时,此参数生效,表示存储期望的小数位数;
为负数时不处理,存储实际值
为非负数时会按照期望的小数位数对实际值进行处理,存储处理后的数值
按天存储 是否需要每天存储一次,存储在日数据表中. 0:不按天存储; 1:按天存储
按月存储 是否需要每月存储一次,存储在月数据表中. 0:不按月存储; 1:按月存储
if (precision<0)
{
不处理小数,存储实际值
}else{
按照期望的小数存储,小数不足会在后边填充0
为0时舍去所有小数,为正数时表示保存几位小数,小数不足会在后边填充0
QString::number(dValue,'d',((CDBPoint *)pDBPointBase)->m_nprecision)
}
-- MySQL Script generated by MySQL Workbench
-- 2020年03月16日 星期一 17时19分29秒
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema wkdb
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `wkdb` ;
-- -----------------------------------------------------
-- Schema wkdb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `wkdb` DEFAULT CHARACTER SET utf8 ;
USE `wkdb` ;
-- -----------------------------------------------------
-- Table `wkdb`.`TI`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `wkdb`.`TI` ;
CREATE TABLE IF NOT EXISTS `wkdb`.`TI` (
`ID` INT NOT NULL COMMENT '点ID',
`TagName` VARCHAR(200) NULL COMMENT '变量名称',
`TableType` INT NULL COMMENT '存储类型: 0:int; 1:float; 2:string',
`ChSS` INT NULL COMMENT '变化存储使能标志',
`ChSR` FLOAT NULL COMMENT '变化幅度',
`CySS` INT NULL COMMENT '周期存储使能标志',
`CySC` INT NULL COMMENT '数据存储周期(ms)',
PRIMARY KEY (`ID`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '索引表,物理索引表,通道.设备.点名等'
PACK_KEYS = DEFAULT;
-- -----------------------------------------------------
-- Table `wkdb`.`DV`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `wkdb`.`DV` ;
CREATE TABLE IF NOT EXISTS `wkdb`.`DV` (
`ID` INT NOT NULL COMMENT '点ID',
`V` DOUBLE NULL COMMENT '历史数值',
`DT1` DATETIME NOT NULL COMMENT '存储时间',
`DT2` DATETIME NULL COMMENT '数据采集时间',
PRIMARY KEY (`ID`, `DT1`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '日数据表\n';
-- -----------------------------------------------------
-- Table `wkdb`.`MV`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `wkdb`.`MV` ;
CREATE TABLE IF NOT EXISTS `wkdb`.`MV` (
`ID` INT NOT NULL,
`V` DOUBLE NULL,
`DT1` DATETIME NOT NULL,
`DT2` DATETIME NULL,
PRIMARY KEY (`ID`, `DT1`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '月数据表\n';
-- -----------------------------------------------------
-- Table `wkdb`.`LND`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `wkdb`.`LND` ;
CREATE TABLE IF NOT EXISTS `wkdb`.`LND` (
`ID` INT NOT NULL COMMENT '点ID\n',
`D1` VARCHAR(200) NULL,
`D2` VARCHAR(200) NULL,
`D3` VARCHAR(200) NULL,
`D4` VARCHAR(200) NULL,
`D5` VARCHAR(200) NULL,
`D6` VARCHAR(200) NULL,
`D7` VARCHAR(200) NULL,
`D8` VARCHAR(200) NULL,
`D9` VARCHAR(200) NULL,
`D10` VARCHAR(200) NULL,
PRIMARY KEY (`ID`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '逻辑节点描述索引表,表示层级结构,逻辑描述,Logical description';
-- -----------------------------------------------------
-- Table `wkdb`.`F20200312`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `wkdb`.`F20200312` ;
CREATE TABLE IF NOT EXISTS `wkdb`.`F20200312` (
`ID` INT NULL COMMENT '点ID',
`V` DOUBLE NULL COMMENT '历史数值',
`DT1` DATETIME NULL COMMENT '周期存储时该时间为整周期时间;\n变化存储时该时间为写入数据库当前时间',
`DT2` DATETIME NULL COMMENT '数据采集时间即数据最后一次更新时的时间',
`I` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`I`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '浮点数类型数据表,double类型\n';
-- -----------------------------------------------------
-- Table `wkdb`.`I20200312`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `wkdb`.`I20200312` ;
CREATE TABLE IF NOT EXISTS `wkdb`.`I20200312` (
`ID` INT NULL COMMENT '点ID',
`V` INT NULL COMMENT '历史数值',
`DT1` DATETIME NULL COMMENT '周期存储时该时间为整周期时间;\n变化存储时该时间为写入数据库当前时间',
`DT2` DATETIME NULL COMMENT '数据采集时间即数据最后一次更新时的时间',
`I` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`I`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '整型数类型数据表\n';
-- -----------------------------------------------------
-- Table `wkdb`.`S20200312`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `wkdb`.`S20200312` ;
CREATE TABLE IF NOT EXISTS `wkdb`.`S20200312` (
`ID` INT NULL COMMENT '点ID',
`V` VARCHAR(200) NULL COMMENT '历史数值',
`DT1` DATETIME NULL COMMENT '周期存储时该时间为整周期时间;\n变化存储时该时间为写入数据库当前时间',
`DT2` DATETIME NULL COMMENT '数据采集时间即数据最后一次更新时的时间',
`I` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`I`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '字符串类型数据表\n';