在线情况
楼主
  • 头像
  • 老大
  • 级别
  • 门派
  • 财富-497
  • 银两1508
  • 经验5682
  • 文章773
  • 注册2004-06-17
ASP基本知识
ASP文件的扩展名为.asp,其中可以包括HTML标记,文本和脚本语言,其脚本语言代码包含于”<%……%>”之间。
在VBScript中:注释可以是Rem,’等
<% Option Explicit %>表示VBScript中的变量都要声明后才可使用,否则会出错。
文件包含:<!--#include file=”myfirstinc.inc”-->
<!--#include file=”myfirstasp.asp”-->
<!--#include file=”myfirsttxt.txt”-->
认识VBScript脚本的基本用法:
1.  运算符
2.  数据类型
3.  常量,变量及数组
4.  条件语句(if….then  end if,  if….then….Else  end if)
5.  循环语句(for….next, for each….next,  do while…..loop)
6.  过程
7.  基本函数:分为数学类,字符串类,日期时间类,类型转换类,格式化类和判断类。
a)  数学类:abs(), sqr(),rnd(随机数),round(四舍五入)…
b)  字符串类:len(),left(),right(),mid(),strReverse(),split(),trim()
c)  日期时间类:DateValue(),TimeValue(),Year(),Month,Day(),Hour(),Minute(),Second(),DateSerial(),TimeSerial(),Date(),Time(),Now(),DatePart(),DateAdd(),DateDiff()…
d)  类型转换类:Cdate(),Cint(),Clng(),Cstr(),str(),Val(),Int(),Fix()
e)  格式化类:FormatDateTime,FormatNumber,FormatPercent….
f)  判断类:IsDate,IsEmpty,IsNull,IsNumeric,IsObject…
g)  信息对话框函数:InputBox,MsgBox…
ASP内置对象说明:
Response:
语法格式:Response.集合|属性|方法(变量)
Response的属性有:Buffer,Charset,ContentType,Expires,ExpiresAbsolute,Status.
Response的方法有:AddHeader,AppendTolog,BinaryWrite,Clear,End,Flush,Redirect,Write
Response的集合:Cookie.
Request:
语法格式:
Request.集合(变量)
集合:Form,QueryString,ServerVariable,Cookie,ClientCertificate
1.  Form:语法格式:Request.form(element)[(index).count].<%=request.form.count%>表单个数。<%=request.form(“name”)%>
2.  QueryString:语法格式:Request.QueryString(variable)[(index)|.count]
3.  ServerVariable:语法格式:Request.ServerVariable(服务器环境变量)
4.  Cookie:语法格式:Request.Cookies(Cookie名)[(key)|.attribute]
使用Cookies集合:
Response.Cookies(CookieName)[(key)|.attribute]=CookieValue
Request.Cookies(CookieName)[(key)|.attribute]
Application:
语法格式:Application.属性|方法|事件|集合
Application的方法:Lock(),UnLock()
Application的事件:Application_OnStart,Application_OnEnd
Application的集合:Contents,StaticObjects
Application的属性:Application(“变量名”)=变量名 或 Set Application(“对象实例名”)=对象
其实是定义全局变量,供多个用户使用。
实例名(反过来是还原)
Session:
语法格式:Session.方法|事件|集合|属性
Session方法:Abandon()用于清除Session对象<% Session.Abandon %>
Session事件:Session_OnStart,Session_OnEnd
Session集合:Contents,StaticObjects
Session属性:SessionID,Timeout
用户也可以自定义Session属性,其实是变量,就是我们前面说的会话变量。
Session(“VariableName”)=VariableName
Set Session(“ObjectName”)=ObjectName(反过来就是还原变量)
网页变量的生命周期与传递
全局变量,会话变量,网页变量
用Request.QueryString集合在网页间传递变量
用ASP的Application或Session对象在网页间传递变量。
Session和Application的比较:
1.  两者都允许用户自定义属性,即定义Application变量和Session变量。
2.  两者都可以用于存取对象中的变量及对象实例
3.  两者都有生命周期。Session开始于新连接者第一次连接时,终止于连接者若干时间内没有索取过任何信息;Application开始于IIS/PWS开始执行且出现第一个连接者的时候,终止于若干时间内没有任何连接者索取过信息,或IIS/PWS关闭时。
4.  两者都是ASP文件共用的对象。Application对象是所有网页连接者共用的一个对象,Session对象是每位连接者独有的对象。
5.  两者都有OnStart和OnEnd事件代码,但它们发生的时间不同。当一个Application应用程序与一个Session应用程序同时启动时,ASP会先执行Application_OnStart,接着才执行Session_OnStart;若在结束一个Session的同时结束Application应用程序,则会先执行Session_OnEnd,然后才执行Application_OnEnd.
Global.asa文件与应用程序的初始化:
Global.asa文件:
网站计数器或统计在线人数等
Server对象、ODBC与ADO组件:
Server语法格式:Server.属性|方法
Server属性:ScriptTimeout
Server方法:CreateObject,HTMLEncode,URLEncode,MapPath
Server的CreateObject方法是ASP中最实用,最强大的功能,它可以创建已注册到服务器上的ActiveX组件实例,是建立ActiveX对象的源头。
Server.CreateObject(“组件名或组件注册名”)
Set Myconn=Server.CreateObject(“ADODB.connection”)连接对象实例
Set MyAds=Server.CreateObject(“MSWC.AdRotator”)广告对象实例
ODBC:是连接数据库的通用接口,是由Microsoft公司开发并倡导的数据库连接标准。
ADO:是ASP服务器内置组件及实现Web数据库操作的一个十分重要的组件。
ADO组件是一个功能强大的组件,由7个接口组件组成,分别如下:
1.  Connection组件
2.  Recordset组件
3.  Command组件
4.  Parameter对象
5.  Porperty对象
6.  Error对象
7.  Field对象
其中前三个组件需要使用Server.CreateObject方法来建立后才能使用。
Connection:语法格式:Set Connection对象名=Server.CreateObject(“ADODB.Connection”)
如:Set conn=Server.CreateObject(“ADODB.Connection”)
Connection对象的方法:
1.  Open格式:Connection对象名.Open “连接数据库信息字符串”[;用户帐号][;用户密码]。该方法用于打开一个数据库并与其建立连接。有两种方法:
a)  用DSN方法打开数据库:该方法先用ODBC建立对应数据库的数据源名(DSN),然后通过数据源名打开对应数据库。如下代码就可以打开数据源名qhbook所对应的数据库book.mdb。<% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”qhbook;mydata;zhxing”%>
b)  用全路径DSN方法打开数据库。如果在连接数据库前没有建立ODBC数据源,也可以采用直接指定ODBC驱动程序名称的方法建立与数据库的连接。此时的“连接数据库信息字符串”必须以driver开始,变为”Driver={ODBC驱动程序名};dbq=”&Server.MapPath(“数据库名”).如下:
<% Set Conn=Server.CreateObject(“ADODB.Connection”)
Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”) %>
如果是SQL Server类型,则驱动程序是Driver={SQL Server};如果是Oracle类型,则:Driver={Microsoft ODBC for Oracle}.
2.  Close:关闭一个已经建立的连接对象及其相关对象。<% Conn.Close%><%Set Conn=nothing%>
3.  Execute:
格式一:Connection对象名.Execute(SQL指令).
格式二:Connection对象名.Execute(数据表名)。
如下:
<% SQL=”Select * from bookitem” Set rs=Conn.Execute(SQL) %>或:
<% Set rs=Conn.Execute(“bookitem”)%>
4.  BeginTrans
5.  CommitTrans
6.  RollbackTrans
Recordset组件:
前面的Conn.Open方法知识打开并连接了相应的数据库,数据库通常是由一个或多个表组成,所以要存取其中的数据表还必须建立Recordset对象后,才能对其进行各种操作。
1.  建立Recordset对象
方法由以下几种:
Set Recordset对象名=Server.CreateObject(“ADODB.Recordset”)
Set Recordset对象名=Connection.Execute(“数据表名”)
Set Recordset对象名=Connection.Execute(SQL指令)
如下代码:
<%
Set Conn=Server.CreateObject(“ADODB.Connection”)
Conn.Open”qhbook;mydata;zhxing”
Set rs=Conn.Execute(“bookitem”)
%>或
<%
Set Conn=Server.CreateObject(“ADODB.Connection”)
Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”)
Set rs=Server.CreateObject(“ADODB.Recordset”)
Exec=Select * from bookitem
Rs.Open Exec,Conn
%>
Recordset对象的方法:
Open:格式一:rs.Open Exec,Conn,1,1(记录集类型(0,1,2,3),锁定类型(1,2,3,4))
格式二:rs.Open bookitem,Conn,1,1
Recordset类型:0:只读,当前数据记录只能向下移动
1:只读,当前数据记录可以自由移动
  2:可读写,当前数据记录可以自由移动
  3:可读写,当前数据记录可以自由移动(注)
