GVKun编程网logo

Select data from an Excel sheet in MSSQL

2

在本文中,我们将带你了解SelectdatafromanExcelsheetinMSSQL在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的ARM编译中Code,RO-data,RW-dat

在本文中,我们将带你了解Select data from an Excel sheet in MSSQL在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的ARM编译中Code, RO-data,RW-data,ZI-data、Chimm.Excel —— 使用Java 操作 excel 模板文件生成 excel 文档、Code RO-data RW-data ZI-data KEIL MDK、Data-to-Text文献学习·《Learning to Select, Track, and Generate for Data-to-Text》

本文目录一览:

Select data from an Excel sheet in MSSQL

Select data from an Excel sheet in MSSQL

select * 
from openrowset(''Microsoft.Jet.OLEDB.4.0''
,''Excel 8.0;HDR=YES;IMEX=1;DATABASE=d:\folder\excel.xls'',Sheet1$)

-------NOTE------
Setting IMEX=1 tells the driver to use Import mode. In this state, the registry setting ImportMixedTypes=Text will be noticed. This forces mixed data to be converted to text. For this to work reliably, you may also have to modify the registry setting, TypeGuessRows=8. The ISAM driver by default looks at the first eight rows and from that sampling determines the datatype. If this eight row sampling is all numeric, then setting IMEX=1 will not convert the default datatype to Text; it will remain numeric. 

You must be careful that IMEX=1 not be used indiscriminately. This is IMPORT mode, so the results may be unpredictable if you try to do appends or updates of data in this mode. 

The possible settings of IMEX are: 
0 is Export mode
1 is Import mode
2 is Linked mode (full update capabilities) 

ARM编译中Code, RO-data,RW-data,ZI-data

ARM编译中Code, RO-data,RW-data,ZI-data

ARM开发总结的小知识 :

一、

字节 8位
半字 16位
字   32位

Code,RO-data
RW-data,ZI-data

Code为程序代码部分
RO-data 表示 程序定义的常量(如:const temp等);
RW-data 表示 已初始化的全局变量
ZI-data 表示 未初始化的全局变量,以及初始化为0的变量

Program Size: Code="18248" RO-data=320 RW-data=260 ZI-data=3952 

Code,RO-data,RW-data ..............flash
RW-data,ZIdata...................RAM

初始化时RW-data从flash拷贝到RAM

生成的map文件位于list文件夹下 (KEIL)

Total RO  Size (Code + RO Data)                18568 (  18.13kB)
Total RW  Size (RW Data + ZI Data)              4212 (   4.11kB)

Total ROM Size (Code + RO Data + RW Data)      18828 (  18.39kB)

二、

ARM程序(指在ARM系统中正在执行的程序,而非保存在ROM中的bin文件)的组成
一个ARM程序包含3部分:RO段,RW段和ZI段
RO是程序中的指令和常量
RW是程序中的已初始化变量
ZI是程序中的未初始化的变量
由以上3点说明可以理解为:
RO就是readonly,
RW就是read/write,
ZI就是zero
ARM映像文件的组成
所谓ARM映像文件就是指烧录到ROM中的bin文件,也成为image文件。以下用Image文件来称呼它。
Image文件包含了RO和RW数据。
之所以Image文件不包含ZI数据,是因为ZI数据都是0,没必要包含,只要程序运行之前将ZI数据所在的区域一律清零即可。包含进去反而浪费存储空间。
Q:为什么Image中必须包含RO和RW?
A:因为RO中的指令和常量以及RW中初始化过的变量是不能像ZI那样“无中生有”的。
ARM程序的执行过程
从以上两点可以知道,烧录到ROM中的image文件与实际运行时的ARM程序之间并不是完全一样的。因此就有必要了解ARM程序是如何从ROM中的image到达实际运行状态的。
实际上,RO中的指令至少应该有这样的功能:
1. 将RW从ROM中搬到RAM中,因为RW是变量,变量不能存在ROM中。
2. 将ZI所在的RAM区域全部清零,因为ZI区域并不在Image中,所以需要程序根据编译器给出的ZI地址及大小来将相应得RAM区域清零。ZI中也是变量,同理:变量不能存在ROM中
在程序运行的最初阶段,RO中的指令完成了这两项工作后C程序才能正常访问变量。否则只能运行不含变量的代码。
说了上面的可能还是有些迷糊,RO,RW和ZI到底是什么,下面我将给出几个例子,最直观的来说明RO,RW,ZI在C中是什么意思。

