人事档案管理系统毕业设计毕业论文文档格式.docx
《人事档案管理系统毕业设计毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《人事档案管理系统毕业设计毕业论文文档格式.docx(34页珍藏版)》请在冰点文库上搜索。
人力资源系统选型时提出了以下要求:
1).具有先进的人力资源管理理念;
2).可以满足多行业、多公司不同的人力资源管理要求;
3).实现集团化管理,实时监控各个专业、省市子公司的人力资源情况;
4).进行多层次数据汇总,为各层次管理者的决策分析提供数据;
5).具有完整的系统接口,满足灵活的数据导入与导出。
。
第二章人事管理系统编程环境现状及设计目标简介
2.1Delphi和ADO
ActiveDataObjects结合了OLEDB的普遍性质—那就是在诸如RDO和DAO模型中可以找到的易于使用的特性.ADO包含了所有可以被OLEDB标准接口描述的数据类型.换而言之,ADO是可扩充的,不需要对你的部件做任何工作.数据的访问和操纵是任何实际的应用程序的一个固有部分.对于数据来说,无论它是否是关系型的,无论它是否存在一个DBMS也,无论它的存储平台是什么,数据就是数据—一个文件没有必要一定是给定的二进制格式.
开发者群体需要具有简单接口的现代的开发工具以快速访问数据.微软对此问题的回答是UniversalDataAccess(UDA通用数据访问)体系结构,对此,StephenRauch的文
章“ManageDatafromMyriadSourceswiththeUniversalDataAccessInterfaces”中有详细的阐述(MSJ,1997年9月).简单的说,UDA是一种将OLEDB应用于实际的理论.所有的都被指向一个数据源—一个电子表格,一条电子邮件消息,或一份AS/400文档—由OLEDB接口过滤并以一种通用的格式表示,这样应用程序能总是以同样的方式对数据进行访问.位于OLEDB上的并处理来自应用程序的调用的中间层被称作ActiveDataObjects(ADO).它是编写针对带有OLEDB提供者的任何类型的数据源的推荐标准.
在ADO之前的RDO是一种增加DAO的客户/服务器能力,以提高其性能和可扩充性的当然的方法.根本上说来,RDO是一种位于ODBCAPI的上层的简便的封装.它揭示了了DAO数据对象模型中的许多东西,但它缺乏进行数据访问的Jet引擎.虽然这将予ADO更快的速度,但它没法利用该引擎的许多特性,而且它只能访问关系型的数据库.
ADO2.0的思想就在于:
为不同的应用程序访问相同的数据源创建一个更高层的公用层.尽管存在数据结构和组织间的物理位置的不同,编程的接口应该是一样的.为了找出RDO和ADO之间的更多的不同,
“ExploringActiveXDataObjectsfromanRDOPointofView,"
你能在
MSDN的技术性文章部分中找到它.ADO的出现并不意味着RDO的结束.实际上,微软承诺在可以预见的将来继续支持RDO
ADO2.0有什么新特点?
对于ADO1.5以前包括1.5的版本来说,从功能的角度来看RDO和ADO不是完全相等的.等同就意味着你可以通过这两种方法解决同样的问题;
它不是指存在重命名的或者优化的功能相同的对象.因此,移植到ADO不是一个简单的事情.从另一方面来说,一旦你熟练掌握了RDO或DAO技术的话,学习ADO是件相当容易的事情
ADO2.0的新特性包括事件处理,记录集的延续,分层目录结构指针和数据成形,分布式事务处理,多维数据,远程数据服务(RDS),以及对C++和Java的支持的增强.在钻研一些VisualBasic代码的时候将会见到所有的这些特性.
ADO对象模型是由相对数量较少的对象组成.不象RDO对象模型,每个主要的ADO对象都能被个别的被创建.
这就意味着,举例说吧,你不需要在创建有效的记录集对象前创建一个连接.
DimcnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
cn.Open"
Biblio"
rs.Open"
select*fromtitleswheretitlelike'
%h'
"
cn
ADO2.0对象是Connection,Command,Parameter,Recordset,Field,Error和Property.ADO对象模型也包
括四个类集:
它们分别是一套相关的Error,Parameter,Property和Field对象.让我们来看看每个对象的主要特性.
Connection对象提供连接,该连接连接的程序中存有它正在访问的数据源.属性允许你定义:
连接串,命令执行以及连接启动的间隔时间,数据提供者,(无论临时表位置是应该在客户端还是在服务器端),和对于数据的访问权限.方法有关于如下功能的:
执行命令,打开和关闭一个连接和管理事务.在许多地方你可以指定你想使用的提供者:
通过Provider属性,在连接字符串中,或者甚至通过Open方法.
选择你最喜欢的实现方式,但要保证你没有为同样的连接指定多个的提供者.缺省的提供者(当你没有指定你自己的提供者的情况下)是MSDASQ针L,对ODBC的MicrosoftOLEDB提供者.
Command对象定义了一个SQL声明,一个存储过程,或任何其他的你可能想让提供者执行的关于数据的操作.Command的属性有:
当前连接,最大允许执行时间和参数集.一个参数就是你将它作为参数传递给命令的值.在这些属性中用以区分一个参数的属性有:
方向(输入,输出,或者两者都有),类型当然还有它们的值.
记录集对象也许是最典型的ADO对象,然而它是最复杂的当中的一个.它表示命令执行的结果,并且它大多是以数据库的记录集的形式给出.一个记录集是由以行和域的形式表示的信息组成.它不一定非要映射成关系型数据库的记录.实际上,如同我早些时候解释的那样,ADO是基于OLEDB并且能被用来可视化地访问任何数据源中的数据,这数据源包括非关系型的数据库.记录集提供了缓冲能力,它接受数据的变化,并且将这些变化以批处理的方式传给服务器.你可以浏览并对记录集的内容分类,如同列举和提取行.你也能通过如:
删除,添加和刷新操作等任何方式修改数据.记录集存在跟连接的严格的关系,但是这不意味着你总是需要一个打开的连接来获得一个记录集.你也可以按如下方式进行:
DimRSAsNewADODB.Recordsetsql="
select*fromauthors"
RS.Opensql,"
Pubs"
既然Connection实际上是数据和命令传送的通道,所以该对象仍然被创建了,除了一个名字叫做
Recordset.ActiveConnection的属性外,它是不可见的并工作在后台.
Field对象是一列同类的数据.它提供了一种这样的编程接口,即能让你可以对单个单元的值以及基本的特征如:
类型和大小进行读和写.所有给定记录集的Field对象形成了一个Field集.如我将在后面向你说明的,Fields集隐藏着一个引人注目的特性,它将再次证明Recordset对象的灵活性.最后是Property对象.每个对象都有属性.提供的使用了ADO的对象可能是各种各样的.但不存在这样一套属性即包含了所有可能的
OLEDB提供者的静态的属性.因此,任何一个ADO对象都有静态和动态的属性.第一套属性集:
包括Name,Type,Value和Attributes,都可以通过如下的语法来访问:
obj.PropertyName最开始的三个属性都是自我说明性的.Attributes是一种数字式的描述符,它是以按位的跟提供者的能力有关的一些预定义的属性组合.(它类似于COM服务器的组件分类).动态属性是跟潜在的提供者类型相应的.它们被归进Properties集合,并可以通过名字查询.
obj.Properties("
propName"
)
TheNewRecordsetObject
2.2sql介绍
通过SQL命令,程序设计师或数据库管理员(DBA)可以:
(一)建立数据库的表格。
(包括设置表格所可以使用之空间)
(二)改变数据库系统环境设置。
(三)针对某个数据库或表格,授予用户存取权限。
(四)对数据库表格建立索引值。
(五)修改数据库表格结构。
(新建、删除或是修改表格字段)
(六)对数据库进行数据的新建。
(七)对数据库进行数据的删除。
(八)对数据库进行数据的修改。
(九)对数据库进行数据的查询。
这几项便是通过SQL命令可以完成的事情,看起来是不是比起“查询”两个字所代表的功能要多的多了呢?
SQL语法的分类
其实SQL命令并不是非常多,可是要把SQL用到出神入化,却也只需要短短几个命令便够,因为SQL命令是针对关系型数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,以下将针对在VB中常用的SQL语法基本命令加以分类介绍。
在说明SQL的命令以及使用语法之前,以下将SQL做了的分类,在致上
SQL语法所使用到的类型,可以说都已包含在这些类别当中
第一类、属性词(Predicates)
在SQL命令中用来指明所要选择的记录的方式。
如ALL、TOP与DISTINCT等等。
第二类、声明(Declaration)
针对SQLParameter或ParameterQuery的名称与数据类型做声明,如PARAMETER的S声明等等。
第三类、条件子句(Clause)
在SQL的查询中,利用一些表达式定义出查询的条件,以缩小寻找的范围,如WHER。
E
第四类、运算符(Operator)与操作数(Operation)在SQL的查询中,与Operation共同组成表达式(Expression),如BETWEENAND
运算符与INNERJOIN操作数。
第五类、函数(Function)
一些SQL常见的函数,像是AVG()是求算数平均数的函数。
第六类、SQL语句(Statement)
SQL的语句,可以说是SQL语法的主体,用来对某一个特定的数据库发出指示,并返回相关的数据,而SQL的语法结构,基本上可以利用下面
的式子来表示:
命令+条件子句例如:
SELECT*FROMTABWHERETAB.NAME='
A'
其中的“FROMWHER”E便是一个条件子句,其实SQL的语法并不难,您只需
记住这样的一个规则,相信可以很快的了解SQL用法。
SQL语法与命令
SELECT语句
SELECT[predicate]{*|table.*|[table.]field[,[table.]field2[,...]]}[ASalias1[,alias2[,...]]]FROMtableexpression[,...][INexternaldatabase]
[WHERE...]
[GROUPBY...]
[HAVING...]
[ORDERBY...]
[WITHOWNERACCESSOPTION]
SELECT语句包括下面几个部分predicate
如前面所述,包括了ALL,DISTINCT,DISTINCTROW与,TOP我们可以利用这样的语句去限制查询后所得的结果。
从指定表格中指定所有的字段。
table针对被选择出的记录的字段,所指定表格的名称。
field1,field2想要读取数据的字段名称,如果包含了一个以上的字段,会依照列出的顺序来读取数据。
alias1,alias2用来替代在表格实际字段名称的化名。
tableexpression表格名称或包含我们所想要的数据的表格。
externaldatabase若使用到不是目前的数据库则将其名字定义在externaldatabase当中。
ALL,DISTINCT,DISTINCTROW,TO属P性词用法
SELECT[ALL|DISTINCT|DISTINCTROW|[TOPn[PERCENT]]]FROMtable
ALL若是不指定任何的字段数据,则MicrosoftJet数据库引擎(databaseengine)将会选择所有的字段,并依据所定的条件查询出需求数据集。
例如下面这两个例子将会具有相同的效果,都会从职员表格中返回所有字段的数据
例如:
若是我们要查询出职员表格中的所有记录,可以通过下面的语句来完成
SELECTALL*FROM职员表格;
DISTINCT
对某个表格所选择的字段数据,略过重复的情况,也就是说,针对某个字段查询出来的记录结果是唯一的。
例如有许多存放在职员表格的职员
数据,也许会具有相同的姓名,所以若是我们用SQL语句中的SELECTDISTINC,T则查询出来的结果将会针对不一样的姓名加以筛选。
若是您把
DISTINCT加以省略,则这样的查询会显示所有的记录。
DISTINCTROW将整条记录重复的记录忽略掉,而不是只有针对某一个字段的数据。
table
指定查询记录所需要的表格。
SELECTDISTINCTRO公W司名称
FROM顾客表格INNERJOIN订单表格
ON顾客表格.顾客ID=订单表格.顾客ID
ORDERBY公司名称;
如果您忽略DISTINCTROW则会对每个公司产生一行以下的订单数据。
此外,若是DISTINCTROW只有用在一个表格当中,则会被省略掉。
TOP
从第一条或最后一条开始(利用ORDERBY条件子句),返回特定条数的数据。
例如:
当您想要知道在2000年,班上前25名的学生姓名数据时,您可以输入这样的语句:
SELECTTOP25学生姓名
FORM学生表格
WHERE毕业年份=1994
ORDERBY毕业成绩平均分数DESC;
如果您没有加上ORDERBY这行条件的话,您所得到的数据,将会随机的数据。
此外,在TOP语句之后,除了可以加上数字以外,还可以利用保留
字PERCEN来T查询。
SELECTTOP10PERCEN学T生姓名
FROM学生表格
WHER毕E业年份=1994
ORDERBY毕业成绩平均DESC;
PARAMETE(RS参数)声明的用法对于参数型的查询语法中,对参数的名称以及数据类型作声明的操作。
PARAMETERSnamedatatype[,namedatatype[,...]]
namePARAMETER的S名称。
您可以把参数名称当作字符串来使用,若是名称中包含了空字符串,可以利用中括号来处理,例如:
“VBeden”。
datatype输入参数的数据类型。
若是您在查询时,需要机动的输入姓名,可以利用下列的方式完成:
PARAMETER“S输入姓名”Text;
SELECT*
FROM职员表格
WHER姓E名=“输入姓名:
”;
ORDERBY条件语句
此条件子句,通常与SELECT语句合并使用目的是将查询的结果,依照指定字段加以排序。
SELECTfieldlist
FROMtable
WHEREselectcriteria
ORDERBYfield[ASC|DESC][,field2[ASC|DESC][,...]]
fieldlist
欲查询的字段名称。
其中可以与ALL,DISTINCT,DISINCTRO,W或TOP一起来使用。
table
欲查询的表格名称。
selectcriteria
查询的标准设置。
field1
指定要依照那个字段作为排序的依据,若是你没有加上ORDERBY查询出的数据
集将不会作排序的操作。
ASC
递增顺序类别。
(默认值)
DESC
递减顺序类别。
或是我们要将输出数据依据出生的先后次序排列,可以利用下面的命令。
SELECT姓名,生日
ORDERBY生日
SELECTLastName,FirstName
FROMEmployees
ORDERBYLastNameASC;
IN条件子句
指定要速胜哪一个外部数据库的表格。
(必须是MicrosoftJet数据库引擎所可
以连接的数据库,如dBase,Paradox等等)
SELECT|INSERT]INTOdestinationIN
{path|["
path"
"
type"
]|["
[type;
DATABASE=path]]}
FROMtableexpressionIN
DATABASE=path]]}destination
欲插入数据的外部表格名称。
tableexpression表格名称或是被读取数据的表格名称。
这个参数可以是一个单一的表格名称,或是一段已经被存储的SQL查询等。
path
包含该表格的完整路径名称。
type
数据库的类型名称,通常是当数据库部属于Jetdatabase时才会使用。
(例如:
dBASEIII,dBASEIV,Paradox3.x,Paradox4.x,或Btrieve)
下面这两段的意义相同
PartAFROMTable
IN"
[dBASEIV;
DATABASE=C:
\DBASE\DATA\SALES;
];
PartBFROMTable
C:
\DBASE\DATA\SALES"
dBASEIV;
MicrosoftJetdatabase
SELECT顾客编号
FROM顾客表格
INCUSTOMER.MDB
WHERE顾客编号Like"
A*"
;
其中CUSTOMER.MD为BOJetdatabase的数据库名称,其中包含了顾客表格。
dBASEIIIorIV
所以当我们使用不同于ACCESS的数据库时,必须指明该数据库的类型名称。
HAVING条件子句
指定一特定的分组记录,并满足HAVING所指定的条件或状态,但条件是针对分组的条件设置。
GROUPBYgroupfieldlist
HAVINGgroupcriteria
显示被查询的字段名称。
(可与ALL,DISTINCT,DISTINCTRO,W或TOP相结合)table
欲查询数据的表格名称。
选取标准。
groupfieldlist
分组记录的字段名称,到多10个字段。
而这些字段的顺序决定最高到最低的分组阶层groupcriteria
决定什么样的分组记录要被显示。
HAVING跟WHERE的用法相当类似,不同之处在于HAVING必须用于GROUP之后的分组数据上例如:
SELECT分类编,Sum(库存数量)
FROM产品表格
GROUPBY分类编号
HAVINGSum库(存数量)>100AND产品名称LIKE"
*纸"
;
GROUPBY条件子句依据指定的字段,将具有相同数值的记录合并成一条。
WHEREcriteria
欲读取的字段名称。
(可与ALL,DISTINCT,DISTINCTRO,W或TOP合并使用)table
被查询的表格名称。
分组记录的字段名称,到多10个字段,而这些字段的顺序决定最高到最低的分组层次例如:
SELECT姓名,Count(姓名)AS职员姓名
WHERE部门名称='
业务部'
GROUPBY姓名
FROM条件子句
指定表格名称或是查询,其中包含列在SELECT语句的字段数据
FROMtableexpression[INexternaldatabase]fieldlist
表格中的字段名称。
(可与ALL,DISTINCT,DISTINCTROW或,TOP相结合)tableexpression表格名称,或多个表格的算式。
externaldatabase若该表