数据库记录

2024-07-27

数据库记录(精选9篇)

数据库记录 篇1

1引言

Java的JTable (表格 ) 类可以十 分方便、 直观地显示数据库中的多行记 录。利用 默认的表 格数据模 型 (Default TableModel) 建立表格 , 对维护表格 数据十分方 便。具体 方法是 ,先设置Default Table Model的一些方法。然后, 指定JTable的模型为Default Table Model。

2 JTable类的构造方法

JTable (Object [] [] row Data, Object [] column Names) : 构造一个JTable来显示二维数组row Data中的值, 其列名称为column Names。

JTable ( Vector row Data, Vector column Names) : 构造一个JTable来显示Vector所组成的Vector row Data中的值 , 其列名称为column Names。

在使用表格时, 通常将其添加到滚动面板 (JScroll Pane)中, 然后将滚动面板添加到相应的位置。

3 Default Table Model类的常用方法

public int get Column Count ( ): 返回此数据表中 的列数。

public int get Row Count ( ): 返回此数据表 中的行数。

public String get Column Name (int column): 返回列名 称。

public Object get Value At (int row,int column) : 返回row和column处单元格 的属性值 。

public boolean is Cell Editable (int row, int column) : 单元格是否可编辑, 返回true或false。

4使用JDBC-ODBC连接Access数据库

Access数据库stu.mdb (数据库 *.mdb可以任意 命名 ) 中的表名是student (表名student要和Java程序中用到的表名相同, 下面Java程序中的对应语句是String condition=" select *from student where专业=" +" '" +str+" ' " ; )。

在Windows的控制面 板中 , 管理工具 --> 数据源(ODBC), 然后在出现的 窗口中配 置数据源。 配置ODBC数据源是student (下面Java程序中的对应语句是con=Driver Manager.get Connection (" jdbc:odbc:student") ;) , 对应的Access数据库是已经建立的数据库stu.mdb。

5使用JTable类显示数据库中的多行记录的实例

【例1】使用JTable类显示数据库中 的多行记 录。

( 1 ) 使用Access软件建立Access数据库stu.mdb , stu.mdb数据库中建 立一个表student , 表中的记录 如图1所示。

(2) 在Java环境中编辑 、保存、 编译Java程序Win Major.java。接着在Windows的控制面 板中 , 管理工具-->数据源(ODBC), 配置数据源 。 (3) 在Java环境中运行Java程序。

该Java程序的运行结果如图2所示。

6结语

通过学习Java语言中JTable类的构造方法、Default TableModel类的get Column Count( )、get Row Count( )、get Column Name( )、get Value At( )、is Cell Editable( ) 等常用方法 , 可以使用Java的JTable类显示Access数据库中 的多行记 录。

一种高速数据采集记录装置的设计 篇2

【关键词】数据记录仪;Flash;高速存储

1.系统方案设计

本文设计的数据记录系统由以下几部分组成:两台完全相同的数据记录仪、一个地面综合测试台、上位机、配套软件以及配套电缆。主要用于记录由雷达系统产生的视频回波、图像及遥测三路LVDS高速信号。系统工作时,由雷达系统首先发来启动记录信号,使已处于采集状态的两台记录仪同时工作,二者互为备份。地面测试台产生的模拟信号供记录仪存储,同时可以控制记录儀进入不同的工作状态,通过内置的USB接口读取记录仪的数据;上位机通过USB电缆与地面测试台相接,对回读的数据进行分析,同时验证记录仪是否正常工作。

2.系统硬件设计

该系统采用隔离变压器隔离接收三路LVDS数据,使得隔离前后的电路没有电气连接特性,然后再将隔离后的信号传送给存储模块;经过存储模块的均衡、解串后传给FPGA中心控制器,最后存入两片Flash中。

遥测系统输出的三路数据都有各自的启动记录信号。当记录仪接收到启动控制信号,开始记录对应路的数据,并存储到相应的存储模块中。飞行试验完毕后,可以利用备用读数电缆,将各个存储模块中数据通过测试台上传至上位机中进行分析,以便对记录仪的存储功能进行验证。在飞行模式下记录仪的供电由雷达系统完成。

记录仪由三个存储模块和一个接口模块组成。存储模块主要接收遥测系统的视频回波、图像及遥测三路LVDS信号,并对其中的有效数据进行实时存储。该模块主要包括以下几个部分:中心逻辑控制芯片FPGA、配置芯片PROM、LVDS电缆均衡器、LVDS解串芯片、存储芯片Flash、电源模块以及60MHz晶振等[1]。如图2.1所示:

接口模块主要包括LVDS高速读数接口、RS-422长线接口、视频及图像遥测雷达信号输入接口、各个存储模块的LVDS输入接口以及数据上传和指令下发接口。高速读数接口与地面测试台主控卡的相应接口连接,通过LVDS接口高速读取其中的数据;422长线接口通过双绞线电缆与地面测试台连接,主要实现记录仪与地面测试台之间的通信。

3.系统逻辑设计

3.1 Flash高速存储技术设计

由于Flash是基于页读写、块擦除的工作模式[2],在对其进行读、写以及擦除操作都需要一定的等待时间,通过建立无效块列表,有效地提高了读写速率[3]。由FPGA内部时序控制转换将生成的4K并行数据轮流写入两片Flash中,单片Flash采用交替双平面页编程方式,存储速率能够达到29.85MB/s。采用两片Flash进行存储,从时间上看两个数据流同时流入两片Flash中,相当于数据总线增加了一倍,实现数据存储速率能够达到单片Flash存储速率的两倍,即有效数据存储率为59.7MB/s,大于有效数据的传输速率59MB/s,能够保证对每路数据源的可靠存储。

3.2 存储模块逻辑设计

LVDS数据流可以直接按字节方式分离并存储,该方式虽然可以降低FPGA内部资源的消耗,但是加大了对存储数据恢复的复杂程度,并其中一路存储时出现丢数,容易影响到另一路数据的存储,造成数据结构的紊乱,导致存储数据无法恢复。因此采用FPGA内部双口RAM资源,实现8Kbyte数据的缓冲,之后增加两个4K双口RAM,构成了二级缓冲。对于单路的I/P/Q信号,数据在60M的时钟下写入一级缓冲(8K)中,当判断写入数据大于7106后,以60M的速率连续读取4096个数据给二级缓冲A,同时控制Flash(A)模块对二级缓冲A中的数据进行判断,当写入数据大于10个后,以30M的速率连续读取4096个并写入Flash(A)中;当再次判断一级缓冲(8K)中读写地址差值大于7106后,同样以60M的速率连续读取4096个数据,并写入二级缓冲B,当控制Flash(B)模块判断二级缓冲B中数据大于10个后,同样以30M的速率读取4096个后写满Flash(B)中的一页。上述操作交替进行,实现LVDS数据流中的有效数据轮流有序地存入两片Flash中。存储模块内部实现两级缓冲的逻辑原理框图见图:

4.系统可靠性设计

记录仪的正常工作离不开其可靠性设计。若电路设计的不合理,记录仪的工作性能得不到保障,严重时会损坏设备,可见电路的可靠性设计[4]是记录仪正常运行的首要保障。

4.1 降低存储模块功耗的可靠性设计

存储模块的供电经过电源芯片进行电压转换,给存储模块内部芯片供电。在未灌封之前进行多次常温测试发现,工作时电源芯片和XC3S200表面温度较高,而且由于对记录仪小体积的要求,要求内部芯片焊接很集中;而且记录仪在高空试验环境中会受到高冲击、高过载的影响,必须对记录仪存储模块进行灌封,增加抗冲击能力。为了解决上述问题,降低消耗在存储模块电源芯片本身的功耗。下面对存储模块进行温度测试试验。为了获得存储单元灌封后的内部温度,我们使用热电偶对内部多点进行测量,实时显示温度。在试验一和试验二中,我们选定以下七个点,试验三中增加了中壳体外壁一点。

通过以上设计的试验可以看出,当存储模块的供电电源输入为3.6V左右时,测试各点的温度都所有下降,在芯片正常工作范围内,且存储模块在长达十几小时的高温环境中仍能正常工作,说明存储模块输入电源采用3.6V供电的可靠性。

4.2 记录仪通信的可靠性设计

