小区物业管理系统设计与实现

小区物业管理系统设计与实现[java毕业论文下载]

摘要

 

 

本文参考了目前国内小区物业管理的发展情况以及管理模式,对小区物业管理系统进行了总体的设计,建立基于Web的运行平台,实现方便快捷的前端Web登陆和查询,采用Microsoft Access2003作为后台数据库,采用ASP技术对数据库进行操作和维护。本文讨论了访问Web数据库的五种方法,介绍每种方法的工作原理和优缺点。最后,本文对利用ASP技术访问数据进行了阐述和介绍。主要介绍了ASP的工作原理,页面结构,ASP提供的内置对象和组件以及使用ASP对Web数据库进行操作的方法。同时,对基于B/S的小区物业管理系统的设计和实现方法作了说明。

本系统要实现的总体功能是对房屋资料和住户信息进行统一的管理。房屋资料管理包括:管理员的房屋资料管理和房屋资料的查询;住户信息管理包括:住户信息管理,住户投诉及报修,小区公告及论坛。本人负责房屋资料管理模块,主要实现如下功能:管理员的房屋资料管理:包括房屋资料的添加,房屋资料的删除,房屋资料的编辑修改。管理员可以在网上对每个房屋的资料信息进行统一的管理。房屋资料查询:这个模块可以让管理员和普通用户进行关于房屋资料的查询。方便用户知道自己或别人的房屋信息。并对每个功能模块的设计思路和实现方法,具体的设计过程中所遇到的问题,设计难点以及具体的解决方案等作出了详细的阐述

关键字:B/S结构;Asp;小区物业管理系统;Access

 

 

 

Abstract

 

 

This text has consulted the development of the estate management of domestic district and management mode at present, carry on the total design to the property administrative system of the district, set up the operation platform based on Web, realize convenient and swift front Web login and searching, adopts Microsoft Access2003 as backstage supporter's database, adopt ASP technology to operate and maintain the database. This text discusses five kinds of methods to visit Web database, introduce operation principle and pluses and minuses of each kind of method. Finally, this text, to utilizing ASP technology and visiting the data and explaining and introducing. Introduce operation principle of ASP mainly, page structure, built-in target and package that ASP offer and use ASP go on method that operate to Web database. Meanwhile, doing the design based on district property administrative system of B/S and implementation method proves.

The overall function that this system should be realized is to carry on the management of the unity to the house materials and household's information. The materials management of the house includes: The administrator's house materials management and inquiry of house materials; Household's information management includes: Household's information management, the household complains and reports for repairing, district announcement and forum. I am responsible for the house materials and manage the module, mainly realize the following function: The administrator's house materials management: Including the adding of house materials, the deletion of the house materials, the editor of the house materials revises. The administrator can carry on unified management to the materials information of each house on the net. The house materials are inquired about: The module can let administrator and ordinary user go on about house inquiry of materials. Help users know oneself or others' house information. And to mentality of designing and implementation method of each function module, the question met in the concrete design process, design the difficult point and concrete solution, etc. to make detailed exposition

Key word: B/S structure; Asp; Property administrative system of the district; Access

 

 

 

目录

 

 

第1章 绪论 1

1.1 开发背景及现状 1

1.2 现行存在的问题及解决方法 1

1.3 C/S体系结构与B/S体系结构的比较 3

1.3.1客户机/服务器模式(C/S) 4

1.3.2 浏览器/服务器模式 4

1.3.3 客户机/服务器和浏览器/服务器结构的比较 5

1.4   系统的运行环境 6

第2章   系统需求分析 7

2.1 需求分析 7

2.1.1 系统E-R图 7

2.1.2 系统总体框架图 7

2.1.3 数据字典 8

2.2 系统设计目的 8

2.3 系统特点 9

第3章ASP技术 10

3.1 ASP的工作原理 10

3.2 ASP的页面结构 10

3.3 ASP的特点 11

3.4 ASP的内置对象 11

3.4.1 ASP的内置对象 11

3.4.1.1 Request对象 12

3.4.1.2 Response对象 13

3.4.1.3 Server对象 14

3.4.1.4 Application对象 15

3.4.1.5 Session对象 15

3.4.1.6 ObjectContext对象 16

3.5 动态服务器页面ASP(Active Server Page) 16

3.5.1 ADO对象 16

3.5.1.1 基本 ADO 编程模型 16

3.5.1.2 connection对象 17

3.5.1.3 Recordset 对象 18

3.5.1.4 Execute 方法 (ADO Connection) 19

3.5.1.5 Open 方法 19

第4章 系统的设计和实现 22

4.1主页的制作 22

4.2登陆用户的验证 22

4.2.1 建立数据库连接 22

4.2.2 页面设计 25

4.2.3 登陆判定 29

4.2.3管理页面 31

第5章 结束语 41

致谢 43

参考文献 42

 

 

 

 

第1章 绪论

 

 

当今社会是一个信息社会,一个知识经济时代。人类社会已经跨入21世纪,自从20世纪90年代以来,全球的信息技术的发展明显加快。自从世界上第一台计算机ENINC于1946年在美国问世以来,计算机业一直以日新月异的惊人速度发展着。由于芯片技术的发展和软件应用的快速扩展,电脑的功能正日益强大。随着Internet 的出现,将信息技术和计算机业的发展推入到了一个新纪元。随之而来的是以全球信息网络普及和全球信息共享为标志的全球信息革命的兴起。计算机网络开始在全球普及,并大大推动了计算机应用的发展。上网已经成为人们生活中不可缺少的一部分,在我们周围随处都可以看到计算机网络的影子。从国防军事,金融财政,交通运输等系统,到某一家企业,一个学校,一个医院等机构的内部结构中,都是在利用计算机网络进行管理。

在信息技术突飞猛进的当今,数据库技术的发展是信息技术发展中的一个重要的组成部分,结合网络技术的飞速发展,Web数据库技术也就随之应运而生。那么,开发基于Web的应用程序也就势在必行。与此同时,ASP作为一种新兴的Web应用程序开发技术,正在受到越来越多人的青睐。而浏览器/服务器(B/S)模式的数据库结构也正在成为时代的主流。

 

1.1 开发背景及现状

 

经过十几年的发展,中国房地产业逐步走向成熟,物业管理也由新生到发展再到深入,面临着蓬勃发展的局面。随着ISO9002等管理体系在物业管理中的引入,对原有的物业管理模式进行了一次深刻的变革,对物业管理公司朝着正规化、科学化、集团化的发展,起到有力的推动作用。

随着公司规模的扩大,管理的物业增多,管理处地域分散等,传统的人工或计算机管理方法往往会出现信息滞后,数据容量小、安全性、可靠性差,信息共享困难等等问题。

 

1.2 现行存在的问题及解决方法

 

迄今为止,中国的物业管理行业已经走过了二十几年的时间,已经具备了一定的规模和形态。随着经济体制的改革发展、城市的现代化、人们对居住空间的可持续发展的要求,伴随房地产商品经济发展的必然产物——物业管理要得到迫切的改变,已成为一种必然的趋势。随着我国经济发展和城市开发,住宅小区越来越成为居住的主流.

小区管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了小区物业的资源,对于小区的管理人员来说,物业管理包括物业设备管理、仪表数据管理、停车场管理、住户的投诉管理、住户的报修管理、住户的设备维修管理等等。而这些项目在过去手工操作时代,需要手工记录这些事情,不但麻烦,还经常出错,给广大用户带来很多不便。小区物业管理系统就是是针对当代社会这一市场需要应运而生的,是随着市场经济兴起的新兴行业,物业管理,它作为人们以市场化、企业化、专业化、社会化方式解决房地产后续管理的主要手段,越来越凸现其重要性。用计算机操作的小区物业管理系统是为小区管理者和小区用户更好的维护各项物业管理业务处理工作而开发的管理软件,根据需求分析,实现小区管理业务,效益已越来越明显。如今,物业管理已经成为人们在买房置业过程中最关心的因素。随着人们生活水平的提高,享受物业服务的意识已经越来越强。物业管理是一种不同于其他任何一种服务类型的服务。因此,开发这样一套小区物业管理系统软件成为很有必要的事情

随着城市经济的高速发展,物业管理已形成规模,其效益也越来越明显。在经济效益对地方政府而言,主要体现为:减少了大量的财政补贴,对住宅区开发企业而言,能提高物业市场竞争力,使开发企业的房产畅销,加速资金周转。同时,完善的物业管理能为开发商树立良好的企业形象,吸引更多的房地产交易商和消费者。在环境效益上,住宅区内的环境和布局、治安等与整个建设风貌融为一体,提高房地产业的综合效益。

但是,目前在物业管理的实践过程中还存在着如下问题:

1 物业管理架构不完善。目前,我国物业管理存在的首要问题是架构不完善,体制需进一步理顺和重新构建。

2 配套设施运作不理想。目前,小区的投资建设与物业管理脱节,没有从物业的生产、流通与消费的全过程来通盘设计和全方位运作,配套设施运作不理想,物业管理滞后于住房消费使用。

3 维修保养不得力。小区或写字楼一旦发生故障性事件而向物业管理公司反映(诸如电梯损坏、水管泄漏、电闸破坏、防盗门失灵、墙灰剥落等),往往不能得到及时解决。

4 物业管理经费难以为继。物业管理和建设一样,也需要资金的投入,在物业管理中,应该贯彻“谁受益,谁投入”的原则,形成物业管理资金的源泉。

5 物业管理法制不健全。全国性小区物业管理方面的法规很不健全,诸如物业管理体制、物业管理经费、住宅小区物业管理公司的资质审查、住宅小区的物业验收交接等关于住宅小区的物业管理中的重大问题都有待于进一步的明确规定。

6  物业管理公司与社会相关方面关系不顺。由于工作范围不明确,关系不协调,已成为小区物业管理中一大突出矛盾。

7 物业管理不到位。目前有物业管理公司不以“物业管理”为主业,而着重于多种经营,或只限于收租金和一般养护维修,而对于如何保养好建筑物的外貌、公用部位、周围环境,主动维修设备,提高物业的使用功能和经济价值则未能很好顾及,更谈不上特约服务了。

8 地区间发展不平衡。各个省(市、区)申报参评全国优秀管理住宅小区,不足全国小区总数的30%,参评城市不到全国城市的1%,有6个省会城市拿不出小区参评。这里既有南北经济发展差异的客观因素,也有主管部门“重建轻管”的倾向。

小区管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了小区物业的资源,对于小区的管理人员来说,物业管理包括物业设备管理、仪表数据管理、停车场管理、住户的投诉管理、住户的报修管理、住户的设备维修管理等等。而这些项目在过去手工操作时代,需要手工记录这些事情,不但麻烦,还经常出错,给广大用户带来很多不便。为了更好的为广大住户服务,我们决定开发一套小区物业管理系统,帮助小区管理人员从复杂的物业管理之中解放出来 国家应尽快出台物业管理专业性法规,规范政府、业主委员会、物业管理公司、房产开发商、居住者各自的责、权、利,以及相互之间的法律关系,进一步明确物业管理在社会主义初级阶段的地位和作用,为物业管理公司提供一个宽松、公开、公平的竞争环境,使我国物业管理向社会化、专业化、企业化经营轨道上迈进一步。

国家尽快颁布针对物业管理的专业性法律。物业是涉及房地产、市政、公安、工商、商业、规划、通讯等多个部门的综合经济行为,单一的部门法规在具体执行的其权威性和规范作用受到限制,且上述单行法规自身存在各种局限性。国家亟需制定一部专业性的法律,对现代市场经济条件下的物业管理行为进行引导、规范和制约,包括对业主委员会的组织运作、业主公约、房屋使用公约的鉴定、规格、专业性物业公司的资质管理、业主委员会、物业公司、政府职能部门之间的关系界定等等。

建立业主合约和业主委员会制度。房地产行政管理部门应尽快着手这方面的工作。以前建成已投入使用的大楼,可以帮助拟定完善、公正的业主合约(或房屋使用公约),并促使业主们签署,进一步指导协助大楼各业主成立健全的业主委员会组织。对于尚未竣工销售的房地产,必须指令和辅导开发商在销售之前拟定业主公约,为未来业主进行自主管理创造必要条件。

加强物业公司的资质管理。房地产行政管理部门应对物业公司进行严格的资质管理,实施注册和许可证制度,扶持市场化、社会化的专业性物业管理公司,引导专业性物业公司向大型化发展,创造规模效益,并将业绩优良的物业管理公司向业主委员会进行推荐。

设置机构,规范管理。国家有必要设置专门的物业管理机构,利用国家和地方政府制定的一些法规、政策对业主委员会、物业管理公司、开发商实施综合管理,并尽快编制物业管理劳动定额,各物业各工种的工作量、材料消耗,及以机械台班损耗等做出明确的测定,使物业在竞争中一方面即可双向选择,又可防止物业行业不正当竞争。

实行由业主委员会管理并自主选择物业公司的制度。由业主委员会选择物业管理公司,将会对物业公司的服务质量以直接的监督效果,促使物业公司提高自身综合管理水平,另一方面,业主委员会和业主公约在交纳管理费、遵守秩序和公德方面也对内部成员具有强制约束力。

加大监管力度,提高物业管理水平。政府部门应对开发商按国家有关规定支付的各项费用如维修、养护费、绿化养护费等实行全过程、全方位监督,保证能及时到位,并科学合理地使用。业主委员会和房地产开发商有权对物业管理公司的日常管理,各项收费,房屋及公共设施,设备的养护、维修和搭乱建、改变房地产和公用设施用途,以及不履行物业管理合同、管理办法、规定的行为进行严格监督。

强化管理、树立品牌。

建立激励机制,促进物业行业健康发展。

 

1.3 C/S体系结构与B/S体系结构的比较

 

目前开发小区物业管理系统常采用的体系结果有C/S和B/S两种,下面对这两种体系结果作具体的比较分析。

 

1.3.1客户机/服务器模式(C/S)

客户机/服务器结构,即Client/Server结构。这种结构把数据库信息存放在远程的服务器上,而客户机上安装相应的软件。传统C/S结构一般是两层的,其结构如图1.1所示。它有两部分构成:前端是客户机,即用户界面,接受用户的请求,并向数据库服务器提出请求,通常是一个PC机;后端是服务器,将数据提交给客户端,客户端将数据进行计算并把结构呈现给用户。C/S结构还提供了完善的安全保护及对数据完整性处理等操作,并允许多个客户同时访问一个数据库。在这种结构中,服务器的硬件必须要有足够的处理能力,这样才能满足客户的需求。

 

图1.1  C/S二层体系结构

 

随着Internet技术的普及和电子商务技术的发展,客户机/服务器结构的数据库系统正在由2层向3层发展。应用程序的任务在逻辑上被划分为三种服务:用户服务、业务服务(中间层服务) 和数据服务。用户服务在客户机上,提供了可视化的用户界面来表示信息和收集数据;业务服务在一个或多个业务服务器上,是联系用户服务和数据服务的桥梁,它们响应用户发来的请求,实施业务规则,处理和分析业务数据。获得业务结果;数据服务在数据库服务器上,负责数据的组织管理,包括数据的定义、维护、访问和更新以及管理并响应业务服务器的数据请求。

C/S结构在技术上已经很成熟,它的主要特点是交互性强、具有安全存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发的,变更不灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少交通性,具有较大的局限性。要求具有一定专业水准的技术人员去完成。

 

1.3.2 浏览器/服务器模式

浏览器/服务器结构,即Browser/Server结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(如VBScript、JavaScript等)和ActiveX技术,是一种全新的软件系统构造技术。

B/S三层体系结构采用三层客户/服务器结构,在数据管理层和用户界面层之间增加了一层结构,称为中间件,使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,如图1.2所示。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间是互相独立的,任何一层的改变不会影响其他层的功能。

 

图1.2  B/S三层体系结构

 

1.3.3 客户机/服务器和浏览器/服务器结构的比较

1. 硬件环境不同

C/S建立在局域网的基础上,通过专门服务器提供连接和数据交换服务。所处理的拥护不仅固定,并且处于相同区域,要求拥有相同的操作系统。B/S建立在广域网的基础上,信息自己管理,有比C/S更强的适用范围,一般只要有操作系统和浏览器就行。与操作系统平台关系最小。面向不可知的用户群。

2. 结构不同

C/S软件一般采用两层结构,而B/S采用三层结构。这两种结构的不同点是两层结构中客户端参与运算,而三层结构中客户端不参与运算,只是简单的接收用户的请求,显示最后的结果。所以在三层结构中对客户端的计算机的配置要求很低。虽然B/S在逻辑上采用了三层结构,但在物理上的网络结构仍然是原来的以太网或环形网。这样,第一层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占用同一条网络线路,网络通信量大。而C/S只有两层结构,网络通信量只包括客户端与服务器之间的通信量,网络通信量低。所以,C/S处理大量信息的能力是B/S无法比拟的。

3. 处理模式不同

B/S的处理模式与C/S相比,大大简化了客户端,只要装上操作系统、网络协议软件以及浏览器即可,这时的客户机成为瘦客户机,而服务器则集中了所有的应用逻辑。

4. 构件重用不同

在构件的重用性方面,C/S程序从整体进行考虑,具有较低的重用性。而B/S对应的是多重结构,要求构件具有相对独立的功能,具有较好的重用性。

5. 系统维护不同

系统维护是在软件生存周期中开销最大的一部分。C/S程序由于其本身的整体性,必须整体考察并处理出现的问题。而B/S结构,客户端不必安装及维护。B/S结构在构件组成方面只变更个别构件,开发、维护等工作都集中在服务器端。当需要升级时,只需更新服务器端的软件,而不必更换客户端软件,实现系统的无缝升级。这样就减轻了系统维护与升级的成本和工作量,使用户的总体拥有成本大大降低。

6. 对安全的要求不同

由于C/S采用配对的点对点的结构模式,并采用适用于局域网、安全性比较好的网络协议(例如NT的NetBEUI协议),安全性可得到较好的保证。C/S一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。所以B/S对安全以及访问速度比C/S有更高的要求。而Internet技术中这些关键的安全问题远未解决。

7. 速度不同

由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S快。使得C/S更利于处理大量数据。

8. 交互性与信息流不同

交互性强是C/S固有的一个优点。在C/S中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。B/S虽然由JavaScript、VBScript提供了一定的交互能力,但与C/S的一整套客户应用相比实在是太有限了。C/S的信息流单一,而B/S可处理如B-B、B-C、B-G等信息并具有流向的变化。

综上所述,C/S和B/S这两种技术是各有利弊。但相比较只下,C/S主要局限与局域网,缺乏作为应用平台的一些特性,而且要求开发者自己处理事物管理、消息队列、数据的复制和同步等问题,对开发者有较高的要求,而且应用程序的维护和移植复杂。而B/S应用于广域网上,应用程序开发比较简单,而且大大降低了维护管理的难度,所以,B/S具有更广大的发展前景。

 

1.4   系统的运行环境

 

1. 操作系统:WINDOWS XP

2. 数据库管理系统 :ACCESS 2003

3. WEB服务器: 用IIS建立Web服务器

4. 开发技术:Dreamweaver 、ASP等

基本硬件建议配置

CPU Pentium 2 300 Mhz entium III 550 Mhz 以上

内存 64MB 以上

硬盘 400MB以上

 

 

 

第2章   系统需求分析

 

 

小区物业管理系统是基于Web的小区物业应用方案。为业主对用户信息进行管理的时提供了极大的方便。彻底取代了传统手工管理的方式,极大的减轻了管理人员的工作量,为小区实现信息化管理提供了强大的支持。

 

2.1 需求分析

 

本系统要实现的总体功能是对房屋资料进行统一的管理。系统主要由管理员的房屋资料管理和房屋资料查询2个模块组成,要实现如下功能:

管理员的房屋资料管理:包括房屋资料的添加,房屋资料的删除,房屋资料的编辑修改。管理员可以在网上对每个房屋的资料信息进行统一的管理。

房屋资料查询:这个模块可以让管理员和普通用户进行关于房屋资料的查询。方便用户知道自己或别人的房屋信息。

 

2.1.1 系统E-R图

 

图2.1 物业管理系统E-R图

 

2.1.2 系统总体框架图

 

图2.2 系统框架图

 

2.1.3 数据字典

   为了要实现以上功能,首先要定义数据字典。因此,在数据库中建立如下三张数据表: 房屋建筑资料表、管理员信息表。

房屋建筑资料表用于存放所有关于房屋资料的信息。具体见表2.1:

 

表2.1 房屋建筑资料表

字段名称

数据类型

说明

ID

自动编号

房屋编号

楼宇单元

文本

房屋类型

楼层

数字

楼层

房号

文本

房号

房型

数字

房间类型

建筑面积

数字

建筑面积

住户名称

文本

住户名称

联系电话

文本

联系电话

收费

货币

收费

管理员信息表用于存放管理员用户名和密码的信息,具体定义如表2.2所示:

 

表2.2管理员信息表

字段名称

数据类型

说明

ID

自动编号

管理员编号

Username

文本

管理员用户名

Password

文本

管理员密码

 

 

 

2.2 系统设计目的

 

经过十几年的发展,中国房地产业逐步走向成熟,物业管理也由新生到发展再到深入,面临着蓬勃发展的局面。随着ISO9002等管理体系在物业管理中的引入,对原有的物业管理模式进行了一次深刻的变革,对物业管理公司朝着正规化、科学化、集团化的发展,起到有力的推动作用。随着计算机信息技术和网络通讯等高新技术的发展,对小区物业信息的管理提出了更高的要求,要求小区物业管理系统进一步发展成为小区物业管理信息系统,为住户提供快捷、灵活、方便的智能服务。

通过本系统可以实现小区物业管理的信息化,解决以往只能靠手工,信息传递不方便、不快捷等问题。使业主方便管理,住户方便方便交流等。因此,应用本系统可以大大提高工作效率,节省人力和物力,提高物业管理水平。

 

2.3 系统特点

 

该系统主要是通过网络对住户的信息进行管理,其主要有如下几个特点:

1 采用先进可靠的体系结构

本系统采用的是当今比较流行的浏览器/服务器(B/S)三层体系结构,在客户端只需要安装浏览器(如IE等)就可以对服务器进行访问,与早期的主机/终端结构相比,B/S结构突破了地域上的限制,一般只要能上网的地方就可以从客户端访问服务器。而且,B/S结构的开发、维护工作都集中在服务器端,当需要升级时,只需更新服务器端的软件,不必更换客户端的软件,减低了维护的难度和成本。

2 友好的用户界面

本系统设计的界面友好简洁,各个功能模块排布清晰明确,一目了然。用户只需要通过简单的操作就可以查找自己需要的信息,充分体现了简单,灵活,方便等特点。

3 可靠性和安全性

本系统会自动对输入信息的正确性和完整性进行检查,保证写入数据库内信息的正确性。

 

 

 

第3章ASP技术

 

 

ASP是微软公司推出的新兴的网络应用程序开发技术,是服务器端的脚本编写环境,使用ASP可以创建和运行动态、交互的应用程序,可以组合HTML页面、脚本命令和ActiveX组件以创建交互的网络和基于网络的功能强大的应用程序。目前ASP已成为开发动态网站和网络数据库的主要技术之一。

 

3.1 ASP的工作原理

 

ASP访问数据库的工作原理如下:

ASP脚本实际上是一种服务器端的解释脚本,其脚本包含在以.asp为后缀的文件中。当在浏览器中访问以后缀名为.asp的ASP主页时,网络服务器响应HTTP请求并调用ASP引擎(asp.dll)执行该文件并解释执行其中的任何脚本(VBScript或JavaScript),若脚本中有访问数据库的请求,立刻通过ODBC与相应的后台数据库相连,由数据库访问组件ADO(Active Data Objects)完成操作,最后,ASP根据访问数据库的结构集生成包含有数据查询结果HTML语言的主页返回给前端用户。具体工作原理见图4.1。

 

 

图3.1  ASP访问Web数据库工作原理

 

由于ASP在服务器端运行,运行结果以HTML主页的形式返回用户浏览器,也就是说,用户在前端浏览器看到的仅仅是ASP页的执行结果所生成的的页,而ASP的页本身的内容用户在浏览艾前端是看不到的,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展其应用范围。

 

3.2 ASP的页面结构

 

ASP的程序代码简单通用,文件名由.asp结尾,ASP文件通常由四部分构成:

1. 标准的HTML标记:所有的HTML标记均可使用。

2. ASP语法命令:位于<%%>标签内的ASP代码。

3. 服务器墩的包括语句:可用#包括语句调入其他ASP代码,增加编程的灵活性。

4. 脚本语言:ASP自带JavaScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可以安装其他脚本语言,比如:Perl,Rexx等。

活跃的手写体就是用VBScript,JavaScript,Perl等脚本语言并遵照ASP的语法规则编写出发程序,同时在程序两端加上<%------------%>这两个定界符就可以了。

 

3.3 ASP的特点

 

ASP内含于Internet Information Server(简称IIS)中,它把HTML语言、脚本语言、ActiveX服务器组件等结合在一起,建立动态的、交互的、高性能的Web服务器应用程序。ASP的主要特点有:

1. 使用VBScript、JavaScript等简单易懂的脚本语言,脚本语言完全嵌入HTML,不仅可快速的完成网站的应用程序,还实现了程序与页面的完美结合。

2. 无需编译,Web服务器直接执行脚本代码。

3. 使用普通的文本编辑器(如windows的记事本)就可以进行编辑设计,也可以使用高效的可视化工具Visual InterDev。

4. 无浏览器兼容问题,用户端的浏览器只要能执行HTML代码即可。ASP使用的脚本语言在Web服务器端执行,用户端浏览器不需要能执行这些脚本语言。

5. ASP的源程序隐藏,不会被传到用户浏览器,用户仅能看见由ASP输出的动态HTML文件,这提高了程序的安全性。

6. ASP是面向对象编程,可便捷的使用ActiveX组件来执行复杂的任务。并且ActiveX Server Components(ActiveX服务器组件)具有可扩充性,可使用Visual Basic、Java、Visual C++、COBOL等编程语言编写所需要的ActiveX服务器组件。

7. 可使用服务器端的脚本产生客户端的脚本。

 

3.4 ASP的内置对象

 

ASP提供了功能强大的六个内置对象件,利用这些对象可以开发出非常完美的网络应用程序。下面就对ASP的内置对象作介绍。

 

3.4.1 ASP的内置对象

ASP提供的内置对象,这些对象可以使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息(如用户首选项)。

这六个内置对象如下:

1. Request(请求):可以使用Request对象访问任何用HTTP请求传递的信息,包括从HTML表格用POST方法或GET方法传递的参数、cookie和用户认证。通过Request对象能访问发送给服务器的二进制数据,如上传的文件。

2. Response(响应):将信息送给前端。Response对象可同来构建对信息的反馈。

3. Server(服务器):提供网络服务器工具。

4. Application(应用):管理所有会话,供所有用户共享。

5. Session(会话):存储一次会话内的用户信息,仅被该用户访问。

6. ObjectContext(对象上下问):提交或终止由ASP脚本启动的事物。

下面就ASP的六个内置对象进行说明:

3.4.1.1 Request对象

使用Request对象,可以收集并处理用户通过HTTP请求传送的信息,如HTML表单用POST或GET方式传达的参数,Cookies数据和环境变量等。这些信息可以分别从Request对象的集合中获取。

1. Request对象的语法

Request[.collection|property|method](“variable”)或Request(“variable”)

如果通过调用Request(“variable”)直接使用所有的变量,而不用集合的名称,那么,Web服务器会按照下面的顺序搜索集合:

QueryString

Form

Cookies

ClientCerificate

ServerVariables

这样,当发现第一个匹配的变量时,就认定它就是要引用的成员。显然省略集合名称会影响执行效率。为了提高效率,最好明确的指定是哪个集合中的成员。

2. Request对象的集合

Request对象有五种集合,如表3.1所示

 

表3.1  Request对象的集合

集合名

说      明

ClientCerificate

存储在发送到HTTP请求中客户端证书中的字段值

Cookies

HTTP请求中被发送的cookie的值

Form

HTTP请求正文中表格元素的值

QueryString

HTTP中查询字符串变量的值

ServerVariables

预定的环境变量的值

 

3. Request对象的属性

TotalBytes:指定客户端在请求正文中发送的总字节数,该属性只允许读。

语法:

Counter = Request.TotalBytes

Counter用于指定一个变量来接受客户端在请求中发送的总字节数。

4. Request对象的方法

BinaryRead:用于获取作为POST请求的一部分而从客户端传送到服务器的数据。

语法:

variant = Rqquest.BinaryRead(count)

variant包含由该方法返回的无符号数的数组。

3.4.1.2 Response对象

使用Response对象,可以控制发送给用户的信息。包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。

1. Response对象的语法

Response.collection|property|method

2. Response对象的属性

Response具有多种属性,如表3.2所示。

 

表3.2  Response对象的属性

属性名

说      明

Buffer

表明页输出是否缓冲

CacheCobtrol

决定代理服务器是否能缓存ASP生成的输出

Charest

将字符集的名称添加到内容类型标题中

ContentType

指定响应的HTTP内容类型

Expires

在浏览器中缓存的页面超时前,指定缓存的时间

ExpiresAbsolute

指定浏览器上缓存页面超时的日期和时间

IsClientConnected

表明客户端是否与服务器断开

Pics

将PICS标记的值添加到响应标题的PICS标记字端中

Status

服务器返回的状态行的值

 

3. Response对象的方法

Response对象也具有多种方法,如表3.3所示

 

表3.3  Response对象的方法

方法

说      明

AddHeader

从名称到值折纸HTML标题

AppendToLog

在该请求的Web服务器日志条目后添加字符串

BinaryWrite

将给出信息写如到当前HTTP输出中,并不进行任何

字符转换

Clear

清除任何缓冲的HTML输出

End

停止处理.asp文件并返回当前的结果

Flush

立即发送缓冲的输出

Redirect

将重指示的信息发送到浏览器,尝试连接另一个URL

Write

将变量作为字符串写入当前的HTTP输出

 

4. Response对象的Cookie集合

Cookies集合设置cookie的值。若指定的cookie不存在,则创建它。若存在,则设置新的值并且将旧的值删除。

语法:

Response.Cookies(cookie)[(key)|.attribute] = value

Cookie即指cookie的名称。

key是可选项,如果指定了key,则Cookie就是一个字典,而key将被设置为value。

attribute是指定cookie自身的有关信息。

value指定分配给key或attribute的值。

3.4.1.3 Server对象

Server对象提供对服务器上的方法属性进行的访问。最常用的方法是创建ActiveX组件的实例(Server.CreatObject)。其他方法用语将URL或HTML编码成字符串,将虚拟路径映射到物理路径以及设置脚本的超时的时期。

1. Server对象的语法

Server.property|method

2. Server对象的属性

ScriptTimeout:用于指定脚本在结束前最大可运行的时间。当处理服务器组件时,超时限制将不在生效。

语法:

Server.ScriptTimeout = NumSeconds

Numseconds是指定脚本在被服务器结束前最大可运行的秒数。默认的值是90秒。

3. Server对象的方法

Server对象的方法如表3.4所示

 

表3.4  Server对象的方法

方法

说      明

CreatObject

创建服务器组件实例

HTMLEncode

将HTML编码应用到指定的字符上

MapPath

将指定的虚拟路径映射为物理路径

URLEncode

将URL编码规则,包括转义字符,应用到字符串

 

    ①MapPath方法

语法:

Server.MapPath(Path)

Path是指定要映射的物理目录的相对路径或虚拟路径。若Path以一个正斜杠(/)或反斜杠(\)开始,则MapPath方法返回路径时将Path视为完整的虚拟路径。若Path不是以斜杠开始,则MapPath方法返回与.asp文件中已有的路径相对的路径。

MapPath方法不检查返回的路径是否正确或在服务器上是否存在。所以,可以先用MapPath方法映射物理目录结构的路径,然后将其传递给在服务器上创建指定迷路或文件的组件。

 ②CreatObject方法

语法:

Server.CreatObject(progID)

progID是指定要创建的对象的类型。

Server. CreatObject是Server对象中最重要的方法,用于创建已注册到服务器上的ActiveX组件的实例。ActiveX组件能够轻松的扩展ActiveX的能力,实现许多重要的功能。

服务器组件和ASP内置对象一样有集合、属性和方法,但不同的是无法直接存取,必须先建立一个对象实例,然后在通过此对象实例去存取其集合、属性和方法。因此,要想使用数据访问组件,必须先建立对象实例,如:

     Set rs = Server.CreatObject(“ADOBO.Connection”)

Set是VBScript的关键词,rs是这个对象实例的名称,ADOBO是ASP服务器的一个组件,用于处理数据库。

默认情况下,由Server.CreatObject方法创建的对象具有页作用域,即当ASP页处理完后,服务器将自动破坏这些对象,也可以通过noting来释放创建的组件所占的资源。如:

<% Set rs = nothing %>

3.4.1.4 Application对象

可以使用Application对象在给定的应用程序的所有的用户之间共享信息。基于ASP的应用程序同所有的.asp文件一样在一个虚拟目录及其子目录中定义。因为多个用户可以共享Application对象,所以必须要加锁以确保多个用户无法同时改变某一属性。

1. Application对象的语法

Application.method

2. Application对象的集合

Application对象的集合有如下两种:

Contents:即包含所有通过脚本命令添加到应用程序中的项。

StaticObjects:即包含所有用<OBJECT>标记添加到到会话中的对象。

3. Application对象的方法

Application对象的方法也有两种:

Lock:此方法禁止其他用户修改Application对象的属性。

Unlock:此方法允许其他用户修改Application对象的属性。

3.4.1.5 Session对象

可以使用Session对象存储特定的用户会话所需要的信息。当用户在应用程序的页面之间跳转时,存储在Session对象中的变量不会清除。而用户在应用程序中访问页面时,这些变量始终存在。也可以使用Session方式显式的结束一个会话和设置空闲会话的超时期限。

1. Session对象的语法

Session.collection|property|method

2. Session对象的集合

Session对象有两个集合类型:

Contents:包含已用脚本命令添加到会话中的项目。

StaticObjects:包含通过<OBJECT>标记创建的并给定了会话作用域的对象。

3. Session对象的属性

Session对象具有多个属性,如表3.5所示。

 

表3.5  Session对象的属性

属性

说      明

CodePage

将用于符号映射的代码页

LCID

现场标识

SessionID

返回用户的会话验证

Timeout

应用程序会话状态的超时时限,以分钟为单位

 

4. Session对象的方法

Session对象有一个Abandon方法,用于删除所有存储在Session对象中的对象,并释放这些对象的源。如果未明确的调用Abandon方法,一旦会话超时,服务器将删除这些对象。

语法:Session. Abandon

Abandon方法在被调用时,将按顺序删除当前的Session对象,不过在当前页中所有脚本命令多处理完后,对象才会被真正删除。这就是说,在调用Abandon时,可以在当前页上访问存储在Session对象中的变量,但在随后的Web页上就不可以了。

3.4.1.6 ObjectContext对象

可以使用ObjectContext对象提交或放弃一项由Microsoft Transaction Server(MTS)管理的事务,它由ASP页包含的脚本初始化。ASP包含@TRANSACTION指令时,该页会在事务中运行,直到事务成功或失败后才会终止。

1. ObjectContext对象的语法

ObjectContext.method

2. ObjectContext对象的方法

①SetComplete:此方法声明脚本不了解事务未完成的原因。如果事务中的所有组件都调用SetComplete,事务将完成。SetComplete方法忽略脚本中千毫秒年 调用过的任何SetAbort方法。

语法:

ObjectContext. SetComplete

②SetAbort:此方法声明脚本初始化的事务未完成,无法更新源。SetAbor方法取消被ASP初始化的事务。

语法:

ObjectContext. SetAbort

 

3.5 动态服务器页面ASP(Active Server Page)

 

ASP是基于Web的一种编程技术,可以轻松的实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览这一点也感觉不出来,就像为他们专门制作的页面一样。有ADO(Active Database Object,动态数据库对象)的支持,ASP对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格和记录进行操作。

ASP着重于处理动态网页和Web数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问Web数据库的最佳选择。

 

3.5.1 ADO对象

Microsoft ActiveX Data Objects (ADO) 使您的客户端应用程序能够通过 OLE DB 提供者访问和操作数据库服务器中的数据。它的主要优点是易于使用、速度快、内存支出低和占用磁盘空间少。ADO 支持用于建立客户端/服务器和基于 Web 的应用程序的主要功能。

3.5.1.1 基本 ADO 编程模型

ADO 提供执行以下操作的方法:

1. 连接数据源。可以确保对数据源的更改全部成功或全部失败。

2. 指定访问数据源的命令,可选择带变量参数或优化执行。

3. 执行命令。

4. 如果命令导致数据按表中行的格式返回,则将这些行存储在易于检查、操作和更改的缓存中。

5. 适当情况下,可使用缓存行中的更改内容来更新数据源。

6. 提供检测错误(通常由建立连接或执行命令造成)的常规方法。

7. 通常情况下,需要在编程模型中采用所有这些步骤。但是,因为 ADO 具有很强的灵活性,所以只需要执行模型的一部分就能完成有用的工作。例如,可以将数据直接从文件存储到缓存行中,然后仅用 ADO 资源对数据进行检查。

3.5.1.2 connection对象

表示到数据源的打开的连接。

Connection 对象表示数据源的唯一会话。在使用客户端/服务器数据库系统的情况下,该对象可以等价于到服务器的实际网络连接。Connection 对象的某些集合、方法或属性可能无效,这取决于提供者支持的功能。

用 Connection 对象的集合、方法和属性可以执行下列操作:

· 在打开连接前用 ConnectionString、ConnectionTimeout 和 Mode 属性配置连接。ConnectionString 是 Connection 对象的默认属性。

· 设置 CursorLocation 属性以调用支持批更新的 Cursor Service for OLE DB

· 用 DefaultDatabase 属性设置连接的默认数据库。

· 用 IsolationLevel 属性为在连接上打开的事务设置隔离级别。

· 用 Provider 属性指定 OLE DB 提供者。

· 用 Open 方法建立到数据源的物理连接,然后用 Close 方法断开连接。

· 用 Execute 方法在连接上执行命令,用 CommandTimeout 属性配置命令的执行。

注意   要在不使用 Command 对象的情况下执行查询,请将查询字符串传递给 Connection 对象的 Execute 方法。但是,当要持久保留并重新执行命令文本,或者要使用查询参数时,需要使用 Command 对象。

· 用 BeginTransCommitTrans 和 RollbackTrans 方法和 Attributes 属性在打开的连接上管理事务,包括嵌套的事务(如果提供者支持的话)。

· 用 Errors 集合检查从数据源返回的错误。

· 用 Version 属性从 ADO 中读取使用的版本。

· 用 OpenSchema 方法获取关于数据库的模式信息。

可以独立于先前定义的任何其他对象来创建 Connection 对象。

可以将命令或存储过程作为 Connection 对象的原生方法来执行。

若要执行命令,请用 Command 对象的 Name 属性指定命令的名称。将 Command 对象的 ActiveConnection 属性设置为连接。然后,在使用命令名称处发出一个语句(将其作为 Connection 对象的一个方法),后面可跟随任何参数,接着再跟随 Recordset 对象(如果返回了任何行)。设置 Recordset 属性以自定义产生的 Recordset

要执行存储过程,请在使用存储过程名称处发出一个语句(将其作为 Connection 对象的一个方法),后面可跟随任何参数。ADO 将对参数类型作出“最佳判断。

3.5.1.3 Recordset 对象

Recordset 对象:表示基本表或命令执行结果的记录全集。任何时候 Recordset 都只将集合中的单个记录作为当前记录引用。

用 Recordset 对象对来自提供者的数据进行操作。使用 ADO 时,将几乎全部使用 Recordset 对象来对数据进行操作。所有 Recordset 对象均由记录(行)和字段(列)组成。某些 Recordset 方法或属性可能不可用,这取决于提供者支持的功能。

ADODB.Recordset 是 ProgID,应当用它来创建 Recordset 对象。引用过期的 ADOR.Recordset ProgID 的现有应用程序将继续工作而无需重新编译,但新开发的应用程序应引用 ADODB.Recordset。

ADO 中定义了四种不同的游标类型:

动态游标 — 用于查看其他用户所作的添加、更改和删除;用于 Recordset(不依赖于书签)中的所有移动类型;如果提供者支持,还可用于书签。

键集游标 — 其行为类似动态游标,不同的只是它禁止查看其他用户添加的记录,并且禁止访问其他用户删除的记录。其他用户所作的数据更改依然可见。它始终支持书签,因此允许 Recordset 中的所有移动类型。

静态游标 — 提供记录集的静态副本,可用来查找数据或生成报告;它始终支持书签,因此允许 Recordset 中的所有移动类型。其他用户所作的添加、更改或删除将不可见。当打开客户端 Recordset 对象时,这是唯一允许的游标类型。

仅向前游标 — 只允许在 Recordset 中向前滚动。其他用户所作的添加、更改或删除将不可见。当只需要对 Recordset 进行一次传递时,可以提高性能。

打开 Recordset 之前请先设置 CursorType 属性以选择游标类型,或者用 Open 方法传递 CursorType 参数。某些提供者并不支持所有类型的游标。请检查提供者的文档。如果未指定游标类型,ADO 将默认打开仅向前游标。

如果将 CursorLocation 属性设置为 adUseClient 以打开 Recordset,则 Field 对象的 UnderlyingValue 属性在返回的 Recordset 对象中将不可用。如果与某些提供者(如 Microsoft ODBC Provider for OLE DB 和 Microsoft SQL Server)配合使用,便可用 Open 方法传递连接字符串来单独创建先前定义的 Connection 对象的 Recordset 对象。ADO 仍然创建 Connection 对象,但不将该对象分配给对象变量。但是,如果正在通过同一个连接打开多个 Recordset 对象,应显式地创建和打开 Connection 对象,由此将 Connection 对象分配给对象变量。如果打开 Recordset 对象时未使用此对象变量,那么即使传递同一个连接字符串,ADO 也将为每个新的 Recordset 创建一个新的 Connection 对象。

可以根据需要创建任意多个 Recordset 对象。

当打开 Recordset 时,当前记录位于第一个记录(如果有),BOF 和 EOF 属性设置为 False。如果没有记录,BOF 和 EOF 属性被设置为 True。

假定提供者支持相关的功能,则可以使用 MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法,Move 方法,以及 AbsolutePosition、AbsolutePage 和 Filter 属性来重新定位当前记录。仅向前的 Recordset 对象只支持 MoveNext 方法。当使用 Move 方法访问每个记录(或枚举 Recordset)时,可以使用 BOF 和 EOF 属性来确定移动是否已经超出了 Recordset 的开始或结尾。

Recordset 对象支持两种类型的更新:立即更新和批更新。使用立即更新时,一旦调用 Update 方法,对数据所作的所有更改便被立即写入基本数据源。也可以用 AddNew 和 Update 方法将值的数组作为参数传递,同时更新记录中的多个字段。

如果提供者支持批更新,可以让提供者把对多个记录所作的更改存入缓存,然后用 UpdateBatch 方法在单个调用中将它们传送到数据库。这种情况适用于用 AddNew、Update 和 Delete 方法进行的更改。调用 UpdateBatch 方法之后,可以用 Status 属性检查数据冲突并加以解决。

注意   要在不使用 Command 对象的情况下执行查询,请将查询字符串传递给 Recordset 对象的 Open 方法。但是,当要持久保留并重新执行命令文本,或者要使用查询参数时,需要使用 Command 对象。

Mode 属性控制访问权限。

Fields 集合是 Recordset 对象的默认成员

3.5.1.4 Execute 方法 (ADO Connection)

执行指定的查询、SQL 语句、存储过程或提供者特有的文本。

语法

对于不是以行返回的命令字符串:

connection.Execute CommandText, RecordsAffected, Options

对于以行返回的命令字符串:

Set recordset = connection.Execute (CommandText, RecordsAffected, Options)

返回值

返回 Recordset 对象引用。

参数

CommandText   String 值,包含要执行的 SQL 语句、表名称、存储过程、URL 或提供者特有的文本。

RecordsAffected   可选。Long 变量,提供者向其返回操作影响的记录数目。

Options   可选。Long 值,指示提供者计算 CommandText 参数的方式。可以是一个或者多个 CommandTypeEnum 或 ExecuteOptionEnum 值。

说明

使用 Connection 对象的 Execute 方法可以执行在指定连接的 CommandText 参数中传递给该方法的查询。如果 CommandText 参数指定按行返回的查询,那么执行产生的任何结果都将存储在新的 Recordset 对象中。如果此命令不是以行返回的查询,提供者将返回关闭的 Recordset 对象。

返回的 Recordset 对象始终是只读的、仅向前的游标。如果需要具有更多功能的 Recordset 对象,应先创建具有所需属性设置的 Recordset 对象,然后使用 Recordset 对象的 Open 方法执行查询并返回所需的游标类型。

CommandText 参数的内容是提供者特有的,可以是标准的 SQL 语法或提供者支持的任何特殊命令格式。

此操作结束时将发出 ExecuteComplete 事件。

3.5.1.5 Open 方法

Open 方法 (ADO Connection):

 使用 Connection 对象的 Open 方法建立到数据源的物理连接。当本方法成功完成后,该连接便成为有效连接,您可以对它发布命令并处理结果。

使用可选的 ConnectionString 参数指定包含一系列由分号隔开的 argument = value 语句的连接字符串,或指定用 URL 标识的文件或目录资源。ConnectionString 属性自动继承用于 ConnectionString 参数的值。因此,您既可以在打开前设置 Connection 对象的 ConnectionString 属性,也可以在调用 Open 方法过程中使用 ConnectionString 参数设置或覆盖当前连接参数。

如果同时在 ConnectionString 参数和可选的 UserID 和 Password 参数中传递用户和密码信息,那么 UserID 和 Password 参数将覆盖在 ConnectionString 中指定的值。

当结束了对打开的 Connection 的操作时,请使用 Close 方法释放所有相关的系统资源。关闭对象并不是将其从内存中删除,将来还可以更改其属性设置和用 Open 方法再次打开。若要从内存中彻底删除对象,请将对象变量设置为 Nothing

Open 方法 (ADO Recordset):

用 Recordset 对象的 Open 方法打开表示记录的游标,这些记录来自基本表、查询结果或先前保存的 Recordset。

用可选的 Source 参数指定使用下列内容之一的数据源:Command 对象变量、SQL 语句、存储过程、表名、URL 或完整的文件路径名。如果 Source 是文件路径名,它可能是完整路径(“c:\dir\file.rst”)、相对路径(“..\file.rst”)或 URL(“https://files/file.rst”)。

ActiveConnection 参数对应于 ActiveConnection 属性,并指定在哪个连接中打开 Recordset 对象。如果传递此参数的连接定义,ADO 将用指定的参数打开新连接。打开 Recordset 后,可以更改此属性的值以便将更新发送到另一个提供者。或者,可以将此属性设置为 Nothing(在 Microsoft Visual Basic 中)以断开 Recordset 与所有提供者的连接。

对于直接对应于 Recordset 对象的属性的其他参数(Source、CursorType 和 LockType),参数与属性的关系如下:

· 打开 Recordset 对象前,属性为读/写。

· 只有在执行 Open 方法过程中传递对应参数时,才使用该属性设置。如果传递某个参数,它将覆盖对应的属性设置,属性设置将用该参数值进行更新。

· 打开 Recordset 对象后,这些属性变为只读。

注意   对于其 Source 属性被设置为有效 Command 对象的 Recordset 对象,即使 Recordset 对象未打开,ActiveConnection 属性也是只读的。 

如果在 Source 参数中传递 Command 对象并且传递 ActiveConnection 参数,将发生错误。Command 对象的 ActiveConnection 属性必须已被设置为有效的 Connection 对象或连接字符串。

如果在 Source 参数中传递的不是 Command 对象,可以用 Options 参数优化 Source 参数的计算。如果未定义 Options 参数,系统性能将会降低,因为 ADO 必须调用提供者来确定该参数是 SQL 语句、存储过程、URL 还是表名。如果知道正在使用的 Source 的类型,设置 Options 参数可以指示 ADO 直接跳至相关代码。如果 Options 参数与 Source 类型不匹配,将发生错误。

小区物业管理系统设计与实现[点击下载]

评论