分享
 
 
 

[原创]《ASP网页制作教程》笔记

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

〖张偶 2003年8月〗

《ASP网页制作教程》。王国荣 编著,人民邮电出版社。

打开MDB数据库的方法:先定义一个OpenMDB子程序,然后在主程序中调用。

<%

Option Explicit

Sub OpenMDB(dbname,pwd,conn)

‘dbname-数据库文件的相对路径,pwd-数据库文件的密码,conn-用户定义的Connection对象。

'对于没有密码的数据库,pwd值可任意。

dim connstr

Set conn = Server.CreateObject("ADODB.Connection")

connstr="Provider=Microsoft.Jet.OLEDB.4.0;" ‘指定OLE DB驱动程序

connstr=connstr & "Data Source=" & Server.MapPath(""&dbname&"") ‘指定数据源

connstr=connstr & ";Jet OLEDB:Database Password=" & pwd ‘指定密码

conn.Open connstr

End Sub Dim conn,rs

Call OpenMDB("vote.mdb","111",conn)

Set rs=Server.CreateObject("ADODB.Recordset")

rs.open "select * from vote",conn,2,2

%>

-----------------------------------------------------------------------

连接数据库时,若Microsoft提供有OLE DB驱动程序,就直接使用它,如Access。若没有提供,就需用数据库自己的ODBC驱动程序,如Foxpro。对不同的驱动程序来说,可能都有其专用的参数。

IIS/PWS 4.0只能存取Access97以前的数据库,而不能存取Access2000的数据库。

Microsoft宣称OLE DB驱动程序的执行效能优于ODBC驱动程序。

-----------------------------------------------------------------------

Cookies是记录在浏览器的信息,而其他ASP对象的信息存储在Server端,因此,只有在浏览器开始浏览Server的某一网页,而Server尚未下载任何数据给浏览器之前,浏览器才能与Server进行Cookie数据的交换。解决的办法是先将数据写到缓冲区。

由于在Cookie的生命周期中,只有关闭浏览器才会消失,而Session因有Timeout的设置,即使浏览器打开,中途也可能消失。因此,对于需要将数据分成各个阶段来输入的网页来说,使用Cookie对象来存放阶段性的数据比Session对象合适。

不同公司的浏览器Cookie是彼此不兼容的。

IE的Cookie存放在\windows\cookies\文件夹内。

Cookie生命周期的设置方法:

Response.Cookie("UserID")="comehope" : Response.Cookie("UserID").expires="2008/12/31"

-----------------------------------------------------------------------

网页中调用自己的链接:

<% myself=Request.ServerVariables("Path_info") %>

<A href="<% =myself %>?page=1">第一页</A>

-----------------------------------------------------------------------

Server对象概要

属性:

ScripTimeout 服务器连续处理脚本的最长时间,默认为90秒。

方法:

CreatObject 建立对象的实例

Excute 调用和执行另一个ASP脚本

GetLastError 建立发生错误的ASP Error对象

HTMLEncode 对HTML字串进行编码,可以用该方法显示HTML源代码

MapPath 指定物理路径。因为打开文件或数据库时,ASP规定必须指定文件的物理路径,该方法不支持相对目录标识符“.”和“..”。

Transfer 重定向到另一个脚本,来自第一个脚本的Request对象和其他对象的值都可以用于第二个脚本。

URLEncode 对地址进行编码

-----------------------------------------------------------------------

删除记录语句 rs.delete

由于delete方法会删除当前记录,因此调用delete方法之后,当前数据记录将不存在,我们必须再调用某方法将指针从此记录移开,方可再继续其他操作。

-----------------------------------------------------------------------

更新数据记录:先改变字段值,然后调用update方法,如:

rs("收盘价")=30.5

rs("成交量")=3589

rs.update

如果在未调用update方法前,指针从当前记录移开,ADO将自动调用update方法。

使用数组更新的方法:rs.update 字段名称数组,字段值数组。如:

Fieldname=Array("收盘价","成交量")

Fieldvalues=Array(30.5,3589)

rs.update Fieldname,Fieldvalues

在改变字段值之后,而未调用update方法之前,调用CancelUpdate方法会取消更新的数据。

-----------------------------------------------------------------------

添加记录的方法有修改记录的方法很相似,不同的是在此之前先用addnew方法建立一个缓冲区,系统会将此记录自动设置为当前记录,然后象修改记录一样,修改这个新记录的内容。如:

rs.addnew

rs("收盘价")=30.5

rs("成交量")=3589

rs.update

使用数组添加记录方法:rs.addnew 字段名称数组,字段值数组。

-----------------------------------------------------------------------

SQL Select语句的多种形式

select 字段列表 from 表

select 字段名 as 别名 from 表

select 字段名运算结果 as 别名 from 表

select * from 表 order by 字段列表 [desc]

注意:order by后的字段名称不可以是别名,如下面的语句是错误的;

select 学号,语文+数学 as 总成绩 from 成绩单 order by 总成绩

select top 10 * from 成绩单

select * from 表 where 条件表达式