在整个存储设备中,RS-422传输协议主要实现记录仪与测试台之间的通信功能,控制记录仪的工作状态,另外,还可以完成记录仪的长线读数功能。数据是以串行差分形式传输,测试台主控卡向记录仪下发传输命令的长度都是以6个字节为基本单位,其中,前两个字节为固定帧头“55H”、“AAH”;第3个字节为命令长度,为固定的“02H”;第4、5个字节为命令字,针对不同的命令会有对应的命令字;第6个字节是校验和,大小等于两个命令字的和。记录仪也采用相同的命令格式进行返回命令的上传[5]。

为保证控制指令传输的可靠性,数据校验是必不可少的,因此,我们在协议中设计了校验码。同时,协议中还设计了命令信号从测试台、接口板、存储板、接口板,最后返回测试台指令反馈机制,增强了系统对错误命令的识别能力,提高了系统执行命令的抗干扰能力。

5.结论

文中研究的高速数据记录仪设备采用了双片选、双平面交替编程进行数据存储,并通过FPGA内部的二级缓冲技术,使得记录仪的总体写入速度加倍,采用合理的电路降低存储模块的功耗,利用可靠的通信协议,有效保证了信号数据的可靠接收和存储,完全满足设计的高速存储要求。目前该系统通过了高低温、振动、冲击及电磁兼容等环境试验,能够满足实际的工程要求。

参考文献

[1]Gyu Sang Choi,Byung-Won On.Study of the performance impact of a cache buffer in solid-state disks[J].Microproc-essors and Microsystems,2011,35(3):359-369.

[2]高怡祯.基于闪存的星载大容量存储器的研究和实现[J].电子技术应用,2003,8:75-78.

[3]Jeong-Uk Kang,Jin-Soo Kim,Chanik Park,Hyoungjun Park,Joonwon Lee.A multi-channel architecture for high-performance NAND flash-based storage system[J].Journal of Systems Architecture,2007,52(9):644-658.

数据库记录 篇3

将图像数据存在数据库中还是存在文件系统中是数据库应用程序编程中经常遇到的问题, 两种方式各有利弊, 也不能一概而论。但在大多数情况下, 对于KB级的图像文件来说, 最好还是存储在数据库表中以OLE对象 (SQL Server 2000中是image) 为数据类型的字段中。因为将图像数据文件存储在数据库中有许多优点。

图像跟着数据库一起走, 程序的安装和移植都很方便, 不用考虑文件系统及目录路径等问题, 容易管理。当图像数据与其他数据一起存储在数据库中时, 图像数据与其他数据可以一起备份和恢复。这样就不存在图像数据与其他数据不同步的问题, 而且也大大降低了其他用户无意中删除存储在文件系统中的图像数据及更改目录或路径的风险, 并且不需要为文件系统中的文件目录单独设置安全性。同时还可以对数据库系统进行优化处理以提高存取效率。总之, 将图像数据存储在数据库中是一种比较简洁谨慎稳妥的办法。

1 技术方法

在VB数据库应用程序编程中, 我们会经常需要存储一些图形图像、长文本、多媒体 (视频、音频文件) 等各种各样的文件, 如果在数据库中仅存储这些文件的路径信息, 尽管可以大大地减小数据库的大小, 但是由于文件存在磁盘上, 除了维护数据库外还要维护文件的路径信息, 这对于管理数据库很不方便。如果能够把这些文件的内容作为一个记录的一个字段值存储到数据库中, 这样文件的存储和读取就变成了简单的字段读写。现如今像SQL Server2000这样大型的数据库管理系统已经提供了多达2GB字节的字段类型 (TEXT、IMAGE、NTEXT) , 对于保存一般的文件已经足够了, 可以把需要保存的图形图像、影音视频文件等的内容存入到数据库中, 根据用户检索的信息, 再把对应的记录读出来, 存储到本地硬盘的一个临时文件中, 然后用其对应的程序打开它。为了读写BLOB (二进制大型对象) , ADO模型提供了两种方法即GetChunk和AppendChunk, 通过它们, 就可以像读写文件一样, 把这类文件的内容写进去也可以读出来。

目前将图像数据存储在数据库中有这样几种比较典型的技术方法:

利用数据控件和数据绑定控件, 利用这种方法, 不写或写少量代码就可以构造简单的数据库应用程序, 这种方法易于被初学者接受。

向数据库中添加需要存储的图片即存储图像文件的保存路径, 这种方法最简单快捷, 代码量较少。但是这种方法在运行速度和灵活性方面有一定的限制, 适合于初学者和一些简单的应用。

利用PropertyBag对象与Byte数组, 也无需对二进制文件直接进行存取, 不会产生临时文件, 代码编写简单, 操作步骤少, 所以也很适合初学者使用。

利用编写代码实现图片的存储与读取, 这种方法相对于前面3种方法来说, 代码量大, 但它操作灵活, 能够满足多样形式下的操作, 从而受到更多编程爱好者的青睐。但是涉及到的知识面相对要多一些, 不仅要掌握数据库的操作方法, 还要对VB文件系统中的二进制文件的读写操作有进一步的了解。这方面主要是运用ADO模型中Field (域) 对象的AppendChunk () 和GetChunk () 方法及Stream (流) 对象等方法。目前这两种方式因ADO模型在数据库编程中的通用性而得到广泛应用, 因其涉及长二进制数据的操作, 特别适用于图像影音文件在数据库中的存取操作, 具有更好的发展前景。

2 ADO模型存取数据库图片两种技术

2.1 Field (域) 对象的AppendChunk和GetChunk方法

BLOB (binary large object) 是相对于CLOB (字符型大型对象) 而言的, 即指二进制大型对象, 是一个可以存储二进制文件的容器。在计算机中, BLOB常常是数据库中用来存储二进制文件的字段类型。典型的BLOB是一张图片或一个影音文件, 由于它们的尺寸, 必须使用特殊的方式来处理。而AppendChunk () 和GetChunk () 方法就是ADO为处理这些BLOB字段提供的两种方法, 这两种方法是隶属于ADO模型的Field (域) 对象的, 它们是配套使用的一对方法。

其中Field.GetChunk方法返回大型文本或二进制数据Field对象的全部或部分内容。

语法格式:variable=Field.GetChunk (Size As long) 其中参数Size为长整型表达式, 等于所要检索的字节或字符数。

Field.AppendChunk将数据追加到大型文本、二进制数据Field或Parameter对象。

语法格式:Field.AppendChunk (Data) 其中参数Data为变体类型, 包含追加到对象中的数据。

使用Field对象的AppendChunk () 方法可将长二进制或字符数据填写到对象中。在系统内存有限的情况下, 可以使用AppendChunk () 方法对长整型值进行部分操作。使用Field (字段) 对象的AppendChunk () 和GetChunk () 方法时, 需要将图像数据进行分段读写, 计算稍微复杂一些、代码量相对也比较大。但此方法是通用性很强的一种方法。

2.2 Stream (记录流) 对象方法

这也是本文要重点介绍一种方法。ADO模型的Stream (记录流) 对象是专门用于流对象操作的, 它共有8种属性和13种方法, 其中有6个方法是直接读写对象和文件系统的, 因此它提供了更多针对二进制数据操作的属性和方法, 它借助VB的文件系统对图像文件的存取提供了一揽子解决的办法, 因此它有几个重要方法都是直接与临时文件的存取读写打交道的, 所以使用时也必须以VB的文件系统为操作对象, 而且它对图片、Word文档、AVI影像文件的操作均有着很强的通用性。

两种方法在使用方面各有所长, 读者可以针对自己的情况做出合理的选择。

ADO是微软公司的适用于各种类型数据的重要的高层活动数据访问接口, 是处理数据库信息的最新技术, 它是一个可编程的分层对象集合。它容易使用、高速、占用很少的额外内存, 并且只占用磁盘空间很小。正是基于ADO对象模型的基本知识, 并通过其Connection和Recordset对象以及ADO2.5中新出现的Stream对象对数据库应用程序编程中图像数据的存取进行介绍, 使读者在较短的时间掌握这一技术, 开发出切实可行的应用程序。

3 Stream对象存取图片文件的步骤

ADO模型中的Stream对象表示二进制数据或文本的流, 也是自ADO2.5中新出现的专门用于操作大型BLOB类型字段的对象, 因此它提供了诸多方便图像和大型文本操作的属性和方法。现将其中与图像存取操作相关的几个属性和方法作一简单介绍。