1; RO
看下面两段程序,他们之间差了一条语句,这条语句就是声明一个字符常量。因此按照我们之前说的,他们之间应该只会在RO数据中相差一个字节(字符常量为1字节)。
Prog1:
#include <stdio.h>
void main(void)
{
;
}
Prog2:
#include <stdio.h>
const char a = 5;
void main(void)
{
;
}
Prog1编译出来后的信息如下:
================================================================================
Code RO Data RW Data ZI Data Debug
948 60 0 96 0 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 1008 ( 0.98kB)
Total RW Size(RW Data + ZI Data) 96 ( 0.09kB)
Total ROM Size(Code + RO Data + RW Data) 1008 ( 0.98kB)
================================================================================
Prog2编译出来后的信息如下:
================================================================================
Code RO Data RW Data ZI Data Debug
948 61 0 96 0 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 1009 ( 0.99kB)
Total RW Size(RW Data + ZI Data) 96 ( 0.09kB)
Total ROM Size(Code + RO Data + RW Data) 1009 ( 0.99kB)
================================================================================
以上两个程序编译出来后的信息可以看出:
Prog1和Prog2的RO包含了Code和RO Data两类数据。他们的唯一区别就是Prog2的RO Data比Prog1多了1个字节。这正和之前的推测一致。
如果增加的是一条指令而不是一个常量,则结果应该是Code数据大小有差别。

2; RW
同样再看两个程序,他们之间只相差一个“已初始化的变量”,按照之前所讲的,已初始化的变量应该是算在RW中的,所以两个程序之间应该是RW大小有区别。
Prog3:
#include <stdio.h>
void main(void)
{
;
}
Prog4:
#include <stdio.h>
char a = 5;
void main(void)
{
;
}
Prog3编译出来后的信息如下:
================================================================================
Code RO Data RW Data ZI Data Debug
948 60 0 96 0 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 1008 ( 0.98kB)
Total RW Size(RW Data + ZI Data) 96 ( 0.09kB)
Total ROM Size(Code + RO Data + RW Data) 1008 ( 0.98kB)
================================================================================
Prog4编译出来后的信息如下:
================================================================================
Code RO Data RW Data ZI Data Debug
948 60 1 96 0 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 1008 ( 0.98kB)
Total RW Size(RW Data + ZI Data) 97 ( 0.09kB)
Total ROM Size(Code + RO Data + RW Data) 1009 ( 0.99kB)
================================================================================
可以看出Prog3和Prog4之间确实只有RW Data之间相差了1个字节,这个字节正是被初始化过的一个字符型变量“a”所引起的。

