




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 RFID课程设计论文题目:基于RFID技术的课堂考勤系统设计学院:计算机与通信学院班级:物联网(1)班:嘉诚学号:11280110指导老师:薛建彬日期:2014.1.16目录摘要.3引言.3一. RFID系统.31.1 RFID技术的特点.31.2 RFID系统的组成和工作原理.31.3 RFID系统的应用现状.4二.系统案例描述.52.1 RFID学生考勤管理系统的应用优势.52.2高频RFID的应用特性与应用领域.5三.需求分析.63.1试验箱各模块的介绍.73.2系统整体结构的设计.7四.系统开发环境与运行环境.8 4.1开发环境.8 4.2运行环境.8 4.3相关技术.8五.课堂考勤
2、系统设计.9 5.1考勤系统总设计流程.9 5.2系统结构总图.9 5.3学生身份验证流程图.10六.阅读器.116.1 MC9S08AW60.116.2 RFID芯片.126.3 液晶显示与按键.136.4 外部通讯.136.5学生卡.14七.软件部分.157.1 RFID通讯协议.15八.总结.18参考文献.19摘 要:本文研究和设计了一种基于射频识别(RFID)技术的课堂考勤系统。此系统是利用RFID技术,实现对到课堂上课人员的简单快速地自动签到和离开课堂的记录,保存相关的数据信息供教职人员检阅,从而免去平时点名占用的课堂时间。下面简单介绍了课堂考勤系统的基本功能和组成,然后对系统各重要
3、组成部分进行了详细的分析。关键词:射频识别,自动点到,电子标签,课堂考勤引 言如今的大学校园里,学生翘课、迟到、早退的现象已经屡见不鲜。考虑到每天每位老师都要进行对学生的考勤管理,尤其在大学课堂上,上课人数众多,点名考勤要占用很多时间,学生的人数众多单靠少数人员的监督很难做到对学生的实时管理,管理难度比较大。为了解决学校课堂考勤管理难的问题而设计了一种智能的课堂考勤系统。本系统采用了RFID技术,旨在于对学生进行考勤,不仅提高了管理效率,更增加了学生的出勤率。 一.RFID系统1.1 RFID技术的特点RFID是Radio Frequency Identification的缩写,即射频识别,俗
4、称电子标签。它是用无线射频方式进行非接触双向通信,以达到识别目的并交换数据的一项新技术。它主要与当今数字化商务相适应,可以实现自动识别和远程监控与管理。其通信距离围可从几厘米到几十米,而且依据读写方式不同,可以输入几千字节的数字信息,具有极高的性。FRID技术的环境适应性强,可全天候、无接触地完成自动识别、跟踪和管理功能,且穿透能力和抗干扰能力强。RFID技术可识别高速运动物体,并可同时识别多个标签,操作快捷方便。因此, RFID 技术已在世界各地得到广泛应用,如工业自动化、商业自动化、交通运输控制管理等众多领域。1.2RFID系统的组成和工作原理 一个典型的RFID系统由阅读器、应答器(RF
5、ID卡)和中央管理控制软件组成。阅读器是产生射频信号与高频能量来激活RFID卡片工作,并与卡片进行数据交换的设备。应答器(RFID卡)的核心是含有一定存储容量的芯片,用于存储被识别物体的信息,它在接收并调制反射高频信号时达到与阅读器相互识别和通信的目的。中央管理控制软件主要是收集阅读器的信息,根据具体应用进行相关的数据处理。RFID系统分为有源和无源两类。有源RFID卡由电池提供能量,而无源RFID卡不用电池,由接收到的阅读器发射的高频信号转换成直流来提供工作能量。无源RFID卡的工作原理如下:当处于“工作”状态,即进入阅读器的辐射能量场,卡片上的天线接收到射频信号,然后由能量处理电路中相关的
6、整流器件将射频检波、整流转化为直流电压,为RFID卡上的芯片提供工作能量。芯片部的调制器以一定的调制方式(幅移键控),将芯片部的信息进行调制,然后通过天线发射出去。阅读器的接收天线接收并识别出调制信息后,按约定的解调方式进行解调,然后把解调的信息通过相关的接口(RS2232)传送到主机的中央管理软件进行数据处理。1.3 RFID系统的应用现状RFID作为一种自动无线识别和数据获取技术,已经使用了多年,应用领域越来越多。按照工作频率的不同,RFID标签可以分为低频(LF)、高频(HF)、超高频(UHF)和微波等不同种类。工作频率围为30kHz300kHz低频段射频标签,其阅读距离一般小于1米。其
7、典型应用有:动物识别、工具识别、电子闭锁防盗等。中高频段射频标签的工作频率一般为3MHz30MHz。典型工作频率为13.56MHz。其阅读距离一般情况下也小于1米。由于可方便地做成卡状,中频标签广泛应用于电子车票、电子、电子闭锁防盗、小区物业管理、大禁系统等。微波射频标签,其典型工作频率有433.92MHz、862(902)MHz928MHz、2.45GHz、5.8GHz。相应的射频识别系统阅读距离一般为4m6m,最大可达10m以上。超高频标签主要用于铁路车辆自动识别、集装箱识别,还可用于公路车辆识别与自动收费系统中。在实际应用中,比较常用的是13.56MHz、860MHz960MHz、2.4
8、5GHz等频段。我国在125KHz、13.56MHz等LF和HF频段RFID标签芯片设计方面的技术比较成熟,HF频段方面的设计技术接近国际先进水平,已经自主开发出符合ISO14443 Type A、Type B和ISO15693标准的RFID芯片,并成功地应用于交通一卡通和第二代等项目中。二.系统案例描述2.1 RFID学生考勤管理系统的应用优势电子标签(RFID)具有一个双重角色的作用:一方面是身份识别,用来对物品进行跟踪和清点;另一方面用于物品的安全保护。也就是说,RFID同时具备了身份识别和防盗的功能。RFID的这种特点大提高了资料处理能力,通过一个简单的单一操作就可快速、准确地完成资料
9、流通过程。(1)简化考勤流程,提高考勤效率 现有的考勤系统仍需要学生把自己随身携带的卡靠近阅读器来记录学生的考勤信息,这样的操作流程较为繁琐,考勤效率不高。同时,卡的芯片易收到破坏,使考勤的效率可以说是大大降低。 基于RFID的智能学生考勤系统可以避免这种问题的发生,学生只要经过一个特定的地方就可以收到考勤信息,无需接近阅读器,大大提高了考勤的速度和效率,使考勤工作变得轻松而简单。(2)提高考勤的正确率传统的考勤往往显得拥挤或者忙碌,可能一下赢来大批学生进行考勤,有时候几卡放到一起进行读操作,可能出现漏读现象,这就造成有些人的考勤信息不被记录,从而使考勤工作变得不准确。而RFID的出
10、现正好解决了这一问题,她基于无线射频识别技术,可以远距离的进行读卡操作,再也不会出现误读或漏读的操作,使考勤的正确率提高,轻松实现学生的考勤工作。2.2 高频RFID的应用特性与应用领域(1)高频RFID的应用特性工作频率为13.56MHz,该频率的波长大概为22米。除了金属材料外,该频率的波长可以穿过大多数的材料,但是往往会降低读取距离。识别卡(感应器)需要离开金属一段距离。该频段在全球都得到认可并没有特殊的限制。该系统具有防冲撞特性,可以同时读取多个识别卡。可以把某些数据信息写入识别卡中。数据传输速率比低频要快且价格不是很贵。(2)高频RFID的应用领域瓦斯钢瓶的管理应用预收费系统酒店门锁
11、的管理和应用大型会议人员通道系统固定资产的管理系统医药物流系统的管理和应用智能货架的管理三.需求分析(1)信息源分析根据学生考勤管理系统的需求,此系统信息来源主要有学生信息、RFID射频卡信息和考勤记录信息,其中RFID射频卡信息包括射频卡分配信息、射频卡挂失信息、射频卡激活信息。考勤记录信息又包括射频卡考勤信息和人工考勤信息。(2)系统用户分析本系统的用户可分为三个方面:管理员、领导和学生。其中管理员可使用的操作是信息管理、考勤时间设置、查询管理和数据库管理中的操作,当然管理员最主要的操作是用户管理,即添加系统用户。领导完成学生出勤的考察,他们有权利对学生进行人工考勤登记和射频卡考勤登记,当
12、然也有查询信息的权利、修改用户密码等。学生使用此系统仅仅只有查询和修改密码的功能,学生不能对考勤管理和信息管理进行操作。每一种权限的系统用户其操作都受一定的限制,这样可以保护信息的安全性。(3)信息完整性与安全性分析 对于此系统信息的安全性考虑,为了防止系统权利的外泄和信息被非法篡改,每一种用户都以自己的用户名和密码加正确的权限才能登录系统使用。为防止系统用户在查询是更改系统信息,为此我在查询模块以视图的方式为用户提供可查询信息。 领导与管理员之间信息是双向互动的.管理员不仅是信息系统的用户,同时也是领导的信息维护的人员,也是部分系统的维护者,但是管理员没有考勤管理的使用权限。领导有考勤管理的
13、使用权限,但是他不能将自己等同的权利传播,他仅仅只可以添加学生用户,对部分系统进行维护。对系统的安全主要采取以下两方面的措施:1.对各系统用户规定相应的权限,仅能操作其权限的的信息;2.在管理员层设立独立转存机制,设立冗余数据库,以备核对.该冗余数据库可同时作为系统恢复的基础数据库使用。关于信息的完整性,首先要满足关系的实体完整性和参照完整性要求,同时根据实际需要定义一些特殊的约束条件,即用户定义的完整性。这些要求共同保证了设备信息的完整性。3.1试验箱各模块的介绍3.2系统整体结构的设计四.系统开发环境与运行环境4.1开发环境Intel(R) Pentium(R) Dual CPU,0.99
14、GB存,120G硬盘Microsoft® Windows XP ProfessionalMicrosoft® Visual Studio 2008(C #)Microsoft® Developer Network for Visual Studio.NET 2008Microsoft SQL Server 20054.2运行环境Intel® Pentium® 2与以上处理器,32M以上存,4G以上硬盘Microsoft® Windows 9X/NT操作系统1280*800的屏幕分辨率确保机器上安装有Microsoft .NET Fra
15、mework SDK v2.0或者以上版本4.3相关技术#SQL Server 2005数据库SQL Server 是一个大型的关系型数据库管理系统,他最初是由Microsoft Sybase和Ashton-Tate三家公司共同开发的,SQL Server 2005共有4个版本,分别是个人版,标准版,企业版和开发版,支持关系数据库的结构化查询语言SQL,它提供了丰富的图形化管理工具,简化了系统管理与操作,具有动态自动管理和优化功能。它支持大型Web站点和企业数据吃力系统的数据存储要求,具有Web出版工具,支持XML、 ,并具有数据挖掘和分析服务的应用功能,可伸缩性和可用性强。它支持企业级数据库
16、,容许大量用户同时访问,容许用户同时引用多处数据源,支持分布式查询,支持数据仓库。它具有丰富的编程接口,便于开发,支持ODBC、ADO数据库对象、OLE数据源,支持N层客户机/服务器系统,在客户机/服务器结构中SQL Server 2005扮演着后端数据库的角色。 SQL Server 2005数据库特点(1)Internet 集成(2)可伸缩性和可用性(3)企业级数据库功能(4)易于安装、部署和使用五.课堂考勤系统设计5.1考勤系统总设计流程本系统主要是能够做到让佩戴含有RFID芯片学生卡的学生在通过教室大门时无需接触打卡机即可自动感应考勤,并能在有多人同时通过教学楼大门时做到实现考勤而不需
17、排队,同时控制阅读器把接收到的这些信息上传到电脑终端进行处理,会准确记录学生的来往时间记录等信息。系统总框图如图所示。 课堂考勤系统框图5.2系统结构总图基于RFID学生考勤系统登录界面系统主界面信息管理模块考勤管理模块用户管理模块射频卡管理模块查询管理模块数据库管理模块退出系统管理模块5.3学生身份验证流程图否否是开始登录界面系统主界面退出学生信息是否正确是否继续登录六.阅读器阅读器的主要功能是接收学生卡信息并上传给服务器,使服务器收到信息以便在设备终端系统进行统计。阅读器的框架图如图所示:3.1阅读器阅读器的主要功能是接收学生卡信息并上传给服务器,使服务器收到信息以便在设备终端系统进行统计
18、阅读器的框架图如下图所示。阅读器框图6.1 MC9S08AW60阅读器的硬件系统以MCU为核心,采用的MC9S08AW60芯片,该芯片是低成本、高性能的8位微处理器单元(MCU)HCS08家族中的成员,使用增强型HCS08核。它具有64/48/44引脚的四方扁平封装( QFP )。MC9S08AW60 的应用特点非常丰富。它采用8 位HCS08 中央处理单元(CPU )。CPU主频40 MHz,部总线频率20MHZ,具有HC08 指令子集,增加了BGND 指令,接口采用单线后台调试模式,允许单一的断点设置在线调试,具有片实时功能,支持多达32 个中断/复位源 。该芯片还具有高达60 KB 的片
19、在线可编程FLASH 存储器,带有块保护和安全选项,并有高达2 KB 的片RAM 。时钟源选项包括晶体,谐振器,外部时钟,或部产生的时钟与精密NVM 切边。系统保护模式可以采用可选的计算机正常操作(COP)复位、低电压检测与复位或中断 、非法操作码检测与复位与非法地址检测与复位(一些设备不具有非法地址)等。外部设备有多达16 个通道的ADC模块,具有10 位AD 转换器与自动比较功能;两个串行通信接口模块与可选的13 位中断;串行外设接口模块;运作高达100 kbps 的最高总线负载的集成电路互连总线模块; 1 个2 通道和1 个 6 通道的16 位定时器/脉冲宽度调制器( TPM )模块;高
20、达8 引脚的键盘中断模块。 输入输出有高达54个通用I / O管脚,还有主复位引脚和上电复位与部上拉复位管脚等。采用Wait 另加两个STOPS的省电模式。 6.2 RFID芯片RFID芯片采用CY-14443A系列射频读写模块制作,该模块是采用基于ISO14443 标准的非接触卡读卡机专用芯片,采用0.6 微米CMOS EEPROM 工艺,支持ISO14443 typeA 协议,支持MIFARE 标准的加密算法。芯片部高度集成了模拟调制解调电路,只需最少量的外围电路就可以工作,支持UART接口(-C),I2C接口(-U),或者SPI接口(-P),数字电路具有TTL、CMOS 两种电压工作模式
21、。特别适用于ISO14443 标准下水电表、自动售货机、门禁、机等计费系统或身份识别系统的读卡器的应用。 CY-14443A系列支持mifare One S50,S70,Ultra Light & mifare Pro,FM11RF08等兼容卡片。可以设定自动寻卡,默认情况下为自动寻卡。CY-14443A系列全部有板载置天线,可以再接外接天线。其中置天线的优点是提高集成度,可读取达到6cm以的卡,基本不需再外接大天线就可以满足大部分的设计需要,并且不需要更换电路就可以再连接外部天线,提高了系统的可重用性,大大降低成本,另外,置天线的读头可以作为有源天线使用。该模块还增加了4kBits
22、EEPROM,EEPROM字节地址从0x00到0x1FF,可以读取PCD的PN,SN。其功能框图如图所示。CY-14443A系列射频读写模块功能框图单片机与该射频模块使用SC2接口进行通讯,通讯接口简便,如下图所示:CY-14443A系列射频读写模块串口连接模式6.3 液晶显示与按键液晶显示屏与按键都与单片机的I/O相连,作为数据读取之后的显示模块和按键操作模块。该部分的连接简单。6.4 外部通讯外部通讯采用MAX485接口芯片。MAX485接口芯片是Maxim公司的一种RS485芯片,采用单一电源+5 V工作,额定电流为300 uA,采用半双工通讯方式。它完成将TTL电平转换为RS485电平
23、的功能。其引脚结构图如图7所示。从图中可以看出,MAX485芯片的引脚非常简单,部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;反之为 0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹
24、配电阻,一般可选100的电阻。单片机与外部主机通过RS485接口芯片连接图如图所示。单片机与外部通讯连接图6.5学生卡学生卡采用无源RFID标签,由一个电子数据处理、存储设备(通常是单个微小芯片)和实现天线功能的大面积环绕线圈组成。学生卡主要是在进入阅读器的有效区域发送信息给阅读器,使得阅读器可以读取到通过人员的卡里的信息。每学生卡里都存储着每位学生的学号、专业、班级本学期课程等信息。其结构图如图所示。 学生卡示意图七.软件部分系统的中央管理控制软件是课堂考勤系统的中心,以控制阅读器和RFID卡的工作状态,以与进行学生出入教室数据统计处理等。主要特点是:易于操作控制;通过串口通信协议,实现对阅
25、读器的控制与数据传送;学生信息的录入简单方便,维护性和性好;快速统计处理数据;有完善的资料查询功能等。系统软件功能模块主要包括:用户登录模块、实时报到和退堂显示模块、阅读器控制模块、数据库管理模块、数据统计处理模块。如下图所示:软件系统显示模块图7.1 RFID通讯协议通讯波特率出厂默认为19200,1位起始位,8位数据位,1位停止位。UART工作在半双工方式,即模块接受指令后才会做出应答。其命令格式为: 前导头通讯长度命令字数据域校验码。其中,前导头为0xAA0xBB 两个字节,若数据域中也包含0xAA那么紧随其后为数据0,但是长度字不增加。通讯长度是指明去掉前导头之外的通讯帧所有字节数(含
26、通讯长度字节本身)。命令字是各种用户可用命令。校验码为去掉前导头和校验码字节之外,所有通讯帧所含字节的异或值。CPU发送命令帧之后,需要等待读取返回值,该返回值的格式如下: 前导头通讯长度上次所发送的命令字数据域校验码。 下面是基于mega128 16AU 的485 通信中断接收的程序,调试通过,晶振为外部16MHZ,MAX485 的DE 和RE 短接连PC0口,程序如下:#define SEND_485 PORTC|=0x01#define READ_485 PORTC&=0xfevoid Usart1_init(void) /16MHZ 频率,设置波特率9.6K,8 位数据位,无校
27、验,接收发送使能,1 位停止位。UBRR1H=0;UBRR1L=103;UCSR1B=(1<<RXCIE1)|(1<<RXEN1)|(1<<TXEN1); /发送接收使能,使用中断方式,UCSR1C=(1<<UCSZ10)|(1<<UCSZ11); /0x06 8 位数据,1 位停止位,无校验void Usart1_transmit(unsigned char c) /查询方式发送接收字符函数。SEND_485;DelayBus();DelayBus();DelayBus();while( !(UCSR1A&(1<<
28、;UDRE1);/等待发送缓冲区为空。UDR1=c;while(!(UCSR1A&(1<<TXC1);/ UDCR0=c;UCSR1A |= _BV(TXC1);/将发送结束标志位清零。/ SET_BIT(UCSR1A,);READ_485;direction+;SIGNAL(SIG_UART1_RECV)/serial port 1if(UCSR1A&(1<<RXC1)rec1buff=UDR1;rec1_flag=1;八.总结课堂考勤系统是应用RFID技术的特点实现学员课堂报到和离开记录的自动化和智能化管理,现在已在大学校园里得到应用。本文对整个系统
29、进行了概述,并对功能强大、结构复杂、技术要求高的阅读器的进行了较为详细的理论分析与设计。本系统还可在校园进行多处安装,老师和辅导员只要登录电脑终端系统就可以实现对学生在校园分布情况的实时监测,大大提高校方对学生的管理效率。此外,该系统也可以作为一种智能的教师会议报到系统,同时提高会议管理的工作效率。相信随着RFID技术的迅速发展,该套系统也会得到不断完善和广泛应用。 最后衷心的感薛建彬老师的认真指导,让我对RFID技术在实际生活中的应用更加熟悉和明了,同时也感同学们的帮助,让我对RFID技术理解的更加深刻与透彻。参考文献1 周晓光,王晓华. 射频识别(RFID)技术原理与应用实例M. :人民邮
30、电,2006.122 宇超,树群. 射频识别技术与其发展现状. 电子技术应用, 1999, 25 3 程晓丽,等. 基于RFID的会议报到系统的设计J. 计算机与自动化. 第7期第31卷4篙岩,毛志刚智能卡的研究与发展徽处理机,20002:155子侠RFID技术的应用与现代物流商业研究,2003(6)6游站清,剑无线射频识别技术(RFID)理论与应用:电子工业,致本文的完成特别要感薛老师,马老师,从论文的结构到写作的细节,无不渗透着老师们的心血。老们师严谨、细致的治学态度,坦诚、热情的处世风格,给我留下了深刻的印象,我为能成为他的学生而感到幸运。其次,我还要感实验室的其他老师,他们在学习环境上
31、的严格要求让我有了一次学习上升华的过程,了解到很多计算机和RFID方面最新的观点、原理和实践。另外,我还要感各位与我一起参加设计的同学,大家都认认真真的做自己的设计,互相帮助,遇到不懂的问题大家都积极讨论,每个人都提出自己最理想的方案。在本文的写作过程中,我借鉴了大量著作文献,并引用了部分作者的部分资料,在此向所有文献的作者致!附 录(1)/ AdoMdb.h: interface for the AccessDBMgr class./#if !defined(AFX_ADOMDB_H_F64E7E9D_4790_467F_8315_B030DD0E615B_INCLUDED_)#define
32、 AFX_ADOMDB_H_F64E7E9D_4790_467F_8315_B030DD0E615B_INCLUDED_#if _MSC_VER > 1000#pragmaonce#endif/ _MSC_VER > 1000/ADO#pragmawarning (disable: 4146)#import"c:Program FilesCommon Filessystemadomsadox.dll"#import"c:program filescommon filessystemadomsado15.dll" no_namespace re
33、name("EOF", "adoEOF")#pragmawarning (default: 4146)/数据提供者类型枚举enum enmProvideTypeACCESS_97 = 1,/ACCESS 97ACCESS_2000,/ACCESS 2000SQLSERVER,/SQL Server;/认证方式枚举enum enmAUTH_TYPEAUTH_SQLSERVER = 1,/SQL认证AUTH_WINDOWS,/WINDOWS认证;/字段类型enum enumFIELD_TYPE/整数FT_BIGINT,/从-263 (-08) 到263-1
34、(07) 的整型数据(所有数字)FT_INT,/从-231 (-2,147,483,648) 到231 - 1 (2,147,483,647) 的整型数据(所有数字)FT_SMALLINT,/从-215 (-32,768) 到215 - 1 (32,767) 的整数数据FT_TINYINT,/从0 到255 的整数数据/bitFT_BIT,/1 或0 的整数数据/decimal 和numericFT_DECIMAL,/从-1038 +1 到1038 的固定精度和小数位的数字数据FT_NUMERIC,/功能上等同于decimal/money 和smallmoneyFT_MONEY,/货币数据值介
35、于-263 (-922,337,203,685,477.5808) 与263 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十FT_SMALLMONEY,/货币数据值介于-214,748.3648 与+214,748.3647 之间,精确到货币单位的千分之十/近似数字FT_FLOAT,/从-1.79E + 308 到1.79E + 308 的浮点精度数字FT_REAL,/从-3.40E + 38 到3.40E + 38 的浮点精度数字/datetime 和smalldatetimeFT_DATATIME,/从1753 年1 月1 日到9999 年1
36、2 月31 日的日期和时间数据,精确到百分之三秒(或3.33 毫秒)FT_SMALLDATATIME,/从1900 年1 月1 日到2079 年6 月6 日的日期和时间数据,精确到分钟/字符串FT_CHAR,/固定长度的非Unicode 字符数据,最大长度为8,000 个字符FT_VARCHAR,/可变长度的非Unicode 数据,最长为8,000 个字符FT_TEXT,/可变长度的非Unicode 数据,最大长度为231 - 1 (2,147,483,647) 个字符/Unicode 字符串FT_NCHAR,/固定长度的Unicode 数据,最大长度为4,000 个字符FT_NVARCHAR
37、,/可变长度Unicode 数据,其最大长度为4,000 字符。FT_NTEXT,/可变长度Unicode 数据,其最大长度为230 - 1 (1,073,741,823) 个字符/sysname 是系统提供用户定义的数据类型,在功能上等同于nvarchar(128),用于引用数据库对象名/二进制字符串FT_BINARY,/固定长度的二进制数据,其最大长度为8,000 个字节FT_VARBINARY,/可变长度的二进制数据,其最大长度为8,000 个字节FT_IMAGE,/可变长度的二进制数据,其最大长度为231 - 1 (2,147,483,647) 个字节;/字段信息typedefstru
38、ct tagFIELD_INFOLPCTSTR pszName;/字段名int iFieldType;/字段类型int iFieldSize;/字段大小int iDefault;/BOOL bNull;/BOOL bKey;/ FIELD_INFO, *PFIELD_INFO;class AccessDBMgr public:static BOOL bAfxOleInit;/防止初始化次private:char_szProvider100;_ConnectionPtr_pConnection;_RecordsetPtr _pRecordset;HANDLE_hrecordsetunlock;p
39、ublic:AccessDBMgr();virtual AccessDBMgr();/初始化COM库BOOL Init(int nProviderType);/创建数据库BOOL CreateMdb(constchar *pszMdbName); /打开数据库BOOL OpenMdb(constchar *pszMdbName, constchar *pszPwd = NULL);/打开SQL Server 数据库BOOL OpenSQLServerDB(int nAuthType,/认证方式LPCTSTR pstrServer, /SQL服务器名LPCTSTR pstrDBName, /数据
40、库名LPCTSTR pstrUser, /用户LPCTSTR pstrPwd); /密码/创建新表int CreateTable(constchar *pszMdbName,constchar *pszTableName,PFIELD_INFO paFieldsInfo,int nCount);/打开记录集,返回查询记录数,返回-1执行失败int OpenRecordset(LPCTSTR sSQL);/执行SQL语句,返回影响的记录数,返回-1执行失败int ExecuteSQL(LPCTSTR sSQL);/是否到记录集首BOOL IsBOF();/是否到记录集末尾BOOL IsEOF()
41、;/获得字段值BOOL GetFieldValue(int nIndex, _variant_t& varValue);/nIndex 0-basedBOOL GetFieldValue(LPCTSTR lpszName, _variant_t& varValue);BOOL SetFieldValue(LPCTSTR lpszName, const _variant_t& varValue);/移动到第一条记录void MoveFirst();/移动到下一条记录void MoveNext();void Update();void UpdateBatch();void
42、AddNew();void Delete();/关闭记录集void CloseRecordset();/关闭数据库void CloseMdb();#endif/ !defined(AFX_ADOMDB_H_F64E7E9D_4790_467F_8315_B030DD0E615B_INCLUDED_)(2)#pragmaonce#include"afxcmn.h"/ CAttendance 对话框class CAttendance : public CPropertyPageDECLARE_DYNAMIC(CAttendance)public:CAttendance();vi
43、rtual CAttendance();/ 对话框数据enum IDD = IDD_DLG_ATTENDANCE ;protected:virtualvoid DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()DepartmentInfoArray_departmentinfoarray;EmployeeInfoArray_employinfoarray;EmployeeStatisticsInfoArray _employstatinfoarray; /单个员工的统计信息QueryResultArray_
44、queryresultarray;/需进行统计的员工列表QueryResultArray_latearray;/迟到员工QueryResultArray_leaveearlyarray;/早退员工QueryResultArray_absentarray;/缺勤员工QueryResultArray_workextraarray;/加班员工AttendancdInfoArraym_attendanceinfoarray;/数据库中查得的记录COleDateTimeSpan m_startworktime,m_endworktime;voidGetRequestList(CString date,C
45、String time,CString date2,CString time2);voidGetRequestListByName(CString date,CString time,CString date2,CString time2,CString name);voidGetRequestListByDepartment(CString date,CString time,CString date2,CString time2,CString department);voidGetRequestListByNameAndDepartment(CString date,CString ti
46、me,CString date2,CString time2,CString name,CString department);voidShowInListCtrl();voidShowInListCtrl2();voidGetQueryResult();voidAddrecord(constint);voidSetQueryResultDate(COleDateTime);voidShowQueryResult2();/在列表框中显示结果,与其他一些统计: 加班缺勤voidReSetQueryResultTime();public:CListCtrl _lists;virtual BOOL
47、OnInitDialog();afx_msg void OnBnClickedBtnQuery();afx_msg void OnBnClickedCheckDepartment();afx_msg void OnBnClickedCheckName();afx_msg void OnBnClickedBtnExportexcel();(3)#pragmaonceclass CAttendanceInfoprivate:CString _cardno,_name,_department,_date,_time,_datetime;COleDateTime_datetime2;public:CA
48、ttendanceInfo(void);CAttendanceInfo(void);voidSetCardNo(LPCTSTR);CStringGetCardNo() const;voidSetName(LPCTSTR);CStringGetName() const;voidSetDepartment(LPCTSTR);CStringGetDepartment() const;voidSetDate(LPCTSTR);CStringGetDate() const;voidSetTime(LPCTSTR);CStringGetTime() const;voidSetDateTime(LPCTSTR);CStringGetDateTime() const;voidSetDateTime2(COleDateTime);COleDateTimeGetDateTime2() const;typedef CArray<CA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论