Type设置或返回Stream对象中的数据的类型。可选参数有:adTypeBinary=1或adTypeText=2。这里主要用adTypeBinary=1属性值。

Close用于关闭一个Stream对象。

LoadFromFile (FileName) 将FileName指定的文件装入对象中。

Open (Source, [Mode], [Options], [UserName], [Password]) 打开一个Stream对象。该方法有诸多参数, 但可以省略。在以下的示例中省略所有参数。

Read (Numbytes) 读取指定长度的二进制内容。不指定参数则默认读取全部数据。

SaveToFile (FileName, [Options]) 将对象的内容写到FileName指定的文件中。其中FileName就是指定的文件, 而Options存取的选项, 可选参数如下:adSaveCreateNotExist=1;adSaveCreateOverWrite=2。在以下的示例中用参数2。

Write (Buffer) 将指定的数据装入对像中。其中Buffer为指定的要写入的内容。

具体到实践中, 用Stream对象保存图片文件只需要这样简单的几个步骤:

(1) 首先声明并实例化Stream对象变量。 (2) 设置其Type属性为二进制类型。

(3) 打开Stream对象。

(4) 将指定的图片文件载入到Stream对象中。

(5) 用Stream对象的Read方法读取指定长度 (或全部) 的二进制内容存储到数据库字段中。

(6) 关闭Stream对象。

而读取图片文件的内容, 因为是从数据库中读取图片文件, 因此需要有个临时文件为过渡, 所以首先得声明一个字符型变量, 使其值指向一个临时文件, 接下来的步骤其中第1-3步骤与上面相似,

(1) 用Stream对象的Write方法将数据库中的二进制图片文件内容写入到Stream对象中。

(2) 用Stream对象的SaveToFile方法将Stream对象中的内容写到临时文件中。

(3) 关闭Stream对象。

然后将临时文件载入到VB图像框控件中以达到显示图像的目的, 最后将临时文件删除。这样便完成了将存储在数据库中的二进制内容读取并显示到图像框控件中的任务。

4 典型示例

在此以Visual Basic 6.0中文企业版为开发环境, 采用单机版工作模式, 利用adodb.stream对象对Access2003数据库关系表中图像数据的存取进行了初步探索实践, 现将学习过程及心得体会一并记录, 与诸位编程爱好者分享。

以数据库“Temp.mdb”中的“Table”表为基础, 设计简单的图片存取管理程序。

在此示例中引用的ADO对象为Microsoft ActiveX Data Objects 2.8 Library版本。

4.1 操作步骤

首先打开Microsoft Office Access2003新建→空数据库, 文件名为Temp, 使用设计器创建表, 新建字段名称为:姓名 (数据类型:文本) 、编号 (数据类型:文本) 、照片 (数据类型:OLE对象) 的3个字段, 另存为→表名称:Table, 设计好后关闭数据库。然后单击:工具→数据库实用工具→转换数据库→转换为Access97文件格式将设计好的数据库转换并在根目录下保存为同名文件。最终设计好的数据库设计示图界面如图1所示。

然后打开Microsoft Visual Basic 6.0中文企业版, 新建→标准EXE文件, 在工程→引用, 在可用的引用中选中Microsoft ActiveX Data Objects2.8 Library→确定。

4.2 界面设计

最终用户界面如图2图片管理程序设计界面所示。

4.3 代码编写

首先声明如下窗体级变量:

编写用于自动生成编号函数:

创建控件数组Command1用于图片管理操作:

创建控件数组Command2用于图片浏览操作:

在窗体的卸载事件中关闭记录集和数据库连接并释放资源:

在文本框的获得焦点的事件中自动生成编号:

在文本框离开焦点的事件中检查姓名是否重复:

4.4 运行效果

在进行存取数据后打开根目录下Temp数据库中的Table表可看到如图4所示界面。

可以看到照片字段中存储的内容显示的是长二进制数据, 这就是通过ADODB.Stream对象保存在数据库中的图片文件。

5 结语

相对于ADO模型的Field (域) 对象的AppendChunk () 和GetChunk () 方法, 用ADODB模型的Stream (记录流) 对象存取数据库图片的确有着其他同类方法难以比拟的优点, 它不涉及复杂的算法、代码简洁, 只需几行代码就可以存取图像数据。尽管它涉及到二进制数据的操作, 但它秉承了ADO模型不涉及控件而纯用代码方式编程的优点, 对存取二进制数据提供了诸多方便, 大大简化了图像数据在数据库中的的存取操作。

摘要:VB数据库中图像数据的存取对初学者来说是个难点, 而用ADO模型的记录流对象存取数据库图片的技术大大简化了存取长二进制数据的操作, 介绍了利用这一对象存储图片文件的方法, 使读者在较短的时间里掌握这一技术, 进而开发出切实可行的应用程序。

关键词:VB数据库编程,ADO对象模型,流对象,图像数据,存取操作

参考文献

[1]求是科技.Visual Basic6.0数据库开发技术与工程实践.人民邮电出版社, 2004.

[2]全国计算机等级考试四级教程-数据库工程师 (2008版) .教育部考试中心.高等教育出版社, 2007:269-312.

[3]刘志妩, 等.基于VB和SQL的数据库编程技术.清华大学出版社, 2008:226-239.

数据库记录 篇4

摘自《中国猪业》

摘要:母猪管理的好坏与养猪效益密切相关,母猪的生产能力直接反映生猪生产水平的高低。母猪管理要从母猪的生产数据抓起,真实全面的数据记录是猪场实现精细化管理必不可少的重要工作。养猪者应重视母猪数据的记录、分析与管理使用。

母猪是生猪生产的基础,母猪管理的好坏与养猪效益密切相关,抓好了母猪管理,生产就成功了一大半。可见母猪的饲养管理在整个生猪生产中的地位何等重要。建立母猪数据信息系统的目的即是抓母猪生产效率的提升,而母猪生产效率的高低是通过数字来反映的。数据的记录看似简单,但需要技术人员和饲养员用“心”来做,母猪的年龄、胎次、情期受胎率、产仔数、初生重、断奶仔猪数等指标都需要翔实的数据记录才能得到。真实全面的数据记录是猪场实现精细化管理必不可少的重要工作。应当得到养猪生产者的重视,并切实把它做好。

1、做好母猪的生产性能记录

记录母猪生产性能,必须做好以下八项工作。1.1给母猪编号

目前,国内外比较通用的编号方法就是打耳标,这是最基础的工作,是记录、管理母猪的第一步,我们必须克服一切困难给每一头母猪打上耳标,当个别猪的耳标咬丢了后应及时补打。1.2记录母猪的胎次

胎次能反映母猪生殖能力,不同胎次对母猪的繁殖性能影响较大,一般第一胎母猪繁殖成绩较低,以后逐渐提高,第五、六胎成绩最好,第八、九胎成绩又极显著地下降。1.3记录母猪的每胎断奶时间

每胎的断奶时间承前启后,既是上一个生产周期的结束,又是下一个生产周期的开始,详细记录可据此分析母猪的生产规律。

1.4记录母猪的配种时间

断奶后第一次配种时间是母猪配种记录的关键指标,既可分析母猪断奶后几天发情、是否正常、属几个情期,又可预测后面生产的繁殖计划,应及时清理断奶后长时间未发情配种的母猪。在母猪管理中,配种时间是一项对日常管理、后续措施的制订与执行起关键作用的指标,母猪的空怀期太长,降低母猪的年产胎次,减少母猪的年产仔数,直接影响猪场经济效益。1.5记录二次配种时间

返情后二配、三配及三配以上的母猪需同第一次配种一样填报本次配种情况,并填报上次的配种时间,且将其从上次配种的预产窝数中减去。对多次返情的母猪要重点关注,采取相应措施,对屡配不孕的母猪要予以淘汰。1.6记录预产期

预产期即预计产仔时间。以114天为理论数据,我们汇总数据可以知道一段时间的产仔分布情况,据此对生产进行安排,如周转栏舍、准备消毒、制订疫苗注射计划等都需预先统筹安排管理。一般统计该项数据时,可以在电脑上选项,直接分时间段按周、按月汇总。1.7记录实产情况