3; ZI
再看两个程序,他们之间的差别是一个未初始化的变量“a”,从之前的了解中,应该可以推测,这两个程序之间应该只有ZI大小有差别。
Prog3:
#include <stdio.h>
void main(void)
{
;
}
Prog4:
#include <stdio.h>
char a;
void main(void)
{
;
}
Prog3编译出来后的信息如下:
================================================================================
Code RO Data RW Data ZI Data Debug
948 60 0 96 0 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 1008 ( 0.98kB)
Total RW Size(RW Data + ZI Data) 96 ( 0.09kB)
Total ROM Size(Code + RO Data + RW Data) 1008 ( 0.98kB)
================================================================================
Prog4编译出来后的信息如下:
================================================================================
Code RO Data RW Data ZI Data Debug
948 60 0 97 0 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 1008 ( 0.98kB)
Total RW Size(RW Data + ZI Data) 97 ( 0.09kB)
Total ROM Size(Code + RO Data + RW Data) 1008 ( 0.98kB)
================================================================================
编译的结果完全符合推测,只有ZI数据相差了1个字节。这个字节正是未初始化的一个字符型变量“a”所引起的。
注意:如果一个变量被初始化为0,则该变量的处理方法与未初始化华变量一样放在ZI区域。
即:ARM C程序中,所有的未初始化变量都会被自动初始化为0。
总结:
1; C中的指令以及常量被编译后是RO类型数据。
2; C中的未被初始化或初始化为0的变量编译后是ZI类型数据。
3; C中的已被初始化成非0值的变量编译后是RW类型数据。
附:
程序的编译命令(假定C程序名为tst.c):
armcc -c -o tst.o tst.c
armlink -noremove -elf -nodebug -info totals -info sizes -map -list aa.map -o tst.elf tst.o
编译后的信息就在aa.map文件中。
ROM主要指:NAND Flash,nor Flash
RAM主要指:PSRAM,SDRAM,SRAM,DDRAM

Chimm.Excel —— 使用Java 操作 excel 模板文件生成 excel 文档

Chimm.Excel —— 使用Java 操作 excel 模板文件生成 excel 文档

Chimm.Excel —— 设置模板,填充数据,就完事儿了~