锁定类型:1:默认值,用于打开只读的数据记录
          2:悲观锁定
          3:乐观锁定
          4:批次乐观锁定
Close方法
<% rs.Close
Set rs=nothing %>
Recordset对象指针移动的方法:
MoveFirst
MoveLast
MoveNext
MovePrevious
Move NumRecords,Start:
Recordset对象的操作方法:
Addnew:该方法可以向Recordset对象中添加一条记录
Delete:删除Recordset对象中的一条记录
Update:更新Recordset对象的当前记录
CancelUpdate:取消更新,在更新方法之后才有效
UpdateBatch:当锁定类型是4时,该方法用于保存对一个或多个记录的修改。
Recordset对象的属性
AbsolutePage
AbsolutePosition
ActiveConncetion
BOF
EOF
Bookmark
CacheSize
CursorLocation
CursorType
EditMode
Filter
LockType
MaxRecords
PageCount
PageSize
RecordCount
State
Source
Field对象与集合
Field属性:
Name,Value,Type,….
Field方法:AppendChunk,GetChunk
Field集合:
输出数据表表头:
For I=0 to rs.fields.count-1
Response.write”<td>”&rs.fields(i).name&”</td>”(注释:前面的有获取表单元素个数的,和此差不多。Request.form.count)
Next
输出表中各个记录的值:
for I=0 to rs.fields.count-1
response.write”<td>”&rs.fields(i).value&”</td>”
next
用ADO与SQL查询数据库
建立数据库与数据源:
本例用Microsoft Access 2000建立一个图书管理数据库,数据库名为book.mdb,其中的数据表是bookitem,只有一个表。
bookitem表的结构:
book_id(编号):长整形,主键
book_name,book_author,book_price(货币),book_press,book_date(日期)
建立此数据库的DSN,取名qhbook,帐号和密码为:internet
用Select选取所有记录:
格式:Select [Top N] 字段列表 From 数据表名(*表示所有字段,多字段用,隔开)
1.  Select * from bookitem
2.  Select book_name,book_author,book_price from bookitem
3.  Select * from bookitem where book_name=’孤独羊’
Select * from bookitem where book_name like ‘%原理%’(通配符%和_,其中%代表任意多个,_代表一个。)
Select * from bookitem where book_price between 20.00 and 23.00
Select * from bookitem where book_price>=20.00 and book_price<=23.00
Select * from bookitem where book_price between 12.00 and 20.00 and book_name like ‘%系统%’
Select * from bookitem where book_date>=#2000/3/1# and book_name like’%原理%’
Where后的条件表达式可以用逻辑、比较、like,between…and,in/not,in,isNull/Is not Null等运算符来构成各种筛选。
Select [Top N] 字段列表 From 数据表名 Where 条件表达式
4.  Select [Top N] 字段列表 From 数据表名 Where 条件表达式 Order By 字段列表[Desc]降序排列:
Select * from bookitem Order By book_date Desc,book_price Desc
Select * from bookitem Where book_date>=#2000/3/1# Order By book_name
Select Top 4 * from bookitem where book_date>=#2000/3/1#
插入记录:
格式一:Insert Into 数据表名[(字段名列表)] Values (字段值列表)
格式二:rs.Open SQL,conn,2,3
Addnew
        为各字段赋值
        Update(此法最常用,特别是和表单结合时,通过表单添加记录)
如:
Insert Into bookitem(book_name,book_author,book_price) Values (‘书名’,’作者’,’价格’)
删除记录:
格式一:Delete from 数据表名 Where 条件表达式(SQL语言的删除)
格式二:rs.Open SQL,conn,2,3(记录集的删除方法)
        rs.MoveLast
        rs.Delete
        rs.Update(常用的一种方法)
如:Delete from bookitem where book_author=’寡人’
修改记录:
rs.Open SQL,conn,3,3
rs.MoveLast
rs(“book_author”)=”朕”
rs.Update
滿大街都是猴子惟有我是齊天大聖
Powered by LeadBBS 9.2 .
Page created in 0.2012 seconds with 4 queries.