1.从用户处接受信息
很多情况下,我们要从用户处取得信息。比如,学生登录时要输入用户名和密码;用户查找某项课程时要输入关键字;管理员增加用户时要填交表单等等。
在ASP中,由Request对象来完成这一任务。
由于用户可以通过GET和POST两种方式来提交数据和表单信息,Request对象相应的用QueryString集合和Form集合来接收。两者的区别在于:GET方式提交的信息量比较小,而且是显式的,也就是说,提交的信息内容会显示在地址栏里,不利于信息的安全和保密。
因此,在本系统中,一般采用POST方式提交信息。通常,我们把从用户处获得的信息作为我们的查询条件。
2.查找处理数据
在ASP组建的动态网站中,访问数据库的职责是由ASP的重头戏——ADO来完成的。ADO实际上是ASP调用的ActiveX数据对象,所以在使用ADO访问数据库之前,必须先用ASP的Server对象来调用ADO对象。即:
Server.CreateObject (“ADO.Connection”)
Server.CreateObject (“ADO.Recordset”)
ADO对数据库的访问和操作是通过它的三大对象Connection、Command和Recordset来完成的。虽然这三个对象都可以独立的完成对数据库的操作,但实际上它们的作用却各有侧重。为了更好、更方便的进行访问,我们应该根据它们各自的长处配合使用。
(1)建立联系——Connection对象
Connection对象能够建立数据库与应用程序之间的联系,在建立联系之后,由其他两大对象Command和Recordset来请求、存储或更新数据。形象的打个比方就是,Connection对象的功能好似拨通电话的动作,而Command和Recordset对象则好似与另一方通话的具体谈话动作。必须要指出,即使我们能够使用其它两个对象完成所有数据操作,但在之前必须先使用Connection对象建立连接。方法是:
MM_mm_STRING="DRIVER=Microsoft Access Driver_ (*.mdb);DBQ="&Server.MapPath("../data/db2.mdb")&";pwd=11223344;"
set cnn = Server.CreateObject("ADODB.Recordset")
Cnn.Open MM_mm_STRING
(2)查询——Command对象
Command对象的功能主要是对数据库进行数据查询,一般情况下,请求是采用标准的SQL语句来表示的。先把欲请求的SQL字符串指定到Command对象内的CommandText属性;接着执行数据库查询的动作Excute,在数据库服务器响应后,该响应的数据结果立即存储在Recordset对象中供用户使用。方法是:
Set cmd=Server.CreateObject(“ADODB.Command”)
Cmd.ActiveConnection=Connect
Cmd.Commandtype=adCmdText
Cmd.CommandText=“具体Select语句”
Set rst=cmd.Execute
(3)返回查询——Recordset对象
Command对象从数据库中取得的数据集合就存储在Recordset对象中,这些数据集合已经是符合用户向数据库发出的查询条件的数据所组成的集合。由于Recordset对象中所存的记录只是已经符合条件的一小部分,所以操作起来处理速度非常之快。
Recordset对象是所有ADO对象之中功能最强大的。因为在Recordset对象内提供了许多实用的方法和属性,这些方法、属性与Command、Connection对象自动进行链接,并且在后台完成了Command、Connection对象所需完成的工作。所以在实际对数据库进行操作时,查询和返回查询的工作可由Recordset对象一肩承担。方法为:
Set rst=Server.CreateObject(“ADODB.Recordset”)
SQL=“具体Select语句”
rst.Open SQL,cnn,2,2
(4)ADO对象共享机制
在ADO中还有一个重要的机制,就是ADO对象共享机制。对于不同的Command对象可以同时共享同一个Connection对象,甚至不同的Web页面对数据库的链接都可以共享一个Connection对象,也就是说只需要一个Connection对象对数据库做出链接的动作,就可以重复不断的利用该对象来向数据库服务器做出不同的数据库查询动作,当然这些查询动作是关联不同的Command对象。这样不同的Web页面对于每次数据库的链接不需要分别建立一个Connection对象,数据库服务器端的负担就降低了,对于整个应用程序的响应速度和效率都大大提高了。同样,ADO允许Recordset对象共享同一个Connection或Command对象。ADO这种对象共享机制可以与ODBC内的Fooling Connection做出结合的动作,这样更加改善了服务器链接效率。
管理员通过ID和密码进入管理系统。
(三) 系统特点:
(1)系统维护简单,系统所需要的任何数据或者任何个人资料,都是被保存在各自独立的数据库当中的,大部分的工作都由我们的系统来完成,系统管理员和用户只要做一些简单的工作就可以了。
(2)系统的使用方便,系统任何截面都全中文显示,友好和可预见性的界面,及时的提示,让用户能很快的掌握操作方法。我们可以这样断定;你只要能看懂中文,只要进入了我们的界面,你就一定能够很快的知道你下一步将要做什么工作了。
(3)系统的高效实用。数据库的引入,不仅使本系统便于维护,而且,使得系统高效实用,无须了解系统的运行体制和内部结构,就能掌握要领,运用自如。
(4)系统的安全性较高。由于在系统当中,对于不同的数据资料都是采用分别独立的数据库来保存的。
第四章 测试
测试在开发软件过程中是一个不可缺少的部分。因为在开发软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,在软件生命周期的各个阶段都不可避免地产生差错。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正错误;但是,经验表明审查并不能发现所有的差错,此外在编码过程中还不可避免地会引入一些新的错误。如果在软件生产性运行之前,没有发现并纠正软件中的大部分差错,则这些错误迟早在生产过程中暴露出来,那时不仅仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产运行之前,尽可能多地发现并纠正软件中的错误。基于上述的原因,我在编码过程中进行了模块测试,编码结束进行了系统测试和验收测试。下面将介绍测试方案,测试过程和测试结果。
(一) 模块测试
1 测试方案
采用了白盒测试,即按照程序内部的逻辑结构,检验程序中的每条通路是否都按预定要求正常工作。
2 测试过程
检验模块之间的接口。
A 每个被调用模块是否正确接受参数。
B 每个调用模块是否能调用每个自己想要调用的模块。
3 测试结果
测试结果表明,每个模块之间的接口都吻合,即被调用模块都能正确接受参数,调用模块能调用自己想要调用的每个模块。