[计算机软件及应用]实验室签到管理系统的设计与实现.doc_第1页
[计算机软件及应用]实验室签到管理系统的设计与实现.doc_第2页
[计算机软件及应用]实验室签到管理系统的设计与实现.doc_第3页
[计算机软件及应用]实验室签到管理系统的设计与实现.doc_第4页
[计算机软件及应用]实验室签到管理系统的设计与实现.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要近年来,随着科技的发展,计算机系统在社会各个方面的应用越来越广泛,已经完全渗透进了人们的生活当中,对于各大院校来说更是如此。在各个院校中,学生的签到考勤工作不仅任务量大,而且时效性强。以前,院校多采用签到和填表的形式进行管理,效率很低,占用的人力资源过多,并且错误率高;而随着数据库技术、编程技术等软件技术的发展,以及IC卡系统等硬件技术的日趋完善,使用计算机及IC卡系统管理院校的考勤已经成为大势所趋。这为院校节省了大量的人力物力,同时大大减轻了相关工作人员的工作量。本文阐述了基于Mifare 1卡的校园签到管理系统开发的原理及过程。包括相关数据库理论,Delphi语言的程序设计特点、技巧,Mifare 1卡及读卡器的介绍等内容。关键词:签到管理系统,数据库,Delphi编程41AbstractFor years,along with social development and process of science and technology,mens work and life cant leave the computer.Many corporations are the same as it.In the corporations, employeesjob of check on work attendance not only workload is very large,but also time is very strong. In the past many corporations carry through managing by signing in and i reporting forms, efficiency and diaphaneity are not good,and easy make a mistake,too.Along with development of database technology and progress of corporation informations building,using computer to manage check on work attendance of corporations which it is necessary.It saves a mass of manpower and material resources and greatly lightens workload of employees.The text that it used design and exploiture as case which expounded the whole process of design and exploiture of the check on work attendance system.It included the whole design of system , logic frame , data flow , partition of every function module ,design of system function modules and concrete realization and so on .Key words: check on work attendance,database,Delphi programme目 录摘 要IAbstractI第一章 课题概述11.1 课题背景及意义11.2 本文所做工作1第二章 课题基础知识32.1 数据库理论基础32.1.1 数据库模型32.1.2 数据库体系结构52.1.3 数据的独立性52.1.4 范式62.1.5 SQL简介72.1.6 SQL查询82.1.7 SQL数据更新92.2 DELPHI介绍102.2.1 DELPHI 7.0简介102.2.2 Delphi 7.0 控件122.3SQL语言在Delphi中的应用142.4 硬件系统介绍162.4.1 S50非接触式IC卡性能简介(M1)162.4.2 感应式IC卡读卡器简介212.4.3 M1射频卡与读卡器的通讯22第三章 实验室签到管理系统的设计与实现253.1 系统分析253.1.1需求分析253.1.2功能分析253.1.3 可行性分析253.2设计总体思路263.3数据库设计273.3.1 E-R模型273.3.2 数据库表的建立283.3.3 技术难点分析293.4前端页面的设计与实现293.4.1窗体303.4.2难题的解决333.4.3操作方法343.4.4实际测试35结 论36参 考 文 献37致 谢38 第一章 课题概述1.1 课题背景及意义今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。计算机已经成为我们学习和工作的得力助手,我们的生活也越来越离不开它。随着现代科技的进步,用计算机来进行考勤管理也成为各大院校运作必不可少的一部分。过去我们的签到工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度,给学校的日常管理带来了很多不便。现在利用计算机来管理我们的签到系统,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了。计算机技术特别是数据库技术的发展为院校建立管理信息系统,甚至对改变管理思想起着不可估量的作用。实践证明信息技术已在院校的管理层面扮演越重要的角色。硬件技术的发展,可以让我们通过MF1卡和读卡器之间的通讯,就可以实现学生的相关信息向计算机系统的录入。这极大提高了签到管理工作的效率和准确率。1.2 本文所做工作本文首先简述了课题产生的背景和意义。第二章介绍了课题所需的基本知识。首先讲述了数据库的发展,关系数据库,数据库体系结构,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。之后,又对DELPHI编程语言做了简单的介绍,并说明其特点、优点,以及SQL语言在DELPHI中的应用等相关知识。接着又介绍了校园卡系统的硬件基础:M1卡以及读卡器。主要讲述了其主要指标、存储结构、工作原理以及优点,并且简述了M1卡与读卡器的通讯过程。第三章是按照软件工程的要求,从需求分析开始,经过概要设计最后到详细设计,完成对整个系统的设计。中间讲述了本人在编程过程中遇到的难题,以及最后解决问题的方法。 最后,对本文的设计做出结论,介绍了自己的编程体会和设计体会。并指出存在的不足和改进的方向。第二章 课题基础知识2.1 数据库理论基础2.1.1 数据库模型从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至60年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”模型。这种模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一其中著名的模型是“实体联系模型” 。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。 这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型” 。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录类型间联系是1N联系。层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有两个缺点:一是只能表示1N联系,虽然有多种辅助手段实现了MN联系,但都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据的查询和更新操作也很复杂,因此,编写应用程序也很复杂。(2)网状模型。用有向图结构表示实体类型及实体间联系的数据模型。1969年DBTG报告提出的数据模型是网状模型的主要代表。有向图中的结点是记录类型,有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是1N联系。网状模型的特点:记录之间联系通过指针实现,MN联系也容易实现(每个MN联系可拆成两个1N联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。由于层次系统和网状系统的应用程序编制比较复杂,因此,从20世纪80年代中期起,其市场已被关系系统所取代。但是使用这两种模型建立起的许多数据库仍然在正常运转,只是在外层加了个关系数据库语言的接口。网状模型有许多成功的产品,20世纪70年代的产品大部分网状系统,例如,Honeywell公司的IDS/、HP公司的IMAGE/3000、Burroughs公司的DMS、Umivac公司的DMS1100、Cullinet公司的IDMS、Cimcom公司的TOTAL等。(3)关系模型。关系模型的主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。20世纪70年代对关系数据库的研究主要集中在理论和实验系统的开发方面。80年代初才形成产品,但很快得到广泛的应用和普及,并最终取代了层次、网状数据库产品。现在市场上典型的关系DBMS产品有DB2、ORACLE、SYBASE、INFORMIX和微机型产品Foxpro、Access等。(4)面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中仍然存在着许多含有复杂数据结构的应用领域,例如,CAD数据、图形数据等,而关系模型在这方面的处理能力就显得力不从心。因此,人们需要更高级的数据库技术来表达这类信息。面向对象的概念最早出现在程序设计语言中,随后迅速渗透到计算机领域的每一个分支。面向对象数据库是面向对象概念与数据库技术相结合的产物。面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。2.1.2 数据库体系结构数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”,最早是在1971年通过的DBTG报告中提出,后来收入在1975年的美国ANSI/SPARC报告中。虽然现在DBMS的产品多种多样,在不同的操作系统支持下工作,但是大多数系统在总的体系结构上都具有三级模式的结构特征。从某个角度看到的数据特性称为“数据视图”(data view)。外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级结构之间提供两个层次的映象(mappings):外模式/模式映象,模式/内模式映象。此处模式是概念模式的简称。2.1.3 数据的独立性由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。(1)物理数据独立性如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性。(2)逻辑数据独立性如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。2.1.4 范式建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。 表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。 在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。 在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,依此类推。第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st NF。 第二范式(second normal form,简称 2nd NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functional depEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式(third normal form,简称 3rd NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2nd NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。2.1.5 SQL简介用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言SQL。SQL 的全称是Structured Query Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。SQL语言可以完成许多功能,例如: 查询数据 在数据库表格中插入、修改和删除记录 建立、修改和删除数据对象 控制对数据和数据对象的存取 确保数据库的一致性和完整性等2.1.6 SQL查询数据查询是关系运算理论在SQL语言中的主要体现,SELECT 语句是SQL查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。SELECT语句的完整句法如下:SELECT 目标表的列名或列表达式序列FROM 基本表和(或)视图序列WHERE 行条件表达式GROUP BY 列名序列HAVING 组条件表达式ORDER BY列名 ASCDEAC我在SELECT语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是模糊查询,所以大量的使用了模式匹配符LIKE(判断值是否与指定的字符通配格式相符)。在包含LIKE的查询语句中可以使用两个通配符:%(百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符NOT、AND、OR(用于多条件的逻辑连接),谓词ALL以及保留字DISTINCT等等。做为SELECT语句还有很多的使用方法,这里就不再叙述。2.1.7 SQL数据更新使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。数据插入往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:INSERT INTO 基本表名(列表名)VALUES(元组值)数据删除往数据库的基本表中删除数据使用的是DELETE语句,其句法如下:DELETE FROM 基本表名 WHERE 条件表达式在些作一点说明,删除语句实际上是“SELECT * FROM 基本表名 WHERE 条件表达式”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:UPDATE基本表名SET列名=值表达式,列名=值表达式WHERE条件表达式在Delphi中使用SQL语句是很方便的,一般来说,都是通过TQuery组件来使用SQL语言的。有一点要进行说明,虽然通过TQuery组件来使用SQL语言很方便,但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中我采用的是ADO组件来对数据库进行操作。最简单的方法比如在TADOQuery组件的SQL属性中就可以键入SQL语句,至于详细的使用方法在后面进行介绍。2.2 DELPHI介绍2.2.1 DELPHI 7.0简介DELPHI是由美国INPRISE公司开发,运行于WINDWOS平台上的交互式、可视化集成开发环境。和其他的可视化编程环境(如,VISUAL C,VISUAL BASIC)一样,DELPHI 集程序的代码编辑、编译、连接、调试为一体,给编程人员提供了一个完整方便的开发界面和许多有效的辅助开发工具。DELPHI还为编程人员自动生成框架代码。从而省去了重复编写框架代码的麻烦,提高了效率。DELPHI有众多的优越特性,它提供了新颖的可视化设计工具,来用面向对象的方法将windows编程的复杂性封装起来。实现了将可视化设计与object Pascal语言的有机集成,配有数据库引擎,可通过SQL链接,ODBC访问多种数据库,并且提供了强大的开发基于客户/服务器模式的数据库应用的能力。今天,DELPHI发展了7.0版。2002年,DELPHI7.0的发布在业界立即掀起旋风,其功能与执行效率令许多程序设计人员瞠目。DELPHI7.0在IDE、Web、COM应用,数据库系统,组件库、运行期库、编译器及文档等多方面提供了一些新增功能或做了很大改进。它的一些特征包括:1、Delphi7.0提供了对XML的支持,从而简化了数据分布,优化了数据交换。用户可以方便地创建高效率的Internet程序,把数据迅速发布到Internet上。2、Delphi7.0支持HTML4,使用户能在Web应用中创建各种类型的动态客户端程序。3、Delphi7.0增添了对ADO(ActiveX Data Object )的支持,用户可以迅速实现对终端用户用来做商业决策的数据的一致性访问。通过ADO,Delphi7.0能让用户快速访问关系型或非关系型数据库以及E-mail和文件系统。4、利用Internet Express,系统集成商和独立软件商可以快速开发高性能的应用系统。把Delphi7.0和InterBase Express结合起来使用,可以在只需少量维护工作且只占用很少系统资源的数据库上进行高效率、高性能的开发。5、Delphi7.0集成了一个与微软的SourceSafe功能相似的源代码管理TeamSource。6、利用Delphi7.0中的MIDAS 3(Multi-tier Distributed Application Services Suite ),用户可以创建高效灵活的Delphi程序,以满足日益增长的事务量和用户数的需要。7、Delphi7.0的IDE的新特点主要包括:桌布的用户化设置增强了用户对开发环境的控制;编辑键映射功能让编辑器按照用户的习惯来工作。8、Delphi7.0企业版的VCL中一共包含有200多个控件,利用这些控件,用户可以奇迹般地加快应用程序从开始开发到推向市场的速度。Delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在Delphi中,每一个类的祖先都是Tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。这样,按照面向对象编程的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型。实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。凡是做过程序开发的人都知道从来没有单纯的数据应用程序,也就是说,数据库应用程序必须和用户界面(可以是图形界面,也可以是命令接口)元素相结合,只讲界面或只讲数据库本身都构不成数据库应用程序,因而用Delphi 7.0开发数据库应用程序就隐含着界面开发。组件在Delphi程序的开发中是最显眼的角色。大家知道,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组件面板上,例如Tform和Tapplication(典型的非可视组件)。组件是Tcomponents派生出来的子类,可以流的形式存放在DFM文件中,具有事件和Publish属性。窗口组件类是窗口化的可视化组件类,在Delphi的类库中占有最大的份额。在实际编程中,窗口组件类的对象都有句柄,可以接受输入焦点和包含其它组件。图形组件与窗口组件并列,是另一大类组件。图形组件不是基于窗口的,因而不能有窗口句柄,不能接受输入焦点和包含其它组件。图形组件的基类是TgraphicControl,在实际编程中,它们必须寄生于它们的宿主窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。图形控件最典型的例子是Tlabel和TspeedButton。由此可以看出图形组件的功能很弱,有读者会问图形组件的用处何在呢?其实使用图形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统资源就要少。在一个应用程序中,如果能在不影响其功能的前提下合理大量地使用图形组件,将会大减少程序对系统资源的消耗。非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。2.2.2 Delphi 7.0 控件用Delphi7开发数据库应用,重点是和各种数据库组件打交道,当然也要使用其它的一些组件,现在就我在系统设计中所使用的重要组件给与简单介绍。ADO数据访问组件ADO数据对象(Active Data Objects)实际是一种提供访问各种数据类型的链接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口中,可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。ADO使您的客户端应用程序能够通过OLE DB提供访问和操作在数据库服务器中的数据。ADO支持用于建立C/S和Web的应用程序的主要功能。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO同时具有远程数据服务(RDS)功能,通过RDS可以在一次往返过程中实现将数据从服务器移动到客户端应用程序和Web页、在客户端对数据进行处然后将更新结果返回服务器的操作。Delphi 7.0继续对Microsoft的ADO访问能力的支持。这种能力是通过一组新组件实现的,这些组件是在企业版的ADO组件页中,在组件面版的ADO页上可以找到这些组件。利用在前面章节提到的TdataSet抽象类,ADO组件可以不通过BDE而直接实现ADO连接。这意味着只需要很少的代码就可以实现该连接并且性能得到提高。利用ADO数据访问组件,可以只使用ADO结构与数据库取得联系并对其中的数据进行操作,而在这些过程中完全不需要使用BDE。大多数的ADO连接和数据集组件都是与基于BDE的连接和数据集组件相类似的。TADOConnection组件与基于BDE的应用程序中的Tdatabase组件类似。TADOTable与Ttable,TADOQuery与Tquery,以及TADOStoreProc和TstoredProc之间都具有这种类似的对应关系。使用这些ADO组件的方式与我们常使用的数据访问组件(基于BDE)都有许多相同之处。TTADODataSet没有直接的BDE对应组件,但它提供了许多与Ttable和Tquery相同的功能。同样,TADOCommand也没有相对应的BDE组件,它是在Delphi/ADO环境中完成特定功能的组件。Delphi 7.0通过ADO数据集访问组件,可以不借助BDE数据引擎而是通过微软的OLEDB来访问更为广泛的数据库中的数据。ADO数据集访问组件与常用的数据访问组件是并列的关系。数据控制类DataControl数据控制类负责数据库数据的显示,并把用户对数据的修改传回。这里的绝大多数组件,如DBText, DBEdit, DBMemo, DBImage, DBListBox, DBComboBox, DBCheckBox, DBRadioGroup, DBLookupListBox, DBLookupCombox, DBCtrGrid的功能和对应的非数据感知组件相同,如TEdit框,TRadioGroups单选按钮组等,只不过在显示数据库数据时要用而已。在系统中主要使用数据网格控件DBGrid和数据库导航器控件DBNavigator。数据访问类DataAccess数据库应用系统中数据访问是一个首要问题,包括单用户和 C/S系统,都必须联系一些数据库和数据表文件。Delphi 6 提供了专门用于数据访问的基类控件。主要包括数据源控件DataSource、客户数据集控件ClientDataSet、数据集提供器控件DataSetProvider等等。Tdatabase:当一个基于BDE的数据库应用程序需要一个永久数据库连接时,需要定制向一个数据库服务器的连接时,需要事务控制和特殊的数据库别名时就得用到Tdatabase对象。特别是当连接到一个远程的SQL数据库服务器时,如果要利用BDE进行数据库事务处理,那么,TDatabase对象的威力就体现出来了。在一个应用程序中为每一个数据库连接显示的声明Tdatabase对象要根据需要而定,不是必需的。对一个数据库连接,如果没有显示的声明并实例化TDatabase对象,系统就会产生一个带有默认属性的TDatabase对象。TdataSource对象用于在DataSet对象(包括Tquery,TstoredProc,Ttable等)和数据感知组件之间提供一个连接的纽带,以便在窗体上显示数据库中的数据,在数据库中导航定位与编辑数据集中的数据。如果一个DataSet对象中的数据想在数据感知组件中显示和修改,它就必须和TdataSource对象相联系。同样,一个数据感知组件如果想和数据源相联系以便显示和操纵数据,就必须以TDataSource对象为中介。用Delphi7作数据库应用开发概括来说如下:先利用数据存取组件和实际的数据库建立连接,并用Tsession对象和Tdatabase对象管理这些连接。然后以Tdatasource对象为中介,用数据感知组件向用户显示数据库的内容并接受用户的查询和修改等操作。2.3SQL语言在Delphi中的应用在Delphi中使用SQL语言非常方便,一般来说,都是通过Tquery组件来使用SQL语言的。可以在TQuery组件的SQL属性中设置SQL语句。设计程序时,在该组件的属性对话框中选择SQL属性,单击带省略号的按钮,就可以打开String List Editor对话框,然后我们就可以在对话框中添加SQL语句。还可以使用Delphi的SQL Builder来自动生成SQL语句,这样可以避免手工编写SQL而可能造成的语法错误。静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。动态SQL语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态SQL语句: Select * From Students Where StudentCode =: StudentCode;其中的变量StudentCode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条SQL语句才能正确执行,每次运行应用程序时可以为该参数变量赋予不同的值。为参数赋值有三种方法:根据参数在SQL语句中出现的顺序,设置TQuery部件的Params属性值为参数赋值。直接根据SQL语句中各参数的名字,调用ParamByName方法来为各参数赋值。将TQuery部件的DataSource属性设置为另一个数据源,这样将另一个数据源中与当前TQuery部件的SQL语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建主要明细型数据库应用。在程序运行过程中,要想设置TQuery部件的SQL属性,必须首先调用Close方法,关闭TQuery部件,然后再调用Clear方法清除SQL属性中现存的SQL命令语句,最后再调用Add方法为SQL属性设置新的SQL命令语句。例如:Query1.Close 关闭Query1)Query1.SQL.Clear 清除SQL属性中的SQL命令语句Query1.SQL.Add(Select * From Students);Query1.SQL.Add( Where Name =Lucy );在为TQuery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery部件已经被关闭了,调用Close方法时不会产生任何影响。在应用程序中为SQL属性设置新的SQL 命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面, 在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。在这里要特别注意的,一般情况下TQuery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。当然有些数据库服务器也支持在TQuery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为 SQL 属性设置多条SQL语句。在为TQuery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。在设计过程中,设置完TQuery部件的SQL属性之后将其Active属性的值置为True,这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery部件相连的数据浏览部件(如TDDGrid TDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。在应用程序运行过程中,通过程序调用TQuery部件的Open方法或ExecSQL 方法可以执行其SQL属性中的SQL程序。Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令), 并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT, UPDATE, DELETE等命令),例如:Query1.Open (这样会返回一个查询结果集)如果调用Open方法,而没有查询结果时,会出错。此时应该调用ExecSQL 方法来代替Open方法。如:Query1.ExecSQL (没有返回结果)当然在设计应用程序时,程序设计人员是无法确定TQuery部件中的SQL 语句是否会返回一个查询结果的。对于这种情况应当用TryExcept模块来设计程序。在 Try 部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。Delphi中用ADOQuery来使用SQL语句同样十分方便。在ADOQuery组件中首先通过ConnectionString属性值来联接数据源,然后就通过双击SQL属性值来写入SQL语句。在Delphi中调用数据库,就可以调用ADOQuery组件,通过修改其中的SQL属性中的SQL语句来实现对数据库的各项操作。值得注意的是,ADOQuery组件只有在激活的情况下才可以被正确地使用,这样就提出了一个问题,也就是说,在每次修改ADOQuery组件的SQL属性时都必须先行进行关闭,待清除掉SQL中所有的SQL语句后才可以添加新的SQL语句。而且,在每一次修改完成以后,还应该记得重新将ADOQuery激活。其它的使用方法与TTQuery有许多的相似之处。2.4 硬件系统介绍2.4.1 S50非接触式IC卡性能简介(M1)一、主要指标l 容量为8K位EEPROMl 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位l 每个扇区有独立的一组密码及访问控制l 每张卡有唯一序列号,为32位l 具有防冲突机制,支持多卡操作l 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路l 数据保存期为10年,可改写10万次,读无限次l 工作温度:-2050(湿度为90%)l 工作频率:13.56MHZl 通信速率:106 KBPSl 读写距离:10 cm以内(与读写器有关)二、存储结构1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为063,存贮结构如下图所示: 块0 数据块0扇区0 块1数据块1块2数据块2块3密码A 存取控制 密码B控制块3 块0数据块4扇区1块1数据块5块2数据块6块3密码A 存取控制 密码B控制块7 0数据块60扇区15 1数据块61 2数据块62 3密码A 存取控制 密码B控制块63图2-1 存贮结构图2、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。 数据块可作两种应用: 用作一般的数据保存,可以进行读、写操作。 用作数据值,可以进行初始化值、加值、减值、读值操作。4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5 图2-2 扇区结构图 密码A(6字节) 存取控制(4字节) 密码B(6字节) 5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下: 块0: C10 C20 C30 块1: C11 C21 C31 块2: C12 C22 C32 块3: C13 C23 C33三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置,以块0为例: 对块0的控制: bit 7 6 5 4 3 2 1 0字节6C20_bC10_b字节7C10C30_b字节8C30C20字节9 ( 注: C10_b表示C10取反 ) 存取控制(4字节,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论