select * from 表 where 姓名 like '王%' “%”代表0-15个字符

select * from 表 where 姓名 like '王_' “_”代表一个字符

select * from 表 where between 值1 and 值2

select * from 表 where 字段名 in(值1,值2,…)

若使用Access数据库,VB函数也可以用于where条件式中,如;

select * from 成绩单 where mid(姓名,2,1)="大"

选取姓名字段第二个字等于“大”的记录

在where表达式中使用变量;

数值变量; sql="select * from 股票行情表 where 收盘价 >" & vv

日期时间; sql="select * from 买卖记录 where 买卖日期=#" & vv & "#"

字符串: sql="select * from 股票行情表 where 股票代号='" & vv & "'"

-----------------------------------------------------------------------

若希望在重定义数组时保留数组元素的内容,需在数组名前加上Preserve保留字,例如:

ReDim x(5)

x(0)=10:x(1)=20

ReDim Preserve x(10)

-----------------------------------------------------------------------

Response对象概要

属性:

Buffer 是否先将数据写到缓冲区中。

ContentType 定义了要在响应主体中发送的数据类型,用户浏览器利用这一信息决定如何编译下载的HTTP响应内容。

IsClientConnected 只读属性,根据最近一次使用Response.write判断用户是否依然连接在服务器上。

集合:

Cookie

方法:

BinaryWrite 把二进制数据写到客户机上。

Clear 清空Buffer缓冲区。

End 结束浏览器下载。

Flush 输出缓冲区数据。

Redirect 重定向到另一个URL上。

Write 向HTTP响应写入信息。

-----------------------------------------------------------------------

一般在调试程序时会在其中夹杂显示中间结果的测试语句,但这一次测试没有问题并不保证以后就没有问题,这次把测试语句去掉,下次测试时又要写回去,为了避免这种情况,可以利用缓冲区来解决,如下:

Response.Buffer=True

''''''正常的程序

Response.Flush 输出此前程序运行的结果。

''''''这里是测试的语句

Response.Clear '若要输出以上测试结果只需将此句设为注释即可。

-----------------------------------------------------------------------

Application对象概要

集合:

Contents 包含所有应用程序级作用域的变量和对象,它有两个方法,Contents.Remove和Contents.RemoveAll,分别删除一个和所有变量。

方法:

Lock/UnLock 锁定Application对象。

事件:

OnStart/OnEnd 在应用程序开始和结束时被触发。

-----------------------------------------------------------------------

Session对象的使用必须配合浏览器的Cookies功能方才有效。IE4.x允许用户关闭Cookies功能,而IE5以上版本不允许使用者将Cookies关闭。

Session对象概要

属性:

SessionID 唯一标识每一个当前用户会话的只读属性值。

集合:

Contents 包含所有用户会话级作用域的变量和对象,它有两个方法,Contents.Remove和Contents.RemoveAll,分别删除一个和所有变量。

事件:

OnStart/OnEnd 在用户会话开始和结束时被触发。

-----------------------------------------------------------------------

以下程序读取Recordset的所有内容。

<%

dim i,Row

' Part I输出“表头名称”

Response.Write "<TABLE Border=1><TR>"

For i=0 to rs.Fields.Count-1

Response.Write "<TD>" & rs(i).Name & "</TD>"

Next

Response.Write "</TR>"

' Part II输出数据表的“内容”

rs.MoveFirst ' 将目前的数据记录移到第一项

While Not rs.EOF ' 判断是否过了最后一项

Row = "<TR>"

For i=0 to rs.Fields.Count-1

Row = Row & "<TD>" & rs(i) & "</TD>"

Next

Response.Write Row & "</TR>"

rs.MoveNext ' 移到下一项

Wend

Response.Write "</TABLE>"

%>

-----------------------------------------------------------------------

对于VBScript来说,最简单的输入方式是使用InputBox函数,最简单的输出方式是使用MsgBox函数,但在撰写ASP时,InputBox和MsgBox函数都是不可用的,因为ASP是在Server端执行的,而用户是位于远程的机器上,Server端所显示的窗口(InputBox和MsgBox函数都会显示窗口)上网者是看不到的,所以在ASP程序中利用InputBox和MsgBox来输入输出数据是没有意义的。

不能仅凭着浏览器窗口所看到的结果来判定Response.Write输出的数据是什么,而必须利用“查看源文件”功能来查看到底传输给浏览器的数据是什么。

VBScript规定字符串中的双引号要用两个双引号来表示,如Response.Write "BC""xy"的输出结果为BC"xy。

表单中的隐藏字段<Input Type=Hidden>最好固定地写在所有可显的<Input>标记之前。

Request对象支持多个集合,当使用形如Request("name")这样的语句读取信息时,ASP将按照如下次序搜索Request对象的各个集合:QueryString,Form,cookie,ClientCertificate,ServerVariables。

在没有数据的情况下,Application对象和Session对象的返回值是Empty(注意,不是Null),而Request.Cookies却是返回""(空字符串),而在VBS里,“空字符串”是不能与数值一起运算的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有