实产情况包括实际产仔时间、产仔数(活仔数、死胎和木乃伊胎等)、初生重等基本情况。要将实际产仔窝数与计划产仔窝数对比,并关注母猪有无繁殖性疾病。如连续几胎出现繁殖障碍要及时向技术部门汇报,以便猪场与公司技术中心进行集中分析,采取针对性的措施。1.8记录母猪每胎次的断奶情况

即记录断奶仔猪数和断奶窝重,这是反映母猪生产性能的重要指标之一。身体健康、会带仔、泌乳性能好的母猪每胎可提供断奶体重达标的仔猪9头以上,一般的母猪,可提供正常断奶仔猪7-9头,较差的母猪只能提供少于7头的断奶仔猪。这项记录也可以与1.3所述的断奶时间记录合并。

2、做好母猪的耗料情况记录 2.1记录母猪耗料情况的意义

此项记录的意义在于反映不同生产阶段母猪的日均耗料(采食量)情况、通过实践观察母猪的日粮供给量和营养浓度是否合理,为科学地调整饲料配方和饲养方案提供依据,以此推进母猪标准化饲养制度的落实。该项数据在猪场管理信息系统上应逐一录入,然后得到系统性的分析资料,再用来指导母猪喂料管理,以保证母猪营养供给合理,满足高产性能的需要和促进母猪及仔猪的健康,提高母猪的生产性能。

一般母猪饲料均为颗粒饲料,有空怀和妊娠前中期饲料及怀孕后期和哺乳期饲料两个品种,应分阶段进行定量饲喂。

饲料消耗要求记录人员每天到生产车间现场摸清真实情况,记录实际耗料数据,保证数据的真实性和准确性。如果填报的数据与实际不符,系统数据分析也就没有价值。2.2记录母猪耗料的操作流程

记录母猪耗料情况的操作流程如下:公司技术中心根据猪群品种、体重、气温等综合因素,提出阶段性的母猪饲料投喂指导标准;猪场管理人员指导母猪车间饲养人员按标准饲喂,适当考虑个体、状态差异;饲养员在车间按饲喂标准执行;管理人员检查、督促标准执行,并作好记录,上报公司的事业线统计;事业线统计将猪场上报数据录入信息系统,利用软件系统进行统计分析,反馈给生产管理人员。2.3关键环节

技术中心要根据各场母猪的情况,提出明确的指导标准,猪场管理人员要到车间检查、督促,饲养员按指导的标准不折不扣地执行,在日常操作中形成固化的流程。所谓固化流程就是饲养人员到车间依照母猪所处的不同生产阶段有次序地喂料,清楚先喂什么猪、喂什么品种的饲料,先投多少、后补多少。车间喂料的工具需要量化,明确一次操作的饲料重量是多少。投喂之后,饲养人员要观察母猪的吃料情况。根据实际情况,个别母猪可能要作一些调整。对于有自动喂料系统的猪场要由管理人员事先在供料控制系统进行设置,再交给饲养员执行操作。

这个过程是一个指导、管理、执行反馈的过程,如果有计划、有步骤、有执行、有记录、有检查、有分析、有反馈,每一个程序都认真地做到位了,就有主动性,耗料的数据就能精确统计,重点在于投喂过程的管理和及时记录。通过过程的控制、执行力的加强、各方面的协同配合,提高统计工作的效率实现目标任务。

3、母猪生产数据的分析与使用 3.1数据分析的目的在于解决问题 在真实记录的基础上,及时获取准确的数据。事业线、公司技术中心每周每月要对猪场母猪的配种、返情、产仔、耗料作系统的评判分析。进而结合季节性疾病流行的情况,对各场整体生产情况进行分析。先找系统性、全局性的问题,如果正常,再找局部性、环节性的问题。应将问题分类排序,先解决重点突出的问题,再解决一般次要性问题。或者按照先易后难的原则,猪场将自己能解决的问题,通过分析,提出解决方案,制订纠正和预防措施,尽快实施、尽早解决。一般性技术问题报告公司技术中心审批后即可执行,不要久拖不决,延误生产;自己无法解决的重大问题申请公司集中力量加以解决。

3.2几种基本的数据分析方法 3.2.1计划比较分析方法

用实际数据与计划数或标准数作对比,通常用百分比表示,也可用绝对差异数表示。如分析母猪的配种分娩率,用实际产仔窝数/配种母猪头数×1OO%即得到配种分娩率,注意对应时间,分娩率一般可达80%以上,水平较好的可达90%以上,低于75%就要寻找问题。又如哺乳母猪日均耗料数,以车间为单位(或以场为单位),分析哺乳母猪耗料量,当日耗用哺乳母猪料的数量(千克)/当日哺乳母猪的头数即得出当日哺乳母猪的平均耗料量,与指导的标准或经验值比较。若偏低,说明喂料量不足,或者母猪怀孕后期喂料过多,分娩后采食量上不来,结合观察母猪的膘情和食欲状况(有无饥饿感)、健康程度、泌乳性能来判断喂料量是否合理,并指导饲养员纠正不正确的饲喂方法。3.2.2横向对比分析法

比较场与场之间同一指标的教据,水平高的场必然有它的经验及可取之处,水平低的场必然有它存在的问题。找出问题,借鉴、学习水平高的场的解决方案提高生产水平。3.2.3因素分析法

是利用统计指数体系分析现象总变动中各个因素影响程度的一种统计分析方法,使用这种方法能够使研究者把一组反映事物性质、状态、特点等的变量简化为少数几个能够反映出事物内在联系的、固有的、决定事物本质特征的因素。一个指标与几个主要因素相关,对相关系数大的几个因素逐个分析,用排除法,通过逐个分析,查找主要问题,重点突破解决。如与母猪年产仔数相关的几个主要因素有母猪年产胎次、母猪每胎产仔个数和仔猪育成率。而母猪年产胎次又由母猪空怀期、母猪哺乳期和后备母猪的投产率等几个主要因素影响,每年需要更新25%以上的母猪,必须关注后备母猪的培养和及时投产情况;影响母猪空怀期的因素有:一般母猪空怀待配种期的长短、未怀孕母猪的饲养头数和二返、三返母猪的数量比例。通过因素分析,抓住主要矛盾,就会找到主要问题或问题的主要方面,找到后再寻求解决办法和技术措施,解决问题就会有层次,有步骤,效果也会较好。

数据库记录 篇5

本文介绍了一种自动记录ARINC429总线数据的测试设备 (以下简称429记录仪) , 下面分别介绍该429记录仪的技术性能、组成和设计方法。

1 技术要求

1.1 功能要求

429记录仪研制中要充分阻抗匹配问题, 同时也应考虑429总线驱动能力, 避免因传输距离过长造成误码或丢失数据现象。

记录仪应能记录被测件加电时刻, 并在被测件发送429数据后开始记录, 在被测件断电后停止记录, 记录被测件所有发送的429数据, 对所记录数据以被测件“上电”时刻为零时刻打统一时标。记录数据不应有漏帧、错帧。记录数据以磁盘文件形式存储, 并能对数据文件进行加载、显示、分析。

1.2 数据记录要求

数据记录结束后提醒操作者存盘, 同时应有文本框供操作者输入当前试验情况说明, 此说明与记录数据一并存入数据文件。

1.3 数据处理、分析要求

图形显示:操作者能根据实验情况, 对所记录数据进行选择, 对选择数据以图形方式显示。

2 设计方案

2.1 系统组成和工作原理

429记录仪主要由工业计算机、429数据接收卡、记录处理分析软件三部分组成, 如图1所示。

2.2 工业计算机

工业控制计算机, 根据用户的携带方便的要求, 选用便携式工业控制计算机。

2.3 4 2 9数据接收卡

新研的429数据接收卡, ISA总线接口, 两个429发送通道, 四个接收通道, 符合429总线标准。

ARINC429数据接收卡主要用来接收被测件通过429总线发来的数据, 并把数据传给主机进行处理。

数据接收卡的组成如下。

本ARINC429的数据接收卡的控制中心是8096单片机系统, 负责ARINC429数据的管理, 简化了电路系统的设计, 工作在16位数据传输方式下, 其原理图见图2。

其中ISA总线接口电路完成ISA总线和接收卡的通讯。双口RAM实现ARINC429数据的缓冲存贮, 采用8096CPU进行管理, 双口RAM中的数据可以被主控机快速地读走从而实现了主控机和模块之间的快速数据通讯, 实现并行存取, 减少了主控机的负担。

数据接收卡的工作原理如下。

发送过程:首先主机将需要发送的数据按帧的形式组织好, 将其放在数据接收卡的发送存储区, 当卡接收到发送命令时, 将数据沿ARINC429总线发送出去, 发送完毕后向主机发出中断申请, 主机可以重新装载数据, 命令模块发送出去。

接收过程:当数据接收卡接收允许接收命令时, 开始监视ARINC429总线, 总线上有数据时开始接收数据, 并把数据放到双口RAM的接收缓冲区中, 当缓冲区满时用中断向主机报告其状态, 并请求主机将数据从双口RAM中读走。

2.4 记录仪软件

软件的开发、运行环境。

测试软件的主要硬件对象429数据接收卡, 因此可有针对性地选择软件编程工具, 经比较, 选用NI公司的基于标准C语言的、开放式的编程环境LabWindows/CVI, 操作系统选用Windows 2000。

软件总体组成。

软件由两部分组成。数据采集模块, 主要包含数据记录和存储的功能。数据处理模块, 主要包括显示、打印、处理等功能。

数据采集模块的主要功能是在被测件测试的过程中, 把429信息采集下来, 按规定的格式存储。

数据采集的过程共分为以下4个阶段。

第一阶段, 等待“被测件准备”信号, 等该信号出现后, 记录时间。

第二阶段, 连续记录被测件传出的429总线信息, 并按照规范进行整理。

第三阶段, 停止记录。

第四阶段, 输入存盘文件名称, 试验备注, 存盘。

数据分析模块的主要功能是读取存盘文件, 对文件中记录的被测件信息进行显示、分析。数据显示的方式有列表显示、图形显示。图形显示采用标准图形控件来实现, 具有缩放、拖动、取值等丰富的功能, 便于进行数据分析。

存盘文件。

存盘文件的文件名由当前系统日期和时间组成的。

信息以ASCII码 (即文本) 文件形式存贮, 每行49个信息字 (其中第一个信息字为时间值, 第2~49信息字为被测件发送的数据, 具体文件内容格式为:

T T TDDZZXXXXDDZZXXXX……DDZZXXXX

其中, TTT为接收到信息的时间值 (以ms为单位) 。

数据信息字由DD、ZZ和XXXX三部分组成:

DD为429数据地址;

ZZ为8位组合信息, 由记录仪软件填充;

XXXX为16位429数据。

3 结语

LKJ运行记录数据分析技术研究 篇6

LKJ运行记录数据是列车运行监控装置 (LKJ) 在运行过程中实时记录的运行状态数据, 包括系统自检信息、软件版本信息、速度事件、按键信息、机车条件变化、运行状态、制动试验、数据调用、GPS信息、检修人员/机车乘务员输入、点式信息等内容, 是行车安全分析的重要依据。

LKJ运行记录数据分析是铁路运输企业电务、机务部门的一项重要日常工作, 数据分析的意义在于提前发现LKJ设备质量隐患和机车乘务员操纵安全隐患, 及时采取措施, 消除安全隐患, 实现LKJ设备质量稳定、运行可靠, 机车乘务员操纵规范, 保障列车行车安全。

传统的LKJ运行记录数据分析是对单个LKJ运行记录数据文件直接分析, 而单个LKJ运行记录数据文件往往只是机车运行完整记录的1个片段, 所以并不能真正、全面地掌握机车或机车乘务员的一次全部出乘情况, 同时也不能为管理者提供宏观的决策信息。

铁路运输企业越来越重视决策的及时性和准确性, 随着数据仓库、数据挖掘、决策分析等计算机数据分析技术的成熟应用, 有必要将这些技术应用于LKJ运行记录数据分析中。目前, 各铁路运输企业都汇集了大量的LKJ运行记录数据和实时分析数据, 依据数据仓库的物理模型, 将这些数据加载到数据仓库中, 将数据仓库中的数据汇总、处理后, 从操纵分析、设备质量分析、运用区段分析、多设备综合分析等维度进行分析, 得到管理者所需要的决策信息。

2 计算机数据分析技术体系结构

计算机数据分析技术体系结构由数据仓库、ETL技术、数据挖掘、数据处理、数据分析等技术构成。

数据仓库 (Data Warehouse, DW) 是按照企业整体的信息模型, 尽可能以最小的业务单元组织并存储数据, 这样既能保证数据访问的灵活性, 又可保证最少量的数据冗余。数据仓库是企业经营分析支持系统的核心。数据仓库的结构相对比较简单, 面向管理人员, 为他们提供决策支持, 不同层次的管理人员均可利用数据仓库进行决策分析, 提高管理决策质量和效果。

ETL (Extraction-Transformation-Loading) 技术即数据抽取、转换和加载。ETL负责将数据源中的数据清洗、转换、集成, 最后加载到数据仓库中, 成为联机分析处理、数据挖掘的基础。

数据挖掘 (Data Mining) 通过分析具体数据, 发现确定有效的、新颖的、有潜在使用价值的、不为人知的、最终可理解的信息, 为企业良好运营和决策提供帮助。数据挖掘是知识发现的过程, 主要基于统计学、人工智能、机器学习等技术, 高度自动化地分析数据, 作出归纳性推理, 从中挖掘出潜在的模式, 并对未来情况进行预测, 以辅助决策者评估风险、作出正确决策。

目前数据处理大致可以分成两大类:联机事务处理 (On-Line Transaction Processing, OLTP) 和联机分析处理 (On-Line Analytical Processing, OLAP) 。OLTP也称为面向交易的处理系统, 主要是基本的、日常的事务处理, 其基本特征是原始数据可以立即传送到计算中心进行处理, 并在很短的时间内给出处理结果, 这样做的最大优点是可以即时地处理输入数据, 及时回答, 是传统关系型数据库的主要应用。OLAP的主要特点是多维数据分析, 针对特定的分析主题, 设计多种可能的观察形式, 设计相应的分析主题结构, 使管理决策人员在多维数据模型的基础上进行快速、稳定和交互性访问, 并进行各种复杂的分析和预测工作。

数据分析模型是为了交流认识而形成的关于客观存在问题的框架, 是依据数据仓库中的一个主题信息建立的分析模型。模型库是联系决策问题、数据与模型的桥梁, 它将多个模型以一定组织形式存储起来。每个分析模型需要一套算法支持。模型算法是数据分析模型实现的过程, 是具有特定功能的模块化程序设计单位。算法库是算法可扩充的集合。

将LKJ运行记录数据文件, 机务、电务部门的日常分析数据及外部数据库 (保存了其他车载设备的运行记录数据) 重新组合成面向机车乘务员、车次、检测人员、各种设备等多维度的完整数据, 并保存在数据仓库中, OLAP和DM则依据数据分析模型库分析出决策者所需要的决策支持信息。

计算机数据分析技术体系结构示意图见图1。

3 业务分析技术

业务分析时, 分析人员比较关注操纵类数据、设备质量类数据、区段线路信息数据;分析事故时, 往往又需要将LKJ运行记录数据和其他车载设备的运行记录数据进行同步分析。

1个LKJ运行记录文件是1次乘务员出乘或1个车次全部数据的1个片段, 而业务分析时则需要对其进行完整分析, 在对LKJ运行记录文件处理时, 首先利用文件数据拼接技术, 将多个相关文件数据进行拼接, 在乘务员、车次、区段、设备等多维度建立一套完整的作业数据, 然后再进行分析。LKJ运行记录数据格式处理软件客户端程序界面见图2。

3.1 操纵分析

LKJ运行记录数据中, 记录了机车乘务员的操纵作业过程和检测人员检测作业过程, 对于两者的分析, 都需依据相关的作业规范建立对应的数据分析算法。

日常分析阶段, 在机车乘务员操纵分析中, 一是对本次机车乘务员出乘中所存在的制动、报警、解锁等安全项进行统计, 二是依据机车乘务员标准化作业的相关规范查找操纵中不符合规范的操作。决策分析阶段, 主要是将在日常分析阶段所分析的结果进行再次汇总, 分析1名机车乘务员在一段时间内所存在的问题, 指导机车乘务员可针对性地在技术上对其指导;或对多名机车乘务员的日常分析结果进行汇总, 分析出多名机车乘务员的共性问题, 运用部门或教育部门可进行统一培训。日常分析阶段针对机车乘务员分析的安全分析数据可作为对指导机车乘务员、车队、运用车间做出考核的重要依据, 出乘时间数据可为机车乘务员超劳分析提供依据, 累计走行数据则可为机车乘务员报单提供依据。

检测作业人员的作业分析过程与机车乘务员操纵分析过程类似, 分析结果为电务部门的管理工作提供重要依据。

3.2 设备质量分析

LKJ、LKJ相关设备及相关地面设备的质量直接影响列车车载控制系统的运用质量, 依据LKJ运行记录数据可分析这些设备存在的问题和故障隐患。日常分析阶段, 对单个LKJ运行记录文件进行分析, 如所涉及设备的运行状态是否存在异常、关键设备中的软件版本是否正确、设备寿命是否到期等, 并将分析结果按设备分类储存在数据仓库中。在决策阶段, 管理者则可查看指定设备的运行履历、检修履历、软件更换情况等信息, 为设备的检修、换装及备品准备等提供参考。

3.3 运用区段分析

管理者往往关注通过施工、防洪等特殊区段所有列车的运行情况, 以此判断施工、防洪等效果。在日常分析中, 只对当前的LKJ运行记录数据文件中的列车通过特定区段进行分析, 由当前列车的运行情况判断此区段是否存在问题或安全隐患。而在决策分析阶段, 则是在特定时间段内, 对所有通过该运行区段内的列车进行分析, 根据这些列车的共性问题判断区段是否存在安全问题。

3.4 综合分析

在日常分析中, 特别在列车运行事故分析中, 往往需要将LKJ运行记录、车机联控语音、列尾、TAX箱等多种数据同步进行分析, 需要将各种设备数据以图形、文本、语音等形式回放, 模拟多设备协同工作的运行环境, 有利于快速、准确地查找引发事故的原因。同时, 也可分析多个设备协同工作时设备间配合存在的问题。

综合分析时, 以LKJ运行记录数据中的时间和公里标为同步点, 在查看LKJ运行记录数据时, 将其他设备数据同步定位, 显示当前时刻和当前公里标下其他设备的工作状态;同时, 查看其他设备数据时, 也可对LKJ运行记录数据同步定位。

4 实时分析技术

在业务分析技术中, 所有的分析方法都是在机车乘务员退勤后对转储的LKJ运行记录数据文件进行分析, 属于事后分析, 缺乏对运行过程中预防事故报警和事故现场指导的作用。在安全管理中, 安全防范比事后处理更为重要, 所以对实时分析技术的研究非常必要。

实时分析是将LKJ及相关设备的运行数据、报警信息、故障信息等数据通过无线传输平台实时发回到分析服务器上, 分析服务器对接收到的数据实时处理, 分析列车运用中的机车乘务员操纵安全隐患、设备安全隐患、设备故障等, 使用语音、手机短信等方式及时报警。地面分析人员在接收到相关信息后及时通知机车乘务员进行处理, 为预防事故提供有力手段。另外, 在发生事故时, 指导机车乘务员可根据实时运行记录数据分析故障原因和解决方案, 合理地指导乘务员处理故障。

5 结束语

多总线数据记录系统的设计与实现 篇7

目前,随着传感器技术、网络技术、通讯技术的发展,工业总线技术也由原先的专用串行总线发展到RS-485串口总线(简称485总线)、1553B总线、ARINC 429总线(简称429总线)和以太网总线等。

而国家目前的大型武器平台也向自动化、信息化发展,复杂性越来越高。这类武器系统通常由多个分系统、子设备组成,通过不同种类的总线连接在一起。为了对其进行测试,需要对多种总线的数据进行记录,事后分析数据得出武器性能指标。因此解决多种总线的数据记录问题成为关键。

1 总线介绍

1.1 1553B总线

1553B总线标准全称MIL STD 1553B(以下简称1553),该标准作为美国国防部武器系统集成和标准化管理的基础之一,被广泛的用于飞机综合航电系统、外挂物管理与集成系统,并逐步扩展到飞行控制等系统,涉及坦克、舰船、航天等领域。最初由美国空军用于飞机航空电子系统,目前已广泛应用于美国和欧洲的海、陆、空三军,而且正在成为一种国际标准。

GJB 289A-97《飞机内部时分制指令/响应型多路传输数据总线要求》简称GJB 289A,是我国制定的与美国1553相对应的军用航空总线标准,GJB 289A兼容1553。GJB 289A数据标准总线正在我国航空航天、武器平台等方面得到越来越多的应用,必将逐渐成为我国国防电子的重要的基础设施之一。

1.2 ARINC 429总线

ARINC 429总线是美国航空无线电公司(ARINC)制定的航空数字总线传输标准,定义了航空电子设备和系统之间相互通信的一种规范。随着国内航空业的发展,ARINC 429总线的应用日益广泛,已推广到许多航空设备中。与此同时在许多航空机载设备的检测维修中出现了大量对429信号的检测需求。

ARINC 429协议规定使用双绞屏蔽线以串行方式传输数字数据信息,信息为单向传输,即总线上只允许有1个发送备,可以有多个(≤20个)接收设备。总线的数据传输率为12.5~100kbps,传输字为32位。线路上的码型为双极性归零码。

1.3 RS-485串口总线[3]

RS-485总线采用一种平衡发送和差分接收数据传输的电气规范[1],已成为业界应用最为广泛的标准通信接口之一。它具有组网能力强(可驱动32个负载设备)、噪声抑制能力强、数据传输速率高、传输电缆长以及可靠性高等特点。因此,许多不同领域都采用RS-485作为数据传输链路。

1.4 以太网总线

以太网技术广泛应用于INTERNET网络、城域网、局域网。目前大型的信息武器平台也将以太网作为其主要的信息传送通道,各个分系统通过局域网组成作战网络,通过IP协议传送信息。

2 实现途径

多总线数据记录系统需要记录的是多条不同类型、速率、信息格式的数据,所以必须考虑数据的多样性、并发性以及速率突发性,特别是以太网数据,在某一时刻具有较快的发送速率。

该系统采用CPCI总线计算机来实现。CPCI总线计算机具有良好的扩展性、稳定性和加固性,能较好的适应武器平台对设备的环境要求。

软件方面采用多线程架构,每个线程接收一路总线数据,由单独的数据记录线程完成总线数据的记录。这样即保证了每一路总线数据的实时、高速、可靠的接收又能保证数据稳定、持续的记录。

在以太网数据记录方面,由于一般的网络是由交换机组成的交换式网络,应用软件点对点发送数据。而作为数据记录系统,不能改变原系统软件的功能,所以,准备采用网络镜像技术以及Sniffer技术完成对以太网数据的记录。

3 方案设计

3.1 硬件设计

该系统采用CPCI总线计算机来实现,系统计算机自带百兆/千兆自适应网络、485总线接口,然后通过加装1553B总线板卡、429总线板卡实现1553、429接口的扩展。

3.2 软件设计

软件作为一个综合数据记录软件配置项,它由以太网网络数据捕获组件、1553B总线数据监视组件、485串口数据接收组件、429总线数据接收组件、主框架组件组成。

软件采用多线程工作模式,动态管理各个组件,利用缓冲技术保证各类数据能够准确可靠的接收、记录。软件数据流如图1所示。

主框架包括综合记录软件的人机界面模块、消息映射模块、综合配置模块、综合数据记录模块、线程管理模块、缓冲区模块。它们各自独立,为以太网网络数据捕获组件、1553B总线数据监视组件、485串口数据接收组件、429总线数据接收组件提供界面、缓冲、记录、配置管理以及线程管理的服务。

人机界面模块和消息映射模块在MFC(Microsoft FundationClass)的基础上设计,它支持windows操作系统最新的应用,包括了众多的控件、样式、消息等设计,而且提供了网络支持。通过VC对程序的优化,软件运行也更加可靠和稳定。

综合数据记录模块完成对各个监视、捕获以及接收组件的结果数据进行存盘,是最终的数据结果。考虑到各个监视、捕获以及接收组件在多线程下运行,它们可能同时需要存储数据。综合数据记录模块为各个组件分配时间片,该模块只在时间片内存储相应组件的数据。这样大大提高了存储设备的利用率,加快了存储的速度,防止了因为存储设备速率低导致数据丢失的可能性。

线程管理模块以面向对象的形式设计,它设计为一个父类,各个监视、捕获以及接收组件继承于这个父类,自动实现线程管理提供的功能。线程管理模块实现线程启动、暂停、停止等线程基本功能,并且在其内封装了缓冲区模块,实现对监视、捕获以及接收组件子类的透明式缓冲功能。

缓冲区模块提供了在多线程下使用FIFO队列的能力。封装了入缓冲区和出缓冲区接口,为线程管理模块提供缓冲。

综合配置模块为各个组件提供读取配置信息以及保存、更新配置信息的功能。软件框架如图2所示。

3.3 技术要点

该设备主要的技术要点包含多线程管理、同步双缓冲区和网络数据捕获。

3.3.1 多线程管理[2]

线程(Threads)是比进程(process)更小的执行单元,CPU的调度与时间分配皆以Threads为对象。多线程能够提高多人、多任务程序接口的反应速度,产生Threads毫无困难,要让它们分工容易,而要让它们合作,要花费一些精力,否则,使用线程可能会引发数个潜在性的严重问题。

线程管理模块以面向对象的形式设计,它设计为一个父类(CThread),实现线程启动、暂停、停止等线程基本功能。各个监视、捕获以及接收组件继承于这个父类,自动继承线程管理模块提供的功能。多线程管理模块类图如图3所示。

3.3.2 同步双缓冲区

总线数据记录软件是由数据接收线程和数据记录线程协作完成的,它们之间存在数据同步的问题,为此我们单独设计了同步双缓冲区组件,一个缓冲区用于数据接收,另一个缓冲区用于数据记录,当记录缓冲区空置时,接收缓冲区与记录缓冲区通过指针互换。这样即保证了数据及时的接收,又保证了双线程之间数据的同步。

3.3.3 网络数据捕获[1]

网络数据捕获是利用Sniffer(嗅探器)技术,截获传送给其它计算机的数据报文。该技术被广泛应用于网络维护和管理。它工作的时候就像一部被动声纳,接收着来自网络的各种信息。

数据在网络上是以“帧”为单位进行传输。帧是根据通信所使用的协议,由网络驱动程序按照一定的规则生成的,然后通过网卡发送到网络中。在目标主机的一端按照同样的通信协议执行相反的过程。在正常情况下,网卡读入一帧并进行检查。如果帧中携带的目的地址和自己的物理地址一致或者是广播地址,网卡通过产生一个硬件中断将帧中所包含的数据传送给系统进一步处理;否则将这个帧丢失。

当网卡设为正常模式时,对网络的帧如上面说的一样进行处理和接收,显然这样就不能达到数据捕获的目的,因为我们要捕获的帧不是发给我们的。我们可以把网卡设为混杂模式,这样该网卡将接收所有在网络中传输的帧,无论该帧是广播的还是发送到某一指定地址的,这就为捕获数据形成了物理通道。

虽然网卡可以设为混杂模式捕获数据,但是现在的网络是基于交换机的网络,其数据帧是根据目的地址进行分发的,单个网卡将无法监听到所有正在传输的数据帧。利用交换机的网络镜像技术,可以将某个端口A的发送/接收数据镜像到另外一个端口B,我们只需在端口B利用Sniffer技术捕获数据即可。

4 结束语

武器系统信息化使得一套武器系统必须采用多种总线技术才能完成任务,也使得对应的测试系统必须能够采集记录多种总线的数据。因此研究多总线数据数据记录系统,使多种类型的总线数据能够快速、可靠、并行记录具有重要的意义。本文正是从这一点出发,对武器系统常用的总线进行分析,开发设计了多总线数据记录系统,对于其它的总线,在研究了该总线的特点后,开发相应的数据采集模块,可以方便的集成到该系统中。相信,本套数据记录系统对于提高武器测试系统采集模块的功能具有借鉴意义。

参考文献

[1]王石.局域网安全与攻防[M].北京:电子工业出版社,2007.

[2]BEVERIDGE J,WIENER R.Multithreading applications in Win32[M].Pearson Education,1992.

[3]龚建伟,熊光明.Visual C++/Turbo C串口通信编程与实践[M].北京:电子工业出版社,2005.

ASP中的记录集数据显示技术 篇8

ASP可以使用ADO组件来访问数据库,通过SQL语言实现对数据库的查询、更新、添加、删除等操作,非常方便地访问和操纵数据库,而ADO组件中,记录集对象Recordset是功能最强大也最全面的对象,是在ASP数据库应用中使用最多,也是最重要的一个ADO对象。使用SQL语言查询数据库中的数据,查询结果以记录集的形式保存在Recordset对象中,如果方便快捷地将Recordse对象中的记录集数据显示在网页中,是ASP数据库应用技术中的重要课题。

以下介绍的几种记录集数据显示技术,都是在ASP数据库开发中非常实用的技术,充分理解和掌握这些技术,将有助于提高ASP数据库应用程序的开发效率。

1 数据库连接操作的封装函数

在ASP中,必须先创建ADO连接对象Connection,使用连接对象建立与数据库的连接,然后才能查询和操纵数据库。

要建立数据库连接,必须使用一个特定的、复杂的连接字符串,该字串中要明确指定该数据库的OLEDB提供者,及其一些连接参数。通过使用OLEDB提供者,ASP有能力与各种各样的数据库建立连接,简单的如Text文档、Excel工作薄等,常见的如Access数据库、Foxpro数据库等,高级的如MS SQL Server、Oracle等企业级的网络数据库,这充分体现出了ADO技术的通用性。

但是,在ASP小型数据库应用开发中,通常使用Access数据库或MS SQL Server数据库,其他各类的数据库很少用到,因此,我们可以将针对这两种数据库的连接操作设计封装成函数,避免书写复杂的连接字符串。

'SqlServerConn过程:生成连接MS SQL Server数据库的ADO连接对象,其中的五个参数依次是:

1.1 原理讲解

ByRef型参数,即引用传递参数,调用时相对应的实参必须是变量参数,过程代码中一切针对引用参数的修改,都将回馈到相对应的实参变量中;在过程内部,实际上是根据传递给过程的参数拼组出相应的数据库连接字串,然后创建相应的ADO连接对象,生成的连接对象将通过引用参数objConn回馈给过程调用者。

从下面的运用实例可以看出,使用封装函数的技术,极大地简化了生成数据库连接对象的过程。

1.2 运用实例

1)网站目录/db下保存有Access数据库文档example.mdb,打开该文档时要求输入密码:abcd

Dim MyDBConn

'下面的过程调用,将根据指定的参数生成的数据库连接对象,连接对象将保存在变量MyDBConn中

MdbConn My DBConn,"/db/example.mdb","abcd"

2)在MS SQL Server服务器主机DBSVR上提供了数据库MYSQLDB,登录帐号:sa密码:123可以登录MS SQL Server服务器主机,并拥有使用数据库MYSQLDB的权限

Dim MySQLConn

'下面的过程调用,将根据指定的参数生成的数据库连接对象,连接对象将保存在变量MySQLConn中

SqlServerConn MySQLConn,"DBSVR","MYSQLDB","sa","123"

2 将记录集数据显示为一张表格

调用下面的ShowTable过程,就可以快速将记录集数据显示为一张表格。

ShowTable过程中,objRS参数用于指定要显示的记录集对象;该过程能自动探查记录集的每一个字段的名称,并将字段名称逐个显示在表格的表头行中;表头行以下开始显示记录集中的数据内容,自当前记录行开始,每一条记录的数据内容显示为表格中的一行。

2.1 原理讲解

ShowTable过程运用记录集对象的Fields集合属性的功能特点,实现了自动探查记录集中每个字段有名称的功能,使之成为通用的记录集显示工具,不过,ShowTable过程的数据显示能力却非常单调,只能将记录集数据显示成一个简单的数据表格。

另外必须注意的是,调用ShowTable过程显示某个记录集数据之后,这个记录集的当前记录行游标将位于Eof位置,如果后面还需要使用该记录集,必须要执行MoveFirst方法将游标位置恢复到记录集最前方开始行。

1)objRS.Fields.Count:Fields是记录集对象中的一个集合属性,其中包含了记录集所有字段的信息,Count是所有集合的公共属性,值为集合中元素的个数,所以,objRS.Fields.Count就是报告记录集objRS中字段的个数。

2)objRS(k):objRS(k)等同于objRS(k).Fields.Item(k).value,表示当前记录行中索引k对应的那个字段所保存的数据值,其中索引k即可以是字段的序号(规定从0开始),也可以直接使用字段名称作为索引。

3)objRS(k).Name:objRS(k).Name等同于objRS(k).Fields.Item(k).Name,表示记录集中索引k对应的那个字段的名称。

2.2 使用范例:

Dim MyDBConn,MyRS

'下面的过程调用,将根据指定的参数生成的数据库连接对象,连接对象将保存在变量MyDBConn中

MdbConn MyDBConn,"/db/example.mdb","abcd"

'下面的记录集对象MyRS中,将通过SQL查询获得数据库中的table表的全部数据

Set MyRS=MyDBConn.Execute("SELECT*from table")

'下面的过程调用将MyRS对象中保存的数据表显示为一个简单的网页数据表格

ShowTable MyRS

3 将记录集数据显示为多行多列的标签阵列

除了将记录集显示为纵横表格的形式,还有另外一种记录集显示方式,称为“标签”。

例如,通常将通讯录信息显示为“标签”的形态如图1所示:

….

显然,记录集中每条记录的数据依照一定格式汇集在一个标签中,记录集中有多少条记录,就将显示多少个标签。

不过,如果一个标签的面积不大(比如图2的电话联系标签),就常常希望可以将多个小标签并列显示,以充分利用网页的显示宽度。这样,就要求将记录集数据显示为多行多列的标签阵列的形态。

要实现这种多行多列的标签阵列,使用表格并不方便,正确的方法是使用CSS样式控制结合DIV标签,具体代码如下:

3.1 原理讲解

这一个数据显示技术范例的技术重点并不在ASP代码上,而是在DIV标签结合CSS技术的应用上。最关键的技术部分在于网页中的CSS定义部分。

这段代码定义了一个样式类.divlist,指定样式规格为:

向左浮动对齐、高度60像素、宽度240像素、2像素黑色边框

而在ASP代码部分,仍然是通过简单的Do..Loop循环将记录集中的所有记录逐行输出为一个一个的DIV标签,DIV标签中包含的内容正是一个网页标签中要显示的内容。请注意,每个DIV标签中都包含了class="divlist"的参数,表明这个DIV标签将套用CSS样式类divlist,这样,每个标签都是高60、宽240,有黑色边框线的矩形框,这些矩形框从左向右自然地一个接一个并列排布,直到超出网页右边线,再接续到下一行排布,于是就非常自然地产生出了多行多列的标签阵列的效果。

4 使用模板技术灵活定制记录集数据显示格式

前面介绍的ShowTable过程,只能将记录集显示为简单的数据表格,而传统的基于Do…Loop循环的方法虽然可以构建灵活多变的数据显示格式,但程序代码冗长繁琐。

下面介绍的方法,构造了一个“重复处理机制”,可以将记录集中一行记录的数据代换到一个“模板”字串中,生成这一行数据的相应显示内容,并且在能够自动重复生成下一行记录的显示内容,直到完成指定行数的内容生成任务,或记录集游标到达记录集的EOF处。

以上Repeater过程用来自动生成数据表显示代码,其中strStyle参数是一行内容的显示代码模板。例如:模板"{$username}{$pwd}"可表示生成一行表格行的代码。模板中的{$字段名}用来指代生成代码中相应字段数据的填充位置。intCount参数表示要生成的显示代码的行数,显示数据从objRS参数指定的记录集的当前行开始。如果intCount为负数,则表示将记录集当前行开始的所有记录行都生成到显示代码中。与ShowTable过程相比,Repeater过程有非常强大的显示格式的控制能力,下面通过三个范例来说明Repeater过程的使用方法:

例1:用记录集数据填充表单中的下拉列表

假设记录集内容是某单位各个部门的名称与代号的对照表,另外假定,数据库连接对象已经创建并保存在对象变量Conn中。

例2:用记录集数据生成一个网页图库

假设记录集内容是某图库的索引信息,包含图像地址和图像说明两部分信息,另外假定,数据库连接对象已经创建并保存在对象变量Conn中。

例3:快速构建传统的表格式通讯录

假设记录集是一个通讯录,含有姓名、电话、地址三个字段,通讯录表格只显示最开始的15个联系人的通讯资料。

….'省略创建Conn连接对象的代码

5 小结

以上讲述的ASP中的记录集数据显示技术,其中介绍的几个函数和过程也可以汇集成一个具有实用价值的函数库。这个小小的函数库将ADO记录集对象在ASP中的经典用法,以封装函数的方式表述了其中的技术思想,函数库中的每个函数和过程都进行了详细的原理解释、功能说明和格式用法说明,可以对ASP数据库编程起到良好地指导作用。

ADO组件是ASP数据库编程的重要工具,这里限于篇幅仅介绍了其中的记录集对象,但上面提出的构建实用函数库的设想是很有意义和价值的,如果能在这种思路指导下编写了一个小型的函数库,功能覆盖连接对象、记录集对象、命令对象和参数对象,并包含一些相关的实用函数和过程,那么这个函数库将会在教学和技术开发中发挥出很好的作用。

摘要:ASP可以使用ADO组件来访问数据库,通过SQL语言实现对数据库的查询、更新、添加、删除等操作,非常方便地访问和操纵数据库,而ADO组件中,记录集对象Recordset是功能最强大也最全面的对象,是在ASP数据库应用中使用最多,也是最重要的一个ADO对象。使用SQL语言查询数据库中的数据,查询结果以记录集的形式保存在Recordset对象中,如何方便快捷地将Recordset对象中的记录集数据显示在网页中,是ASP数据库应用技术中的重要课题。

关键词:数据库,ADO,记录集

参考文献

[1]许新华,谌颃,胡昌杰.ASP动态网页设计实用案例教程[M].北京:中国水利水电出版社,2007.

数据库记录 篇9

一、功能模块介绍

登录模块:包含用户登录页面login.asp。

网站访问记录存储模块:log.asp页面, 实现对网站访问日志记录的存储操作。

管理模块:show.asp页面,用于查看网站的访问日志记录。

二、功能设计与实现

(1) 、登录页面设计 (图1) 。

使用表单制作用户登录页面,当点击“登陆”按钮后把用户输入的用户名和密码信息提交到check.asp页面,进行用户合法性检测。登录页面部分源代码如下:

(2) 、网站访问记录存储模块

文本文件存储方式

通过对文本文件的写操作将用户的访问记录存储到文本文件中,该页主要源代码如下:

数据库存储方式

通过对数据库的写操作将用户的访问记录存储数据库中,该页面主要源代码如下:

(3) 、查看用户访问日志页面

在该页面可以查看网站的历史访问日志记录。见图2

文本文件存储方式下的数据显示

通过对文本文件的读操作可以把存储的网站访问日志信息读取并显示在相应的区域内,该页面主要源代码如下:

数据库存储方式下的数据显示

通过对数据库中存储用户网站访问日志的数据表的访问,将网站访问日志信息读取并显示在相应的区域内,该页面主要源代码如下:

三、两种实现方式的比较

(1)、从两种方式的实现方式上看。文本方式是通过对文本文件的读写操作来实现数据的存储与使用,读写的操作就是对文本内字符的操作,一切的算法控制关键也就转换为文本字符的控制,算法的灵活性很大。但数据库方式则是通过对数据库中相应数据表的读写操作来实现数据的存储与使用,现在不管是何种编程环境与语言都提供了比较规范的数据库编程接口,我们可以通过标准的SQL语言方便的实现数据的相关操作,算法上比较简单。

(2)、从存储数据文件本身性质来看。文本方式的操作数据是存储在一个文本文档当中,占用存储空间小,通过操作系统本身就可以打开文本文件,数据的查看与访问非常简单,但文本是一个孤立的文档,文档与文档之间的数据不可能建立起任何的联系。而数据库方式的操作数据是存储在数据表中,数据表必须通过相应的数据库软件才能够访问数据表,表与表之间可以建立相应的联系,使数据之间相互关联。

上一篇:国际多栖艺术大师下一篇:中国叠合含油气盆地