lisence jdk poi antlr4

   _____ _  _      _____    _   / __ \ | (_)      | ___|   | |   | / \/ |__ _ _ __ ___ _ __ ___ | |____ _____ ___| |   | | | ''_ \| | ''_ ` _ \| ''_ ` _ \ | __\ \/ / __/ _ \ |   | \__/\ | | | | | | | | | | | | | |_| |___> < (_| __/ |   \____/_| |_|_|_| |_| |_|_| |_| |_(_)____/_/\_\___\___|_|

目录
  • Chimm.Excel —— 设置模板,填充数据,就完事儿了~
    • 1. 项目介绍
      • 1.1 项目简介
      • 1.2 项目地址
    • 2. 功能展示
      • 2.1 demo文件演示
      • 2.2 详细操作说明
    • 3. 起步
    • 4. 参与贡献
    • 5. 联系作者
    • 6. 开源协议

1. 项目介绍

1.1 项目简介

  1. Chimm.Excel 是什么?
    该程序是一个基于 Apache POI 和 Antlr4 打造的 excel 生成的 Java 工具,主要作用在于减少了开发人员通过程序生成表格的工作量,提高了工作效率。

  2. Chimm.Excel 的优势是什么?

    • 和网上部分的开源软件的区别是,该程序是基于 excel 模板进行工作的,并非基于注解。也就是说,我们首先需要在 office 中编写好我们的 excel 模板才行,优势在于,我们可以直接在 office 中就直接定制化表格的样式,也就是说,样式直接由 excel 软件进行控制了,这大大降低了我们在程序中操作样式的时间。
    • 由于该程序是基于 Antlr4 进行开发的,所以在变量定义上面,非常的灵活,我们可以定义集合变量,甚至我们还可以在公式中定义变量。一个表格对应一个数据对象,开发人员只需查询数据、组装数据即可。
    • 可以自定义模板样式,该程序也提供了部分操作表格样式的功能,如:复制一行、合并单元格、更改边框样式等等。
    • 主要的重点功能暂时介绍这么多,这些功能基本能解决绝大部分问题了。如果各位遇到了其他需要解决的应用场景,欢迎评论提出 issue,我们一起探讨。
  3. excel 模板如何生成?
    模板生成非常的简单,我们定义变量的时候,只需要使用 $ + 大小括号 包围的形式即可,如:${school.name}

  4. Chimm.Excel 功能简介(v1.0)

    • [x] 导出excel二进制文件
    • [x] 根据模板中的变量,将值写入
    • [x] 支持公式
      • [x] 支持带变量的公式,如:SUM(A1,A2,${demo.value})
    • [x] 操作表格添加/减少行
      • [x] ⭐️添加行会自动更新公式
    • [x] 合并单元格
    • [x] 更改单元格边框样式(加粗、虚线等)

1.2 项目地址

  • GitHub:https://github.com/chimmhuang/chimm.excel
  • 码云:https://gitee.com/chimmhuang/chi.........

Code RO-data RW-data ZI-data KEIL MDK

Code RO-data RW-data ZI-data KEIL MDK

 

KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释


KEIL RVMDK编译后的信息

 

Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 

 

Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化。

 

简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+RO Data+RW Data

程序运行的时候,芯片内部RAM使用的空间为: RW Data + ZI Data


optimization project时,开始往往是关注一时间性能,如codec mips或Mcps等。当时间性能达到了要求时,往往还会加入size这一参数来作比较,这时就要考虑各种各样的size。这一性能参数可能在project requirements book中有明显的说明,在test performance result或在release note中也有更加准备的数据记录。

如下表:

Program ROM Data RAM ROM Table
Scratch Stack Static
XX XX XX XX XX

首先我们要弄清楚这些size的含义以及所反应的性能意义。

1、CODE SIZE,RO DATA,RW DATA,ZI DATA

上面这些变量是在ARM 开发环境下会出现的数值,可以在armlink中加一些参数,得到相应有.map文件,从中就能准确的获取这些值,有一篇文章详细说明这些含义:

ARM程序(指在ARM系统中正在执行的程序,而非保存在ROM中的bin文件)的组成 一个ARM程序包含3部分:RO段,RW段和ZI段 RO是程序中的指令和常量 RW是程序中的已初始化变量 ZI是程序中的未初始化的变量 由以上3点说明可以理解为: RO就是readonly, RW就是read/write, ZI就是zero ARM映像文件的组成 所谓ARM映像文件就是指烧录到ROM中的bin文件,也成为image文件。以下用Image文件来称呼它。 Image文件包含了RO和RW数据。 之所以Image文件不包含ZI数据,是因为ZI数据都是0,没必要包含,只要程序运行之前将ZI数据所在的区域一律清零即可。包含进去反而浪费存储空间。 Q:为什么Image中必须包含RO和RW? A:因为RO中的指令和常量以及RW中初始化过的变量是不能像ZI那样“无中生有”的。 ARM程序的执行过程 从以上两点可以知道,烧录到ROM中的image文件与实际运行时的ARM程序之间并不是完全一样的。因此就有必要了解ARM程序是如何从ROM中的image到达实际运行状态的。 实际上,RO中的指令至少应该有这样的功能: 1. 将RW从ROM中搬到RAM中,因为RW是变量,变量不能存在ROM中。 2. 将ZI所在的RAM区域全部清零,因为ZI区域并不在Image中,所以需要程序根据编译器给出的ZI地址及大小来将相应得RAM区域清零。ZI中也是变量,同理:变量不能存在ROM中 在程序运行的最初阶段,RO中的指令完成了这两项工作后C程序才能正常访问变量。否则只能运行不含变量的代码。 说了上面的可能还是有些迷糊,RO,RW和ZI到底是什么,下面我将给出几个例子,最直观的来说明RO,RW,ZI在C中是什么意思。  

Data-to-Text文献学习·《Learning to Select, Track, and Generate for Data-to-Text》

Data-to-Text文献学习·《Learning to Select, Track, and Generate for Data-to-Text》

一、总述

数据到文本生成是NLG的一项任务,用于从结构化或非结构化数据生成描述,包括体育评论、天气预报、来自维基百科信息框的传记文本以及来自股票价格的市场评论。运用神经网络来处理这一任务已经成为主流,且结合attention和copy机制的encoder-decoder架构已被成功使用,并获得较好的结果。然而,尽管生成的文本流畅度增高了,但是生成文本与输入的关联性并不太高,即存在描述不一致的问题。

 Puduppully曾在《Data-to-Text Generation with Content Selection and Planning》一文中提出NCP模型,NCP模型和这篇文章提出的模型的相似点是,都在序列层面上考虑了内容计划。本文与NCP不同的是,本文使用RNN来显式跟踪,而NCP使用的是LSTM;并且本文在解码器阶段在不固定数据记录序列的情况下动态选择要提及的数据记录,而NCP的数据集是固定的,且并非动态选择。
二、相关工作
2.1记忆模块( Memory modules,这个概念之前没有接触过,后续还要看看文献)
        该模块常应用于NLU,以跟踪实体状态,本文的模型将数据的实体跟踪模块扩展到文本生成任务。实体跟踪模块在每个时间步长中选择显著实体和适当属性,更新其状态,并从所选数据记录中生成一致的摘要.
三、模型
本文模型的核心是一个具有记忆状态 h^{LM}h^{ENT}的神经网络语言模型,其中 h^{ENT}

有两个作用:一是用来去记住那些已经被参考了的数据记录,二是去更新 h^{LM},这意味着被参考的数据记录将对文本生成阶段产生影响。

本文模型可以决定是否参考数据记录集x,选择哪些记录r\in x被提及,并且如何去表达数字。被选择的数据记录将用于h^{ENT}的更新。

为方便论文展示,此处先作变量声明:

(1)Z_t是一个二元变量,用于决定模型是否在t时刻参考了x;

(2)E_t表示了在t时刻的显著实体;

(3)A_t表示t时刻的显著属性(NCP里的type);

(4)N_t用于判定数值型数据用何种方式表达(阿拉伯数字还是英文)

为了保持对显著实体的追踪,在摘要生成阶段,本文模型在每一个时刻都要预测上述随机变量。由于空间局限性,模型省略了偏置变量。

符号声明:

\varepsilon:实体集

A:类型集

3.1初始化

3.2显著对象的转换

这里的显著对象包含着实体和其类型,本文用如下概率去决定在t时刻是否进行转换

 若该概率值很高,那么就转换对象。在进行转换时,模型需要去决策转换到哪个实体和类型上,并生成下一个词汇,并同时更新h^{ENT},继而更新h^{LM}。若不进行转换,那么t时刻和t-1时刻的h^{ENT}相同

3.3对象选择和追踪

当模型决定参考一个新的数据记录时(此时Z_t=1),将会选一个实体和一个类型。与此同时,它还通过将有关选定实体和属性的信息放入记忆向量h^{ENT}来跟踪显著性实体,模型开始选择主题实体,并在主题实体发生变化时更新记忆状态。模型通过以下公式来进行实体选择:

 其中,\varepsilon_{t-1}表示在t时刻时,以及被提及的实体所组成的集合,其中s指上一次提起该实体的时刻。当实体被变换时,模型将用以下式子进行计算:

 并用如下公式进行类型的选择:

 此时h^{ENT}将会进一步更新,用如下式子计算:

 也就是说,进行一次transition,由于要转换实体和类型,故需要分两步更新h^{ENT}

3.4摘要生成

有了两个hidden state,h_{t-1}^{LM}用作语言模型,h_t^{ENT}用作追踪模型,基于此,模型生成t时刻的单词

 y_t。同时,本文模型也引入了copy机制,可从x[e_t,a_t]中复制词汇。对于数值型数据,由于有两种表达方式,即阿拉伯数字型和英文单词型,需用以下公式来决定用哪一种形式:

 当模型决定用新的数据记录时(Z_t=1),将通过以下公式更新语言模型的hidden state:

 此时,输出的单词Y_t由以下公式计算:

 此时h^{LM}将会由以下公式更新:

 其中y_tY_t向量。

3.5学习目标

最大化以下式子:

 

 

 

 

 

我们今天的关于Select data from an Excel sheet in MSSQL的分享就到这里,谢谢您的阅读,如果想了解更多关于ARM编译中Code, RO-data,RW-data,ZI-data、Chimm.Excel —— 使用Java 操作 excel 模板文件生成 excel 文档、Code RO-data RW-data ZI-data KEIL MDK、Data-to-Text文献学习·《Learning to Select, Track, and Generate for Data-to-Text》的相关信息,可以在本站进行搜索。

本文标签: