购买

¥30.0

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 ASP动态网页设计教程(1)

ASP动态网页设计教程(1).ppt

ASP动态网页设计教程(1)

烟雨梦兮
2018-10-14 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《ASP动态网页设计教程(1)ppt》,可适用于IT/计算机领域

ASP动态网页设计教程第章ASP设计基础第章HTML语言第章JavaScript脚本语言介绍第章VBScript脚本语言介绍第章ASP的内置对象第章ASP组件第章ASP的数据库存取组件及ADO技术第章ASP动态网页设计开发实例通用企业网站模板程序第章ASP设计基础Web基础Web概述Web常用术语、、WEB服务器技术ASP基础什么是ASPASP的运行环境及安装创建虚拟目录ASP语法简介ASP的一个简单实例ASP文件的基本构成和约定ASP的开发工具及调试技巧ASP的开发工具ASP的调试技巧Web概述   Web(WorldWideWeb)也称万维网是Internet上一个非常重要的信息资源网产生于世纪年代初。它遵循超文本传输协议以超文本或超媒体的形式传送各种各样的信息为用户提供了一个具有友好的图形化界面Web页以查阅Internet上的信息文档。Web常用术语  Web页面:    就是通常在浏览器中所看到的网页其实是一个单一的文件。  网页:    就是用HTML编写的文本文件包含有文字、表格、图像、链接、声音和视频等。  网站:    就是由若干网页按一定方式组织在一起放在服务器上提供相关信息资源。  主页:    有时也称首页是网站的第一个页面。通常总是和一个URL网址相对应引导用户浏览网站。Web常用术语(续上)  URL(UniformResourceLocator):    即统一资源定位器是一种唯一标识Internet上计算机、目录和文件的位置的命名规则。它由资源类型、存放资源的主机地址和端口以及资源目录和文件名构成。  具体如下:    资源类型表示信息传输的协议如http、ftp等。    主机地址即为提供资源的主机IP地址或域名地址。    端口表示某一服务器在该主机上所使用的TCP端口。    目录表示提供服务的信息资源所在的目录。    文件名由基本文件名和扩展名两部分构成。例如:http:wwwstudentcom:studydefaulthtml    ↑     ↑       ↑  ↑    ↑  资源类型 主机地址    端口目录 文件名Web常用术语(续上)  HTTP(HypertextTransferProtocol):    超文本传输协议是Internet上访问WWW信息资源的一种协议用来传输多媒体信息。    HTML(通常中间层都会是一个逻辑接口层而数据存取组件也都是属于中间层。    随后问世的就是所谓的WindowsDNA架构─我们现在将其称为NETServer系统。Microsoft定义了统一的数据存取模型这种数据存取模式将重点放在数据本身的内容而不是数据的格式和储存的媒体这个模型我们称其为UniversalDataAccess(UDA)而这个模型则是透过OLEDB的架构来实作。    Microsoft设计了ADO的机制以供程序开发人员以简单方式来存取OLEDB透过VisualBasic(VB)或是ActiveServerPage(ASP)等COM组件就可以通过ADO来存取数据。ADO经过了数年的革新进步到了ADO的版本版新增了许多的功能其中最重要的就是对于XML的支持。数据库的建立方法    利用SQLServer的企业管理器可以方便的建立数据库。    下面介绍如何在SQLServer的企业管理器中创建数据库以建立STUDENT数据库为例。    运行企业管理器展开SQLServer组会看到一个SQLServer服务器一般的名字为(local)(WindowsNT)展开出现图所示。    右击数据库在出现的菜单中点击“新建数据库(B)…”子菜单弹出数据库属性对话框如图所示    在名称栏输入student,其它属性不变按确定就可以创建数据库。数据源DSN的设置方法    在创建数据库脚本之前必须提供一条使ADO定位、标识和与数据库通讯的途径。数据库驱动程序使用DataSourceName(DSN)定位和标识特定的ODBC兼容数据库将信息从Web应用程序传递给数据库。    典型情况下DSN包含数据库配置、用户安全性和定位信息且可以获取WindowsNT注册表项中或文本文件的表格。    通过ODBC您可以选择希望创建的DSN的类型:    ()用户DSN    ()系统DSN    ()文件DSN。    用户和系统DSN存储在WindowsNT注册表中。系统DSN允许所有的用户登录到特定的服务器上去访问数据库而用户DSN使用适当的安全身份证明限制数据库到特定用户的连接。文件DSN用于从文本文件中获取表格提供了对多用户的访问并且通过复制DSN文件可以轻易地从一个服务器转移到另一个服务器。数据源DSN的设置方法(续上)    通过在Windows的“开始”菜单打开“控制面板”进入管理工具您可以创建基于DSN的文件。    双击“数据源(ODBC)”图标弹出ODBC数据源管理器对话框    选择“系统DSN”属性页单击“添加…”弹出创建新数据源对话框    在创建新数据源对话框中选择数据库驱动程序SQLSERVER然后单击“完成”。弹出创建到SQLSERVER的新数据源对话框如图:    在图的名称栏输入student描述栏输入学生库服务器栏选择(local)点击下一步弹出对话框选择登录设置:数据源DSN的设置方法(续上)  点击下一步弹出对话框如图所示。  选中“更改默认的数据库”选择student单击下一步出现对话框如图所示。  单击完成数据源就配置好了接下来出现连接测试对话框如图所示。  可以单击“测试数据源(T)…”按钮测试配置是否正确。如果连接成功按确定配置结束。结构化查询语言SQL    结构化查询语言(StructuredQueryLanguage,SQL)是一种关系数据库的标准语言它包括查询、定义、操作和控制个部分是一种功能集权、应用广泛的数据库语言。    当前几乎所有的关系数据库软件都支持SQL软件厂商都对SQL的基本命令集进行了扩充。SQL使用灵活、学习方便、语义直观。年美国国家标准协会公布第一个SQL标准(SQL)目前最新的标准是于年制定的SQL。    SQL的特点主要有:    SQL语言是一种关系数据库语言提供数据的定义、查询、更新和控制等功能。功能强大、可以完成多种数据库操作    SQL语言不是一个应用程序开发语言它只提供对数据库的操作功能可作为交互式语言独立使用也可作为子语言嵌入宿主语言中使用成为应用开发语言的一部分。    有利于各种数据库之间交换数据有利于程序的移植有益于实现程序和数据建的独立性有利于实施标准化。    书写简单、易学易用。结构化查询语言SQL(续上)  SQL语言通常分为如下四类:  ()数据定义语言(DDL)  创建、修改或删除数据库中的各种对象包括表、视图、索引等如表所示。  ()查询语言(QL)  按照指定的组合、条件表达式或排序检索已存在的数据库中的数据但并不改变数据库中的数据。  语句为:SELECT…FROM…WHERE结构化查询语言SQL(续上)  ()数据操纵语言(DML)    对已经存在的数据库进行记录的插入、删除、修改等操作。    主要语句有:      INSERT      UPDATE      DELETE  ()数据控制语言(DCL)    用来授予或收回访问数据库的某种特权控制数据操纵事务的发生时间及效果对数据库进行监视。    主要语句有:      GRANT      REVOKE      BEGINTRANSACTION、      COMMITTRANSACTION      ROLLBACKTRANSACTION查询语句Select  格式:  下面对SELECT命令进行一些说明:    命令的含义是从FROM字句指定的基本表或视图中根据WHERE字句的条件表达式查找出满足条件的记录按照SELECT字句指定的目标列表达式选出元组中的属性值形成结果集。    如果有GROUPBY子句则将结果按照其后指定的列名的值进行分组该属性列值相等的元组为一个组    如果GROUPBY子句带有短语HAVING则只有满足短语指定田间的分组才会输出。    如果有ORDERBY子句则结果表要按照其后指定的列的值来进行升序(ASC)或降序(DESC)排列。    目标列表达式可以是“列名,列名,…”的形式如果FROM字句指定了多个表则列名应是“表名列名”的形式    目标列表达式也可以是“列名列名”、“列名列名”、“列名*列名”、“列名列名”等形式    目标列表达式还可以使用SQL提供的库函数形成表达式常用的函数如下:       COUNT(*):统计记录条数      COUNT(列名):统计一个列值个数       SUM(列名):累计数值型列的综合   AVG(列名):对某一数值型列求均值       MAX(列名):计算列的最大值 MIN(列名):计算列的最小值SELECTALL|DISTINCTTOPnPERCENTWITHTIES<目标列表达式>,<目标列表达式>,…FROM<基本表名或视图名>,<基本表名或视图名>,…WHERE<条件表达式>GROUPBY<列名>,<列名>,…HAVING<条件表达式>ORDERBY<列名>,<列名>,…ASC|DESC插入语句InsertInto    向表中插入数据命令是通过向具体的记录插入常量数据得到的。插入记录的简单语句格式为如下:   INSERTINTO<表名>(<列名>,<列名>,<列名>,…)VALUES(<值>,<值>,<值>,…) 【例】向学生表中插入一条记录。insertinto学生表values('','王妍','女','','机械',)更新语句Update   更新数据的语句格式一般如下:UPDATE<表名>SET<列名>=<表达式>,<列名>=<表达式>,…WHERE<条件> 【例】将学生于明的成绩改为。UPDATE学生表SET成绩=WHERE姓名=于明删除语句Delete    删除命令比较简单删除是对记录操作不能删除记录的部分属性。一次可以删除一条或若干条甚至将整个表的所有记录删除只保留表的结构定义。    其基本命令格式如下:DELETEFROM<表名>WHERE<条件> 【例】删除学生表中学号为''的学生。  DELETEFROM学生表WHERE学号=''创建表语句Createtable  创建表的命令格式如下:    CREATETABLE<表名>(<列名><列类型>       ,<列名><列类型>,<列名><列类型>        …       ) 【例】创建学生表。    CREATETABLE学生表(           学号char(),           姓名varchar(),           性别char(),           出生日期datetime,           学院varchar(),           成绩int             )删除表语句Droptable    删除表格命令将从数据库中彻底删除表的定义和表中的所有记录所以在使用前仔细考虑删除表格的命令格式如下:DROPTABLE<TABLENAME>ADO概述    ADO(ActiveXDataObjects)是由微软公司推出的以ActiveX技术为基础的数据存取方法。ADO的主要特点是使用更加容易访问速度更快而对磁盘和存储容量的要求小ADO支持建立各种客户服务器模式与基于Web的应用程序具有远程数据服务RDS(RemoteDataService)的特性通过RDS能够在一次往返中将服务器端的数据传送到客户端的应用程序或WEB页面中并在客户端对数据进行处理后立即更新服务器端的数据。    采用ADO所基于的OLEDB技术,可以对电子邮件、文本文件、数据表格等各类数据通过统一的接口API(ApplicationProgrammingInterface)接口进行存取是远程数据存取的一个主要发展方向。    对于异种数据库的访问首先需要一个简单而统一的应用程序接口(API),应用程序通过它访问和修改各种各样的数据。典型的数据源是支持ODBC(OpenDatabaseConnectivivity)标准的关系型数据库通过一系列SQL命令进行数据操作。问题是数据源可能是一个简单的文本文件也可能是来自不同种类甚至特别定义的数据库的一个集合。而且访问和修改数据的方法不可能预先确定。    解决这个问题的方法就是OLEDB,这是一个系统级的数据库编程接口,它提供了一系列有关数据库管理系统服务的统一的COM(ComponentObjectModel)接口。通过OLEDB可以存取异构的关联和非关联信息包括电子邮件、文件系统、文本、图形、图形化数据以及客户定制对象。    ADO就是连结OLEDB与应用程序的数据操作接口。ADO定义一个设计原型其中概括了一系列进行数据存取和更新所必须的行为说明。设计原型表示了一个对象模型包括实现原型所对应的对象集定义进行数据操作的对象方法表示数据或对象方法行为控制的属性等。与对象相关的事件说明了将要发生或已经发生的数据操作过程。    在利用Ado开发数据库过程中会用到大量的ADOVB常量微软提供了常量文件ADOVBINC只要在ASP文件的开发包含该文件就可以使用已定义的常量。建立Connection对象    在使用对象之前首先必须创建它。创建一个connection对象和真正打开connection是两个不同的概念。我们可以这样来理解创建一个connection对象相当于定义了一个可以用于与数据源的变量但是这时候还没有真正的数据源建立连接。只有在打开connection以后在真正的与数据源建立了连接才可以对数据源进行查询、添加、删除操作。    创建connection对象主要有两种方法:    方法一:调用Server对象的CreateObject方法     Setobjcn=ServerCreateObject("adodbconnection")    方法二:利用<object>标记来创建connection对象     <objectRUNAT=ServerID=objcn            PROGID="adodbconnection">     <object>    RUNAT=server表示在服务器端创建对象如果没有该属性则在客户端执行所以在用这种方法创建对象时不能忽略该属性。Connection对象的属性和方法、Connection对象的属性    Connection对象的属性控制高层的数据处理如ADO如何与数据源提供者相连接以及事务如何被执行等。Attributes属性CommandTimeout属性ConnectionString属性ConnectionTimeout属性DefaultDatabase属性Mode属性Provider属性Version属性、Connection对象的方法Open方法Close方法Execute方法BeginTrans方法CommitTrans方法RollbackTran方法利用Connection对象存取数据库【例】往学生表中加入一个学生其基本信息:学号: 姓名:丁晓 性别:女出生日期:学院:机械    成绩:<onerrorresumenextdimobjcndimsqlsetobjcn=ServerCreateObject("ADODBCONNECTION")objcnopen"dsn=studentuid=sapwd="sql="insertinto学生表(学号,姓名,性别,出生日期,学院,成绩)values(‘’,’丁晓’,’女’,’’,’机械’,)"objcnexecutsqlobjcnclosesetobjcn=nothing>利用SQL语句向数据库中插入数据可以看到写SQL语句虽然比较烦琐但是很灵活执行速度快。利用Connection对象存取数据库(续上)【例】显示学生表中所有学生的基本信息。<onerrorresumenextdimobjcndimobjrsdimsqlsetobjcn=ServerCreateObject("ADODBCONNECTION")objcnopen"dsn=studentuid=sapwd="sql="select学号,姓名,性别,出生日期,学院,成绩from学生表"setobjrs=objcnexecut(sql)responsewrite"<table><tr><tdcolspan=>学生表<td><tr>"responsewrite"<table><tr><td>学号<td><td>姓名<td><td>性别<td>"responsewrite"<td>出生日期<td><td>学院<td><td>成绩<td><tr>"dowhilenotobjrseofresponsewrite"<tr>"responsewrite"<td>"objrs("学号")"<td>"responsewrite"<td>"objrs("姓名")"<td>"responsewrite"<td>"objrs("性别")"<td>"responsewrite"<td>"objrs("出生日期")"<td>"responsewrite"<td>"objrs("学院")"<td>"responsewrite"<td>"objrs("成绩")"<td><tr>"loopobjrscloseobjcnclosesetobjrs=nothingsetobjcn=nothing>在上面的例子中用到了recordset对象这个对象将在下一节介绍。事务处理    事务是一个最小的工作单元不论成功与否都作为一个整体进行工作。不会有部分完成的事务。由于事务是由几个任务组成的因此如果一个事务作为一个整体是成功的则事务中的每个任务都必须成功。如果事务中有一部分失败则整修事务失败。    当事务失败时系统返回到事务开始前的状态。这个取消所有变化的过程称为“回滚”(rollback)。例如如果一个事务成功更新了两个表在更新第三个表时失败则系统将两次更新恢复原状并返回到原始的状态。    为声明一个网页是事务性的使用下列指令:<TRANSACTION=value>    对TRANSACTION指令可能的设置有:Disabled告诉COM不希望在事务中涉及组件。RequiresNew即使已存在一个事务也启动一个新的事务。Required如果不存在事务就启动一个新的如果存在就参与到其中。Supported不启动一个事务但是如果事务已经存在就参与它。NotSupported即使存在事务也不参与事务。    这些值与使用组件服务浏览器为每个组件设置的TransactionSupport属性的作用相同。    TRANSACTION指令必须处在ASP页面脚本的第一行通常由LANGUAGE指令包含。如果这之前在页面中有任何内容将产生脚本错误。如同组件中的事务一样如果到达代码的最后一行还没有提交或终止则COM假定提交并把变化写入磁盘。另外由页面调用的每个对象能够使用同一ASP页面的ObjectContext对象参与事务通常就是这么做的。事务处理    当编写一个事务性ASP脚本时你可能想直接影响脚本的事务的结果。像为事务编写的组件一样ASP页也能利用ObjectContext对象。自从发表了ASP以后就可以利用这个对象它为开发者需要的所有事务处理例程提供功能。服务器组件参与事务时访问的就是这个对象它包含SetAbort和SetComplete方法。    下列代码显示了在一个事务性Web页中如何实例化两个COM对象和一个事务并在这两个对象上调用一个方法。    注意页面顶部的事务设置表明请求一个事务。正是该设置使该页面像COM组件一样参与同一事务。事实上只要COM组件的TransactionSupport属性为Required或Supported它们就变成由ASP页启动的事务的一部分。<Language=VBSCRIPTTRANSACTION=Required><HTML><dimobjAdimobjBsetobjA=serverCreateObject("studentclassA")setobjB=serverCreateObject("studentclassB")IfNotobjAGo=thenObjectContextSetAbortelseifnotobjBGo=thenObjectContextSetAbortelseObjectContextSetCompleteendifsetobjA=NothingsetobjB=Nothing><HTML> 用来返回一个数据库记录集的Recordset对象【例】显示学生表的字段名。<dimobjrsdimsqldimisetobjrs=serverCreateObject("adodbrecordset")sql="select学号,姓名,性别,出生日期,学院,成绩from学生表"objrsopensql,"dsn=studentuid=sapwd="responsewrite"<tableborder=><tr><tdalign=centercolspan=>学生表<td><tr><tr>"fori=toobjrsfieldscountresponsewrite"<td>"objrsfields(i)name"<td>"nextresponsewrite"<tr>"dowhilenotobjrseofresponsewrite"<tr>"fori=toobjrsfieldscountresponsewrite"<td>"objrsfields(i)value"<td>"nextresponsewrite"<tr>"objrsmovenextloopresponsewrite"<table>">    该例子使用fields来计算recordset有几列并且读取列名和每列的值显示在HTML页面上。运行结果如图所示:建立Recordset对象  建立Recordset对象的方法主要有三种方法:  方法一:通过调用connectionexecute返回recordset    <setobjrs=objcnexecute(sql)>  方法二:使用serverCreateObject来创建    <setobjrs=servercreateobject("adodbrecordset")>  方法三:使用object标记    <objectRUNAT=ServerID=objrsPROGID="adodbrecordset">      ……    <object>Recordset对象的属性和方法、Recordset对象的属性ActiveConnection属性Source属性CursorType属性LockType属性Filter属性CacheSize属性MaxRecords属性BOF和EOF属性RecordCount属性BookMark属性AbsolutePosition属性PageSize属性AbsolutePage属性PageCount属性EditMode属性Status属性Recordset对象的属性和方法、Recordset对象的方法Open方法Close方法Clone方法MoveFirst、MoveLast、MoveNext、MovePrevious方法Move方法GetRows方法NextRecordSet方法Requery方法Resync方法AddNew方法Delete方法Update方法CancelUpdate方法Supports方法利用Recordset对象查询记录    尽管Connection对象简化了连接数据库和查询任务但Connection对象仍有许多不足。确切地说检索和显示数据库信息的Connection对象不能用于创建脚本您必须确切知道要对数据库作出的更改然后才能使用查询实现更改。    对于检索数据、检查结果、更改数据库ADO提供了Recordset对象。正如它的名称所暗示的那样Recordset对象有许多您可以使用的特性根据您的查询限制检索并且显示一组数据库行即“记录”。Recordset对象保持查询返回的记录的位置允许您一次一项逐步扫描结果。    根据Recordset对象的指针类型属性设置您可以滚动和更新记录。数据库指针可以让您在一组记录中定位到特定的项。指针还用于检索和检查记录然后在这些记录的基础上执行操作。Recordset对象有一些属性可用于精确地控制指针的行为提高您检查和更新结果的能力。例如您可以使用CursorType和CursorLocation属性设置指针的类型将结果返回给客户端应用程序(结果通常保留在数据库服务器上)并显示其他用户对数据库的最后一次更改。分页显示数据    目前的电子公告板程序为了提高页面的显示速度一般不会将所有的帖子全部在一页中罗列出来而是将其分成多页显示每页显示一定数目的帖子数    那么如何实现将数据库的查询结果分页显示呢?主要有两种方法:    ()将数据库中所有符合查询条件的记录一次性的都读入recordset中存放在内存中然后通过ADORecordset对象所提供的几个专门支持分页处理的属性:PageSize(页大小)、PageCount(页数目)以及AbsolutePage(绝对页)来管理分页处理。    ()根据用户的要求每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。    两者的主要差别在于前者是一次性将所有记录都读入内存然后再根据指示来依次做判断分析从而达到分页显示的效果而后者是先根据指示做出判断并将规定数目的符合查询条件的记录读入内存从而直接达到分页显示的功能。    这里我们主要介绍第一种方法。分页显示数据(实例)【例】分页显示学生表。subshowpage()'onerrorresumenextdimpagesizedimpagestartdimpagenodimpagetotaldimidimjpagesize=pageno=cint(request("pageno"))ifpageno=thenpageno=dimobjcndimobjrssetobjcn=serverCreateObject("adodbconnection")setobjrs=serverCreateObject("adodbrecordset")objcnopen"dsn=studentuid=sapwd="sql="select学号,姓名,性别,出生日期,学院,成绩from学生表"objrsopensql,objcn,,pagestart=pagesize*(pageno)pagetotal=objrsrecordcountpagesizeif(pagetotal<objrsrecordcount)then  pagetotal=pagetotalendifobjrsmovepagestartresponsewrite"<tableborder=><tr><tdalign=centercolspan=>学生表<td><tr><tr>"fori=toobjrsfieldscount  responsewrite"<td>"objrsfields(i)name"<td>"nextresponsewrite"<tr>"j=dowhile(notobjrseof)and(j<=pagesize)  responsewrite"<tr>"  fori=toobjrsfieldscount    responsewrite"<td>"objrsfields(i)value"<td>"  next  responsewrite"<tr>"  objrsmovenext  j=jloopresponsewrite"<table>"if(pageno>)then  responsewrite"<ahref=""listasppageno="pageno""">上一页<a>"else  responsewrite"上一页"endifif(pageno<pagetotal)then  responsewrite"<ahref=""listasppageno="pageno""">下一页<a>"else  responsewrite"下一页"endifobjrscloseobjcnclosesetobjrs=nothingsetobjcn=nothingendsub>利用Recordset对象更新数据库  、添加记录     要在记录集中添加记录使用AddNew方法。有两种使用AddNew的方法。第一种没有任何参数仅仅调用AddNew在记录集的最后添加一个空记录。在调用Update方法保存所做的更改之前可以随意地修改字段中的数据:Withobjrsopen‘学生表’,objcn,adoOpenDynamic,adLockOptimistic,adCmdTableDirectAddNewFields("学号")=''Fields("姓名")='王丹'Fields("性别")='女'Fields("出生日期")=''Fields("学院")='电子'Fields("成绩")=Updateendwith     这添加了一条新纪录设置六个强制型的字段值。     另一种方法是使用AddNew方法的可选参数这是两个数组一个是字段名另一个是字段的值。Withobjrsopen'学生表',objcn,adoOpenDynamic,adLockOptimistic,adCmdTableDirectAddNewArray('学号','姓名','性别','出生日期','学院','成绩'),Array('','王丹','女','','电子','')endwith利用Recordset对象更新数据库  、编辑记录    编辑记录与添加记录的方法相似不同之处在于不需要调用AddNew方法:sql="select学号,姓名,性别,出生日期,学院,成绩from学生表""where学号=''"Withobjrsopensql,objcn,adoOpenDynamic,adLockOptimistic,adCmdTextFields("出生日期")=''Updateendwith  、删除记录    删除记录需调用Delete方法。删除哪一条记录取决于可选的参数可以是下面AffectEnum常数中的一个:adAffectCurrent:删除当前记录缺省操作。adAffectGroup:删除匹配当前过滤条件的所有记录。adAffectAll:删除记录集中的全部记录。AdAfffectAllChapters:删除所有段(chapter)中的记录。    最简单的调用形式是:objrsdelete    这将删除当前记录。如果有一个过滤条件并想删除所有匹配该条件的记录那么仅需加上适当的常数:objrsdeleteadAffectGroupFields集合和Field对象    在创建一个RecordSet实例后里面总是包含者一些列而其中每一列就对应着一个字段因此Fields集合就对应着创建的RecordSet中的每一个字段就可以利用这个集合的一些属性来方便实际的编程。  、Fields集合的属性  Count属性    返回RecordSet中的字段的个数列出Recordset中的所有字段的名字:fori=toobjrsfieldscountresponsewriteobjrsfields(i)name"  "next  Item属性   根据名称或序号返回Fields集合的特定成员field。Fields集合和Field对象(续上)、Field集合的属性ActualSize属性:使用ActualSize属性可返回Field对象值的实际长度。Attributes属性:Attributes属性为只读其值可能为以下任意一个或多个FieldAttributeEnum值的和如表所示。DefineSize属性:返回反映某个字段定义大小(按字节数)的长整型值。Name属性:指示字段的名称。NumericScale属性:设置或返回字节值指示数字值所精确到的小数点位数。OriginalValue属性:使用OriginalValue属性可返回当前记录中某字段的原始字段值。Precision属性:使用Precision属性可确定表示数字Field对象值的最大位数。UnderLyingValue属性:指示数据库中Field对象的当前值。Value属性:Field对象的缺省属性用来返回字段值Fields集合和Field对象(续上)、Field集合的方法  AppendChunk方法  语法:objectAppendChunkData    将数据追加到大型文本、二进制数据Field对象  GetChunk方法  语法:variable=fieldGetChunk(Size)    返回大型文本或二进制数据Field对象的全部或部分内容。建立Command对象    要独立于先前已定义的Connection对象创建Command对象首先将Command对象的ActiveConnection属性设置为有效的连接字符串。ADO仍将创建Connection对象但它不会将该对象赋给对象变量。但是如果正在将多个Command对象与同一个连接关联则必须显式创建并打开Connection对象这样即可将Connection对象赋给对象变量。如果没有将Command对象的ActiveConnection属性设置为该对象变量则即使使用相同的连接字符串ADO也将为每个Command对象创建新的Connection对象。<dimobjcndimobjcmdsetobjcn=serverCreateObject("adodbconnection")objcnopen"dsn=stduentuid=sapwd="setobjcmd=serverCreateObject("adodbcommand")objcmdactiveconnection=objcn>Command对象的属性和方法  、Command对象的属性    activeConnection属性:指示command对象的连接信息。这个属性设置或返回包含了定义连接或Connection对象的字符串。默认情况下为对象引用。    commandText属性:包含要根据提供者发送的命令的文本一般为SQL语句、存储过程或者是一个表名。    commandTimeout属性:指示在终止尝试和产生错误之前执行命令期间需等待的时间默认值为秒。    commandType属性:指示Command对象的类型使用CommandType属性可优化CommandText属性的计算如所示。    prepared属性:指示执行前是否保存命令的编译版本,  、Command对象的方法    createParameter方法    direction方法    size方法    value方法利用Command对象存取数据库    Command对象特定地为处理各种类型的命令而设计特别是那些需要参数的命令。与Connection对象相似Command对象可以运行返回记录集和不返回记录集两种类型的命令。实际上如果命令不含有参数那么它并不关心是使用Connection对象还是Command对象还是Recordset对象。    对于一个返回记录集的命令可使用Execute方法。然而与Connection对象不同必须使用CommandText属性而不能在Execute方法中使用命令文本。SetobjCmd=ServerCreateObject("Adodbcommand")objCmdCommandText='学生表'setobjrs=objCmdexecute    这是告诉Command对象去执行一个简单的、返回一个只读记录集的命令的最简便方法。非参数查询和参数查询    在数据查询中有时候要调用存储过程这个时候参数就显得尤为重要。需要用到command的createParameter方法来创建Prameter对象。Parameters集合和Parameter对象、Parameters的属性count属性:指示parameters集合中parameter对象的个数item属性:根据名称或序号返回集合的特定成员它有一个索引可以是所有参数在Parameters集合中的参数值也可以是参数的名字。、Parameters的方法append方法语法:ParametersappendparameterObject功能:往Parameters集合中增加parameter对象delete方法语法:ParametersDeleteIndex功能:从Parameters集合中删除对象。Index字符串代表将要删除对象名称或者对象在集合中的顺序位置(索引)。refresh方法语法:ParametersRefresh在某些对象的Properties集合上使用Refresh方法可使用提供者提供的动态属性填写集合这些属性只将功能性信息提供给ADO支持的内置属性之外的提供者。Parameters集合和Parameter对象(续上)、Parameter的属性    attributes属性:Attributes属性为读写并且其值可能为以下任意一个或多个ParameterAttributesEnum值的和如表所示。    direction属性:指示parameter所标明的是输入参数、输出参数还是既是输出又是输入参数或该参数是否为存储过程返回的值表所示。    name属性:指示对象的名称    precision属性:指示在Parameter对象中数字值或数字Field对象的精度    size属性:表示Parameter对象的最大大小(按字节或字符)。    type属性:指示Parameter对象的数据类型系统定义的类型如表所示    value属性:指示赋给Parameter对象的值。、Parameter的方法    appendchunk方法    语法:objectAppendChunkData    功能:将数据追加到大型文本、二进制数据Parameter对象。    如果Parameter对象Attributes属性中的adFldLong位被设置为真则可以对该参数使用AppendChunk方法。Parameter对象上的第一个AppendChunk调用将数据写入参数覆盖任何现有数据随后Parameter对象上的AppendChunk调用可添加到现有的参数数据中。传送空值的AppendChunk调用则放弃所有参数数据。Errors集合的属性和方法包含所有的在对数据提供者操作过程中失败产生的Error对象、Errors集合的属性count属性指示Errors集合中错误对象的个数Item属性指示Errors集合中的每个具体的错误对象、Errors集合的方法clear方法用来清楚Errors集合中的所有成员一旦在连接中加入了Error对象就可以创建错误处理例程以便更高效地处理产生错误的原因。Error对象的属性description属性:包含与错误相关的文本信息。number属性:包含错误常量的长整型整数值source属性:标识产生错误的对象。在向数据源发出请求之后如果Errors集合中有多个Error对象则将会用到该属性SQLState属性:指示给定Error对象的SQL状态。nativeError属性:指示给定Error对象的、特定提供者的错误代码。helpFile和helpContext属性:指示与Error对象关联的帮助文件和主题。如果在HelpFile属性中指定了帮助文件则HelpContext属性被用于自动显示它所标识的帮助主题。如果没有得到相关主题则HelpContext属性返回零并且HelpFile属性返回零长度字符串("")第章ASP动态网页设计开发实例通用企业网站模板程序通用企业网站模板程序的功能分析建立数据库连接数据库通用企业网站模板程序的系统设计系统数据信息的实现主页的子栏目的显示以及新闻、产品、技术文档等信息的实现用户调查的实现访客留言簿的实现管理页面程序的实现通用企业网站模板程序的功能分析    开发网络程序时并不是越复杂越好要根据要求进行合理的设计过分复杂的设计不仅会浪费大量的精力和时间而且也会使访问者眼花缭乱、不知所措。鉴于这一考虑通用企业网站模板程序的设计原则就是简单实用、美观大方。    通过该系统的首页和管理页面大致实现的功能如下:()可以在首页远程调用指定的条数新闻()可以随意增删修改网站子栏目及其超链接()可以增删专题新闻、热点新闻、行业动态、技术文档以及产品图文信息等()可以智能模糊搜索相关信息内容()可以保存显示用户调查结果()在线更改管理员密码()在线更改网站版面风格如企业徽标LOGO广告BANNER条等()在线更改落款以及联系方式和版权信息()可以显示相关新闻可以指定。    此外还增加了一个通用的访客留言簿通过该留言簿可以给来访客户发表信息同时也可以给系统管理员删除垃圾信息。建立数据库    首先利用微软的ACCESS建立数据库文件tlzxmdb如图所示。    接着在此基础上建立相关的数据表其中:dtitle表保存网站子栏目名及超链接地址路径如图所示。system表保存网站本身的一些系统信息如网站标题、企业徽表LOGO、版面风格等如图所示。guest表保存企业留言簿信息如图所示。admin表保存系统管理员及其口令如图所示。news表保存企业相关的新闻信息及产品资料等如图所示。topic表保存专题栏目名如图所示。连接数据库    由于本系统是一通用企业网站模板程序故企业的名称、网页的标题以及版权信息等数据都要从数据库读取因而连接数据库就成了所有页面都必须要设置的工作其次新闻信息、产品信息、技术文档等的读取和添加都要先连接系统数据库文件tlzxmdb。    由于手工建立DSN数据源的方法比较烦琐故而本系统采用了不用DSN直接建立数据源的方法。具体实现如下:DimconncnpathSetconn=ServerCreateObject("ADODBConnection")cpath=ServerMapPath("datatlxxmdb")connOpen"Driver={MicrosoftAccessDriver(*mdb)}DBQ="cnpath    说明:    前两句:利用Server对象的CreateObject方法建立一个数据库存取组件的Connection对象实例conn。    第三句:利用Server对象的MapPath方法将数据库文件的相对路径转换成绝对路径。    第四句:执行conn对象的Open方法来打开数据库。其中第一项表示将打开的数据库类型是ACCESS数据库第二项表示打开的数据库的物理路径此处的前部分内容的拼写不能错否则将产生链接失败。系统数据信息的实现    为了便于企业网站的相关系统信息内容如页面标题、企业徽标、主页广告条以及版权和联系方法等几乎在所有的页面都采用系统数据库中的system数据表来显示然后在管理页面中由系统管理员对其进行修改。部分程序如下:<Dimrs,sqlSetrs=ServerCreateObject("ADODBRecordset")sql="SELECT*FromsystemOrderByidDESC"RSopensql,Conn,,>    说明:    前两句:利用Server对象的CreateObject方法建立一个数据库存取组件的Recordset对象实例rs。    第三句:利用SQL查询字符串sql以降序方式查询system数据表。    第四句:执行rs对象的Open方法来打开记录集这样在后面就可以使用该查询结果。  、页面标题、企业徽标以及广告条的实现  、版权及联系方法的实现主页子栏目的显示以及新闻、产品、技术文档等信息的实现子栏目的动态显示热点新闻、行业动态、技术文档、产品新贵及专题新闻等信息的动态显示本站新闻智能搜索及公告栏的显示用户调查的实现   网上用户调查就是让用户投票然后统计当前投票结果。图就是主页上的用户调查界面当选择一个选项点击“投票”后将提交给yhdctjasp页面该页面收到用户提交的信息后进行计数加并存到文本文件dataresult*txt中最终转到yhdcasp页面显示其统计结果如图所示。访客留言簿的实现    本留言簿首页fklyasp(如图所示)尽管很长但结构简单上面是一个添加留言表单下面是显示留言部分。填写留言完毕按确定后将传送到fklyaddasp去处理处理完毕后再引导回首页。管理页面程序的实现    管理页面程序由于只有系统管理员才具有管理权限故必须先登陆(如图所示)。    当系统管理员输入用户名和密码后进行验证。通过后将进入管理页面如图所示。管理页面程序的实现(续上)  、系统更改    图是管理页面中的系统更改界面systemasp在这些信息的边上都有辅助说明同时有些内容(如公告栏等)允许使用HTML标记以达到某些特殊效果(如换行、加粗体等)。当修改了其相关信息后可以按“提交”按钮提交给systemsaveasp。然后利用SQL的update语句进行更新系统信息。管理页面程序的实现(续上)  、密码更改    图是管理页面中的密码更改界面passmenuasp通过提交相关信息给passwordasp页面处理可以改变系统管理员的用户名和密码其实现技术基本同系统更改部分。管理页面程序的实现(续上)  、添加新闻    图是管理页面中的添加新闻信息界面newsaddasp通过提交相关信息给newssaveasp页面处理可以添加新闻信息到库中同时也把其进行了信息归类和专题归类这样在主页中就可以显示在相关栏目中(如属于“行业动态”类别的则就在“行业动态”部分显示)。其实现技术基本同系统更改部分只是在打开记录集后先增加了一条空记录(实现语句为:rsaddnew)然后相关信息赋给它再对其进行更新。管理页面程序的实现(续上)  、删除新闻     图是管理页面中的删除新闻信息界面newskillasp通过提交信息id号给yankillasp页面处理可以删除库中的该id号新闻信息。在该页面中一方面在右边显示了当前最新添加的新闻信息标题通过其可以查看到id号同时也采用了分页显示方法该技术见前面的“更多信息”页面(如newsmoreasp)部分另一方面还提供了一个“搜索”按钮(提交给keywordasp)可以输入新闻信息内容中的关键词来得到相关信息的id号并显示在右边供删除时决定该删除否其搜索技术见前面“新闻智能搜索”部分。管理页面程序的实现(续上)  、添删专题     图是管理页面中的添删专题栏目界面zhuantiaddasp通过提交专题id号给yantopickillasp页面处理可以删除库中的topic表里对应id号的专题栏目。执行该功能时请系统管理员要小心因为一旦删除后就无法恢复同时库中相对应的所有新闻信息的关联将丢失。一般来说此项功能只应用于某企业网站刚开始建立时使用添加功能录入相关专题一旦添加好其专题栏目就请不要在更改了。其相关技术见前面的数据库中表记录的添加和删除。管理页面程序的实现(续上)  、导航分类     图是管理页面中的导航分类界面dhflasp通过提交导航栏目id号给dhflkillasp页面处理可以删除库中的dtitle表里对应id号的导航栏目。同样执行该功能时请系统管理员也要小心一旦删除该导航栏目后就无法显示了但可以再次将导航名称和链接地址路径添加进去唯一不同就是表中导航id号不再是原来的了而是新的id号。通过导航栏目的添加功能可以随意的扩充网站子栏目。其相关技术也同前面的数据库中表记录的添加和删除

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/230

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利