信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试

 找回密码
 马上注册

QQ登录

只需一步,快速开始

楼主: 翔羽
打印 上一主题 下一主题

[转帖]ASP编程常用的代码

  [复制链接]

该用户从未签到

升级  30.8%

31
 楼主| 发表于 2006-2-24 09:15:24 | 只看该作者
Mid() <br/>FUNCTION: 返回特定长度的字符串(从start开始,长度为length). <br/>SYNTAX: Mid(string, start [, length]) <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%<br/>strTest = "This is a test! Today is Monday."<br/>response.write Mid(strTest, 17, 5)<br/>%&gt; <br/>RESULT: Today <br/><br/>Minute() <br/>FUNCTION: 返回时间的分钏. <br/>SYNTAX: Minute(time) <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%=Minute(#12:45:32 PM#)%&gt; <br/>RESULT: 45 <br/><br/>Month() <br/>FUNCTION: 返回日期. <br/>SYNTAX: Month(date) <br/>ARGUMENTS: date is any valid date expression. <br/>EXAMPLE: &lt;%=Month(#08/04/99#)%&gt; <br/>RESULT: 8 <br/><br/>MonthName() <br/>FUNCTION: Returns a string identifying the specified month. <br/>SYNTAX: MonthName(month, [, Abb]) <br/>ARGUMENTS: month is the numeric representation for a given month; Abb <br/>(optional) is a boolean value used to display month abbreviation. True <br/>will display the abbreviated month name and False (default) will not show <br/>the abbreviation. <br/>EXAMPLE: &lt;%=MonthName(Month(#08/04/99#))%&gt; <br/>RESULT: August <br/><br/>Now() <br/>FUNCTION: Returns the current system date and time. <br/>SYNTAX: Now() <br/>ARGUMENTS: None <br/>EXAMPLE: &lt;%=Now%&gt; <br/>RESULT: 8/4/99 9:30:16 AM <br/><br/>Replace() <br/>FUNCTION: Returns a string in which a specified sub-string has been <br/>replaced with another substring a specified number of times. <br/>SYNTAX: Replace(strToBeSearched, strSearchFor, strReplaceWith [, start <br/>][, count ][, compare]]]) <br/>ARGUMENTS: strToBeSearched is a string expression containing a sub-<br/>string to be replaced; strSearchFor is the string expression to search for <br/>within strToBeSearched; strReplaceWith is the string expression to replace <br/>sub-string strSearchFor; start (optional) is the numeric character <br/>position to begin search; count (optional) is a value indicating the <br/>comparision constant. <br/>EXAMPLE: &lt;% <br/>strTest = "This is an apple!"<br/>response.write Replace(strTest, "apple", "orange")<br/>%&gt; <br/>RESULT: This is an orange! <br/><br/>Right() <br/>FUNCTION: 返回字符串右边第length个字符以前的字符(含第length个字符). <br/>SYNTAX: Right(string, length) <br/>ARGUMENTS: . <br/>EXAMPLE: &lt;% <br/>strTest = "This is an test!"<br/>response.write Right(strTest, 3)<br/>%&gt; <br/>RESULT: st! <br/><br/>Rnd() <br/>FUNCTION: 产生一个随机数. <br/>SYNTAX: Rnd [ (number) ] <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%<br/>Randomize()<br/>response.write RND()<br/>%&gt; <br/>RESULT: 任何一个在0 到 1 之间的数 <br/><br/>Round() <br/>FUNCTION: 返回按指定位数进行四舍五入的数值. <br/>SYNTAX: Round(expression [, numRight]) <br/>ARGUMENTS: numRight数字表明小数点右边有多少位进行四舍五入。如果省略,则 <br/>Round 函数返回整数. <br/>EXAMPLE: &lt;%<br/>i = 32.45678<br/>response.write Round(i)<br/>%&gt; <br/>RESULT: 32 <br/><br/>Rtrim() <br/>FUNCTION: 去掉字符串右边的字符串. <br/>SYNTAX: Rtrim(string) <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%<br/>strTest = "This is a test!! "<br/>response.write RTrim(strTest)<br/>%&gt; <br/>RESULT: This is a test!! <br/>

该用户从未签到

升级  30.8%

32
 楼主| 发表于 2006-2-24 09:15:37 | 只看该作者
Second() <br/>FUNCTION: 返回秒. <br/>SYNTAX: Second(time) <br/>ARGUMENTS: . <br/>EXAMPLE: &lt;%=Second(#12:34:28 PM#)%&gt; <br/>RESULT: 28 <br/><br/>StrReverse() <br/>FUNCTION: 反排一字符串 <br/>SYNTAX: StrReverse(string) <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%<br/>strTest = "This is a test!!"<br/>response.write StrReverse(strTest)<br/>%&gt; <br/>RESULT: !!tset a si sihT <br/><br/>Time() <br/>FUNCTION: 返回系统时间. <br/>SYNTAX: Time() <br/>ARGUMENTS: . <br/>EXAMPLE: &lt;%=Time%&gt; <br/>RESULT: 9:58:28 AM <br/><br/>Trim() <br/>FUNCTION: 去掉字符串左右的空格. <br/>SYNTAX: Trim(string) <br/>ARGUMENTS: string is any valid string expression. <br/>EXAMPLE: &lt;%<br/>strTest = " This is a test!! "<br/>response.write Trim(strTest)<br/>%&gt; <br/>RESULT: This is a test!! <br/><br/>UBound() <br/>FUNCTION: 返回指定数组维数的最大可用下标. <br/>SYNTAX: Ubound(arrayname [, dimension]) <br/>ARGUMENTS: ; dimension (optional) 指定返回哪一维上界的整数。1 表示第一<br/>维,2 表示第二维,以此类推。如果省略 dimension 参数,则默认值为 1. <br/>EXAMPLE: &lt;%<br/>i = Array("Monday","Tuesday","Wednesday")<br/>response.write UBound(i)<br/>%&gt; <br/>RESULT: 2 <br/><br/>UCase() <br/>FUNCTION: 返回字符串的大写形式. <br/>SYNTAX: UCase(string) <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%<br/>strTest = "This is a test!!"<br/>response.write UCase(strTest)<br/>%&gt; <br/>RESULT: THIS IS A TEST!! <br/><br/>VarType() <br/>FUNCTION: 返回指示变量子类型的值 <br/>SYNTAX: VarType(varName) <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%<br/>i = 3<br/>response.write varType(i)<br/>%&gt; <br/>RESULT: 2(数字)详见"asp常数" <br/><br/>WeekDay() <br/>FUNCTION: 返回在一周的第几天. <br/>SYNTAX: WeekDay(date [, firstdayofweek]) <br/>ARGUMENTS: . <br/>EXAMPLE: &lt;%<br/>d = #8/4/99#<br/>response.write Weekday(d)<br/>%&gt; <br/>RESULT: 4(星期三) <br/><br/>WeekDayName() <br/>FUNCTION: 返回一周第几天的名字. <br/>SYNTAX: WeekDayName(weekday [, Abb ][, firstdayofweek]]) <br/>ARGUMENTS: Abb可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省<br/>略, 默认值为 False,即不缩写星期各天的名称.firstdayofweek指明星期第一天的<br/>数值 <br/>EXAMPLE: &lt;%<br/>d = #8/4/99#<br/>response.write WeekdayName(Weekday(d))<br/>%&gt; <br/>RESULT: Wednesday <br/><br/>Year() <br/>FUNCTION: 返回当前的年份. <br/>SYNTAX: Year(date) <br/>ARGUMENTS: <br/>EXAMPLE: &lt;%=Year(#8/4/99#)%&gt; <br/>RESULT: 1999

该用户从未签到

升级  30.8%

33
 楼主| 发表于 2006-2-24 09:15:55 | 只看该作者
<p><strong>ASP数据库语法总结</strong></p><hr/><p>经常使用到有关数据库的操作。包括连接代码、SQL命令等等,又不曾刻意去记忆它们(我本人是不愿意去记这东东),所以常常在用到的时候又去查书本,翻来翻去。一些比较少用的数据库还不一定能顺利找到,所以现在把它们全归纳到这里,提供大家参考。(个人水平有限,有缺陷之处,欢迎大家指正。)</p><p>&lt;一&gt;。数据库的连接方法:</p><p>1.Access数据库的DSN-less连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="&amp; _<br/>Server.MapPath("数据库所在路径")</p><p>2.Access OLE DB连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"rovider=Microsoft.Jet.OLEDB.4.0;"&amp; _<br/>"Data Source=" &amp; Server.MapPath("数据库所在路径")</p><p>3.SQL server连接方法:</p><p>set adocon=server.createobject("adodb.recordset")<br/>adocon.Open"Driver={SQL Server};Server=(Local);UID=***WD=***;"&amp; _<br/>"database=数据库名;"</p><p>4.SQL server OLE DB连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"&amp; _<br/>"user ID=***assword=***;"&amp; _<br/>"inital Catalog=数据库名"</p><p>5.Oracle 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"</p><p>6.Oracle OLE DB 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"rovider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"</p><p>7.dBase 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"</p><p>8.mySQL 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"</p><p>9.Visual Foxpro 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"</p><p>10.MS text 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;"&amp;_<br/>"extensions=asc,csv,tab,txtersist SecurityInfo=false;"</p><p>11.MS text OLE DB 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"rovider=microsof.jet.oledb.4.0;data source=your_path;"&amp;_<br/>"Extended Properties'text;FMT=Delimited'"</p>

该用户从未签到

升级  30.8%

34
 楼主| 发表于 2006-2-24 09:16:10 | 只看该作者
<p>&lt;二&gt;。常用的四种SQL命令:</p><p>1.查询数据记录(Select)<br/>语法:Select 字段串行 From table Where 字段=内容<br/>例子:想从book表中找出作者为"cancer"的所有记录,SQL语句便如下:<br/>select * from book where author=’cancer’<br/>"*"是取出book表所有的字段,如查询的字段值为数字,则其后的"内容"便无须加上单引号,</p><p>如是日期,则在Access中用(#)包括,而在SQL server中则用(’)包括,<br/>如:</p><p>select * from book where id=1<br/>select * from book where pub_date=#2002-1-7# (Access)<br/>select * from book where pub_date=’2002-1-7’ (SQL Server)</p><p>提示:<br/>日期函数to_date不是标准sql文,不是所有的数据库适用,所以大家在使用的时候要参考数据库具体语法</p><p>另外如果是查询传入的变量,则如下:</p><p>strau=request.form("author")<br/>strsql="select * from book where author=’"&amp;strau&amp;"’"</p><p>如果查询的是数字,则:</p><p>intID=request.form("id")<br/>strsql="select * from book where id="&amp;intID</p><p>在很多数据库中,如:oracle,上面的语句是可以写成:<br/>strsql="select * from book where id='"&amp;intID&amp;"'"的。<br/>但是字符型一定不能按照数字格式写,需要注意。</p><p>2.添加记录(Insert)<br/>语法:Insert into table(field1,field2,....) Values (value1,value2,....)<br/>例子:添加一作者是"cancer"的记录入book表:<br/>insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer无组件上传程序’)<br/>同样,如果用到变量就如下:</p><p>strno=request.form("bookno")<br/>strau=request.form("author")<br/>strname=request.form("bookname")<br/>strsql="insert into book (bookno,author,bookname) values (’"&amp;strno&amp;"’,’"&amp;strau&amp;"’,’"&amp;strname&amp;"’)"</p><p>3.用Recordset对象的Addnew插入数据的方法:<br/>语法:</p><p>rs.addnew<br/>rs("field1").value=value1<br/>rs("field2").value=value2<br/>...<br/>rs.update</p><p>4.修改数据记录(Update)<br/>语法:update table set field1=value1,field2=value2,...where fieldx=valuex<br/>例子:update book set author=’babycrazy’ where bookno=’CF001’<br/>如果用到变量就如下:</p><p>strno=request.form("bookno")<br/>strau=request.form("author")<br/>strsql="update book set author=’"&amp;strau&amp;"’ where bookno=’"&amp;strno"’"</p><p>5.Recordset对象的Update方法:<br/>语法:</p><p>rs("field1").value=value1<br/>rs("field2").value=value2<br/>...<br/>rs.update</p><p>注意:使用语法3和语法5的时候,一定要注意字段的类型(尤其是日期型)一致,否则出错的几率非常的高。</p><p><br/>例子:</p><p>strno=request.form("bookno")<br/>strau=request.form("author")<br/>set adocon=server.createobject("adodb.connection")<br/>adocon.open "Driver={Microsoft Access Driver(*.mdb)};DBQ=" &amp; _<br/>Server.Mappath=("/cancer/cancer.mdb")<br/>strsql="select * from book where bookno=’"&amp;strno&amp;"’"<br/>set rs=server.createobject("adodb.recordset")<br/>rs.open strsql,adconn,1,3<br/>if not rs.eof then ’如果有此记录的话<br/>rs("author").value=strau<br/>rs.update<br/>end if<br/>rs.close<br/>set rs=nothing<br/>adocon.close<br/>set adocon=nothing</p>

该用户从未签到

升级  30.8%

35
 楼主| 发表于 2006-2-24 09:16:27 | 只看该作者
<p>6.删除一条记录(Delete)<br/>语法:Delete table where field=value<br/>例子:删除book表中作者是cancer的记录</p><p>delete book where author=’cancer’</p><p>(注意:如果book表中author字段的值为cancer的记录有多条,将会删除所有author为cancer的记录)</p><p>好了,学会了用这些操作,大家在用asp操作数据库的时候,该是没有什么问题了。</p>

该用户从未签到

升级  30.8%

36
 楼主| 发表于 2006-2-24 09:16:43 | 只看该作者
<p><strong>ASP的对象结构 </strong></p><p>现在我们要系统地了解一下ASP的对象结构,然后,大家就可以举一反三,不用我过多解释每一个例子了。这一部分,可能有些困难。</p><hr/><p> <strong> 一、Request</strong><br/>  Request对象把客户信息保存在几个集合中,供ASP应用使用。通用的访问方法为:Request.Collection("membername")<br/>  当你不指定集合名时,以(1)QueryString,(2)Form,(3)Cookie和(4)ServerVariable<br/>的顺序搜索所有集合,当发现第一个匹配的变量时,就认定他是要引用的成员。当然,为了提高效率,你最好显式指定是那个集合中的成员。<br/>  QueryString集合<br/>  当HTML表单使用GET方法向ASP文件传递数据时,数据被保存在集合QueryString中。其成员可以具有与之相关的多个值,也就是说,同一个表单中,多个元素可以有相同的名字,下面的代码访问这些数据:<br/>&lt;%For each item in Request.QueryString("Name")<br/>Response.write Item &amp;"&lt;br&gt;"<br/>Next %&gt;<br/>  Form集合<br/>  当表单用POST方法时,数据被保存在Form集合中。<br/>  ServerVariable集合<br/>  保存了随HTTP请求一起传送HTTP头的信息,可以通过他获取有关浏览器的信息,主要成员有:<br/>REMOTE_ADDR 远程主机IP地址<br/>REMOTE_HOST 远程主机名称<br/>REMOTE_USER 客户名称<br/>REQUEST_METHOD 请求方法(如POST,GET,HEAD)<br/>SERVER_NAME 服务器名<br/>SERVER_PROTOCOL 服务器版本号(如HTTP/1。0)</p><p>  <strong>二、Response对象</strong><br/>  用来控制向客户返回的HTML的内容,有若干属性和方法。下面介绍我认为重要的:<br/>  Buffer属性<br/>  如果为True,则Response的内容要写入缓冲区,当脚本处理完时再发给客户。<br/>  Status属性<br/>传递HTTP Response报文的状态。服务器返回的状态代码由三位数字组成,可以用于测试阶段和转换控制到其他站点(即Forward)<br/>  Write方法<br/>  向客户输出HTML,可以是任何合法的HTML脚本。<br/>  Redirect方法<br/>  使浏览器重新定向到另外一个URL上,如:<br/>&lt;%browsetype=Request.ServerVariables("HTTP_USER_AGENT")<br/>IF Left(browsetype,11)="Mozilla/2.0" then<br/>Response.Redirect "FancyStart.asp"<br/>Else<br/>Response.Redirect "OldStart.asp"<br/>End if%&gt;<br/>  Clear方法<br/>  如果设Buffer属性为True,则Clear方法清楚所有缓冲区内容。<br/>  Flush方法<br/>  将缓冲内容立即发送给客户。<br/>  End方法<br/>  当Active Server遇到该方法时,立即停止处理ASP文件,如果有缓冲,立即发送内容到客户。<br/>  BinaryWrite方法<br/>  输出二进制数据</p><p>  <strong>三、Request对象和Response对象的Cookies集合</strong><br/>  1.写入Cookies<br/>  Response.Cookies("Cookie名称")[("键名称").属性]=值<br/>  如果该Cookie已经存在,则值被新值替代,否则,创建该cookie<br/>  例如:<br/>&lt;% Response.Cookies("NewCookie")="New Cookie Value" %&gt;<br/>  2.读取Cookies<br/>  如:<br/>&lt;%=Request.Cookies("NewCookie")%&gt;<br/>  Cookie还有一些属性,请参见有关资料。</p>

该用户从未签到

升级  30.8%

37
 楼主| 发表于 2006-2-24 09:16:57 | 只看该作者
<strong>四、Application对象<br/></strong>  Active Server应用程序是虚拟目录及其子目录下的所有文件,即一个WEB。可以使用Application对象在应用软件的所有用户中共享信息,并可以在服务器运行期间持久地保存数据。他有一些控制访问应用层数据的方法和事件。<br/>  Application本身没有内置属性,可以有用户定义:Application("属性名")=值<br/>  保存在Application对象中的数据可以被Application的所有用户读取。如用来做访问记数:Application("aVisits")=Application("aVisits")+1<br/>  方法有两个:<br/>  Lock:<br/>  当用户调用Lock时,只有当前用户能够编辑或增加Application对象的属性。<br/>  Unlock:<br/>  一定要记住,调用了Lock,完成时一定要调用Unlock.<br/>  事件也有两个:<br/>  Application_OnStart事件:应用程序启动时调用。<br/>  Application_OnStart事件:应用程序终止时调用。<br/>  这两个事件再加上Session的两个事件的处理程序都放在文件Global.asp中,一个Web应用只有一个Global.asa文件,且放在该应用的根目录下。一个Global.asp文件的例子如下:<br/>&lt;Script Language="VBScript" Runat="Server"&gt;<br/>Sub Application_OnStart<br/>Dim laChats(15)<br/>Application("gaChats")=maChats<br/>Application("giCounter")=0<br/>End Sub<p>  <strong>五、Session对象</strong><br/>Active Server使用会话设置为使用应用程序的单个用户持久保持数据。当用户请求Active Server应用程序中ASP文件的URL时,要启动Session。在缺省情况下,如果没有用户请求,则服务器只保留Session20分钟。用户也可以通过设Session的属性TimeOut来改变。或显示地调用Session.Abandon方法来释放Session对象。<br/>  SessionID属性<br/>  唯一标识一个会话的标识符。<br/>  TimeOut属性<br/>  定义Session保留的时限,单位为分钟,如Session.TimeOut=10<br/>  像Application一样,Session也可由用户来定义属性。<br/>  Session的唯一方法是Abandon,用来取消用户的Session对象,并释放其占用的服务器资源。如:&lt;%Session.Abandon%&gt;<br/>  事件有Session_OnStart和Session_OnEnd,其处理程序应放在文件Glabal.asa中。</p><p>  <strong>六、Server对象</strong><br/>  1.HTMLEncode方法<br/>  对特定的字符串进行HTML编码,如你本来要显示下列内容:<br/>The Underline tag(&lt;u&gt;&lt;/u&gt;) is used to underline the surrounded text.<br/>  但很可能实际显示成:<br/>The Underline tag() is used to underline the surrounded text.<br/>  为了避免这种情况,可以调用Server对象的HTMLEncode方法,如:<br/>&lt;%<br/>Response.Write Server.HTMLEncode("The Underline tag(&lt;U&gt;&lt;/U&gt;) is used to underline the surrounded text.")<br/>%&gt;<br/>  2.URLEncode方法<br/>  根据URL规则对字符串进行编码。当字符串数据以URL格式传递到服务器时,串中间不能有空格,不能有特殊字符,这时,你就必须用URL编码。<br/>  3.CreateObject方法<br/>  用于创建已注册到服务器机器上的ActiveX组件例程,这恐怕是最重要的一个方法了:<br/>  句法如下:<br/>Server.CreateObject("ComponentName")<br/>  可以作为例程启动的组件可以是ActiveX能够使用的所有内置组件,实际上是存在于服务器上的任何ActiveX组件。比如,要使用金融计算,步骤如下:<br/>  1.创建对象<br/>&lt;%<br/>set x=server.createobject("extend.financial");<br/>%&gt;<br/>  2.调用对象的方法<br/>&lt;%<br/>set x=server.createobject("extend.financial")<br/>response.write Format(x.futval(.07/12,200,-500),"###,###,##0.00")<br/>%&gt;<br/>  3.释放例程<br/>&lt;%<br/>set x=Nothing<br/>%&gt;</p><p>  <strong>七、FileSystem和TextStream对象</strong><br/>  FileSystem和TextStream对象可用于建立对文件系统的访问,并提供顺序访问文件的机制。FileSystem没有属性,只有两个方法,第一个方法是CreateTextFile方法,可以在宿主机上创建新的文本文件,并返回TextStream对象以提供对新创建文件的访问机制。第二个是OpenTextFile方法,用于打开文本文件供顺序访问并返回一个TextStream对象。如:</p><p>&lt;%<br/>set fsFilesys=CreateObject("Scripting.FileSystemObject")<br/>set tsCoffee=fsFilesys.CreateTextFile("c:\coffe.txt",True)<br/>tsCoffee.WriteLine("Man,I Could use some coffee.")<br/>tsCoffee.Close<br/>%&gt;<br/>  TextStream对象的使用有:<br/>  AtEndOfLine:如果文件当前字符处在行的末尾则返回true<br/>  AtEndOfScreen:如果当前字符在文件的末尾则返回true<br/>  Column:返回当前字符的列号<br/>  Line:返回当前字符的行号<br/>  TextStream对象的方法为:<br/>  Close:关闭并释放TextStream对象<br/>  Read:从一个文件中读取给定个数的字符到一个变量中<br/>  ReadAll:读取文件的全部内容到一个变量中<br/>  ReadLine:读取给定行号的内容到一个变量中<br/>  Skip:跳过给定个数的字符<br/>  SkipLine:跳过给顶的行书<br/>  Write:写如字符串<br/>  WriteLine:写入以换行结束的字符串<br/>  WriteBlankLines:写入给顶数量的空格<br/></p>

该用户从未签到

升级  30.8%

38
 楼主| 发表于 2006-2-24 09:17:18 | 只看该作者
<p><strong>asp内置对象 server 详解</strong></p><p></p><hr/><p>Server 对象:</p><p>Server 对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。</p><p>语法 </p><p>Server.property|method</p><p>属性</p><p>ScriptTimeout:<br/>ScriptTimeout 属性指定脚本在结束前最大可运行多长时间。 当处理服务器组件时,超时限制将不再生效。 </p><p>语法 Server.ScriptTimeout = NumSeconds</p><p>参数 NumSeconds <br/>指定脚本在被服务器结束前最大可运行的秒数。默认值为 90 秒。 </p><p>注释<br/>通过使用元数据库中的AspScriptTimeout属性可以为 Web 服务或 Web 服务器设置缺省的ScriptTimeout值。ScriptTimeout属性不能设置为小于在元数据库中指定的值。例如,如果NumSeconds设置为10,而元数据库设置包含了默认值90秒,则脚本在90秒后超时。但如果NumSeconds设置为100,则脚本在100秒后超时。</p><p>关于使用元数据库的详细信息,参阅 关于元数据库。</p><p>示例 以下示例中,如果服务器处理脚本超过 100 秒,将使之超时。<br/>&lt;% Server.ScriptTimeout = 100 %&gt;<br/>以下示例获取 ScriptTimeout 属性当前值,并将其存储在变量 TimeOut 中。<br/>&lt;% TimeOut = Server.ScriptTimeout %&gt;</p><p>方法</p><p>CreateObject <br/>CreateObject 方法创建服务器组件的实例。如果该组件执行了 OnStartPage 和 OnEndPage 方法,则此时就会调用 OnStartPage 方法。有关服务器组件的详细信息,请参阅 可安装的 ASP 组件 。</p><p>语法 Server.CreateObject( progID )</p><p>参数 progID 指定要创建的对象的类型。progID 的格式为 [Vendor.] component[.Version]。</p><p>注释 默认情况下,由 Server.CreateObject 方法创建的对象具有页作用域。这就是说,再当前 ASP 页处理完成之后,服务器将自动破坏这些对象。要创建有会话或应用程序作用域的对象,可以使用 &lt;OBJECT&gt; 标记并设置 SESSION 或 APPLICATION 的 SCOPE 属性,也可以在对话及应用程序变量中存储该对象。<br/>例如,在如下所示的脚本中,当 Session 对象被破坏,即当对话超时时或 Abandon 方法被调用时,存储在会话变量中的对象也将被破坏。<br/>&lt;% Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%&gt;<br/>可以通过将变量设置为 Nothing 或新的值来破坏对象,如下所示。第一个例子释放 ad 对象,第二个例子用字串代替 ad 。<br/>&lt;% Session ("ad") = Nothing %&gt;<br/>&lt;% Session ("ad") = " Other Valum " %&gt;<br/>不能创建与内建对象同名的对象实例。 例如,下列脚本将返回错误。<br/>&lt;% Set Response = Server.CreateObject("Response") %&gt; </p><p>示例 &lt;% Set MyAd = Server.CreateObject("MSWC.AdRotator") %&gt; <br/>上面的例子创建一个名为 MyAd 的 MSWC.AdRotator 服务器组件,MSWC.AdRotator 组件可用于在 Web 页上的自动轮换广告。<br/>关于服务器组件的详细信息, 请参阅 Creating Components for ASP.</p><p>HTMLEncode HTMLEncode方法对指定的字符串应用 HTML 编码。 </p><p>语法 Server.HTMLEncode( string )</p><p>参数 string 指定要编码的字符串。 </p><p>示例脚本 &lt;%= Server.HTMLEncode("The paragraph tag: &lt&gt;") %&gt; </p><p>输出 The paragraph tag: &amp;lt&amp;gt; </p><p>注意 以上输出将被 Web 浏览器显示为The paragraph tag: &lt&gt;如果查看一下源文件或以文本方式打开一个 Web 页,您就可以看到已编码的 HTML。<br/></p>

该用户从未签到

升级  30.8%

39
 楼主| 发表于 2006-2-24 09:17:33 | 只看该作者
<p><strong>asp内置对象 ObjectContext 详解</strong></p><p></p><hr/><p>您可以使用 ObjectContext 对象提交或放弃一项由 Microsoft Transaction Server (MTS) 管理的事务,它由 ASP 页包含的脚本初始化。 </p><p>ASP 包含 @TRANSACTION 指令时,该页会在事务中运行,直到事务成功或失败后才会终止。 </p><p>语法<br/>ObjectContext.method</p><p>方法<br/>SetComplete SetComplete 方法声明脚本不了解事务未完成的原因。如果事务中的所有组件都调用 SetComplete,事务将完成。 <br/>SetAbort SetAbort 方法声明被脚本初始化的事务未完成,无法更新源。 </p><p><br/>事件<br/>OnTransactionCommit <br/>OnTransactionAbort </p><p><br/>注释<br/>ObjectContext 实现 MTS ObjectContext 对象的两种方法。 SetAbort 方法完全终止事务。这样,MTS 不更新在第一阶段联系的源。事务终止时,将处理脚本的 OnTransactionAbort 事件。</p><p>调用 SetComplete 方法并不一定意味着事务已完成。只有脚本调用的所有事务组件都调用了 SetComplete,事务才能完成。在大多数实例中,如果结束处理时未调用 SetAbort,脚本通常被假定为完成的,所以不一定要在脚本内调用 SetComplete。</p><p>ObjectContext 展示了 SetAbort 和 SetComplete 以外的六种方法。这些方法可用于脚本调用的组件,但不能直接用于 ASP 脚本。 </p><p>示例<br/>这里示范使用 SetAbort 和 SetCommit 的方法。Sales.htm 文件获取处理销售请求所需的数据。第二个文件——SalesVerify.asp 中的脚本使用两个对象——Inventory 和 Sales 处理销售。如果 Inventory 返回了错误代码表示供销售的存货不足,就会调用 SetAbort。如果 Inventory 对象没有返回错误代码,将会调用 SetComplete 处理销售请求。</p><p>Sales.htm<br/>&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"&gt;</p><p>&lt;HTML&gt;<br/>&lt;HEAD&gt;<br/>&lt;TITLE&gt;Sales Order&lt;/TITLE&gt;<br/>&lt;/HEAD&gt;<br/>&lt;BODY BGCOLOR="#FFFFFF"&gt;&lt;FONT FACE="ARIAL,HELVETICA"&gt;<br/>&lt;H2&gt;Sales Order Form &lt;/H2&gt;</p><p>&lt;FORM METHOD=POST ACTION="SalesVerify.asp"&gt; <br/>&lt&gtlease enter the product code, quantity, and your account number.<br/>&lt;INPUT TYPE=TEXT NAME=QuantityToBuy&gt; <br/>&lt;INPUT TYPE=TEXT NAME=ProductCode&gt; <br/>&lt;INPUT TYPE=TEXT NAME=AccountIn&gt; <br/>&lt&gt;<br/>&lt;INPUT TYPE=SUBMIT&gt; <br/>&lt;/FONT&gt; <br/>&lt;/BODY&gt;<br/>&lt;/HTML&gt;</p><p>SalesVerify.asp 文件<br/>&lt;%@ Transaction = Required %&gt;<br/>&lt;%<br/>Set CurrentQOH = Server.CreateObject("Mycomp.Inventory")<br/>Set CurrentSales = Server.CreateObject("Mycomp.Sales")</p><p>CheckQuantity = Request("QuantityToBuy")<br/>CheckProduct = Request("roductCode")<br/>QuantityStatus = CurrentQOH.CheckQOH(CheckQuantity,CheckProduct)</p><p>If QuantityStatus = None<br/>ObjectContext.SetAbort<br/>Response.Write "Sorry, there is not sufficient quantity on hand to process your sale."<br/>Else <br/>ObjectContext.SetComplete<br/>Account = Request("AccountIn")<br/>Saleupdate = CurrentSales.PostIt(AccountIn)<br/>End If<br/>%&gt;</p>

该用户从未签到

升级  30.8%

40
 楼主| 发表于 2006-2-24 09:17:50 | 只看该作者
<p><strong>asp内置对象 Application 详解</strong></p><p></p><hr/><p>   在 ASP 的内建对象中除了用于发送、接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象。</p><p>   让我们先来看看 Application 对象。在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序。我们非但可以使用 Application 对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据。而且,Application 对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。 <br/>   下面就让我们一起来学习 Application 对象。 </p><p>   一、属性 </p><p>   虽然 Application 对象没有内置的属性,但我们可以使用以下句法设置用户定义的属性也可称为集合。 </p><p>   Application(" 属性 / 集合名称 ")= 值 </p><p>   我们可以使用如下脚本声明并建立 Application 对象的属性。 <br/>&lt; %<br/>Application("MyVar") = "Hello"<br/>Set Application("MyObj") = Server.CreateObject("MyComponent")<br/>%&gt;</p><p></p><p>   一旦我们分配了 Application 对象的属性,它就会持久地存在,直到关闭 WEB 服务器服务使得 Application 停止。由于存储在 Application 对象中的数值可以被应用程序的所有用户读取,所以 Application 对象的属性特别适合在应用程序的用户之间传递信息。 <br/>   二、方法 </p><p>   Application 对象有两个方法,它们都是用于处理多个用户对存储在 Application 中的数据进行写入的问题 </p><p>   1、Lock 方法禁止其他客户修改 Application 对象的属性。 </p><p>   Lock 方法阻止其他客户修改存储在 Application 对象中的变量,以确保在同一时刻仅有一个客户可修改和存取 Application 变量。如果用户没有明确调用 Unlock 方法,则服务器将在 .asp 文件结束或超时后即解除对 Application 对象的锁定。 </p><p>   让我们来看看下面这段用 Application 来记录页面访问次数的程序 : <br/>&lt; %<br/>Dim NumVisitsNumVisits=0<br/>Application.LockApplication("NumVisits") = Application("NumVisits") + 1<br/>Application.Unlock<br/>%&gt;<br/>欢迎光临本网页,你是本页的第 &lt; %= Application("NumVisits") %&gt; 位访客 !</p><p><br/>   将以上脚本保存在你的 .asp 文件中,就轻而易举地给你的页面添加了一个计数器。 </p><p>   2、和 Lock 方法相反,Unlock 方法允许其他客户修改 Application 对象的属性。 </p><p>   在上面的例子中,上述例子中,Unlock 方法解除对象的锁定,使得下一个客户端能够增加 NumVisits 的值。 </p><p>   三、事件 </p><p>   1、Application_OnStart </p><p>   Application_OnStart 事件在首次创建新的会话 ( 即 Session_OnStart 事件 ) 之前发生。当 WEB 服务器启动并允许对应用程序所包含的文件进行请求时就触发 Application_OnStart 事件。Application_OnStart 事件的处理过程必须写在 Global.asa 文件之中。</p><p>   Application_OnStart 事件的语法如下 : <br/>&lt; SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server&gt;<br/>Sub Application_OnStart. . .<br/>End Sub<br/>&lt; /SCRIPT&gt;</p><p><br/>   2、Application_OnEnd </p><p>   Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,Application_OnEnd 事件的处理过程也必须写在 Global.asa 文件之中。 </p><p>   下面让我们来看看在使用 Application 对象时必须注意的一些事项。 </p><p>   不能在 Application 对象中存储 ASP 内建对象。例如,下面的每一行都返回一个错误。 <br/>&lt; %<br/>Set Application("var1")=Session<br/>Set Application("var2")=Request<br/>Set Application("var3")=Response<br/>Set Application("var4")=Server<br/>Set Application("var5")=Application<br/>Set Application("var6")=ObjectContext<br/>%&gt;</p><p><br/>   若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。 <br/>&lt; % Application("StoredArray")(3) = "new value" %&gt;</p><p></p><p>   这是因为 Application 对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。建议您在将数组存储在 Application 对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Application 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。 <br/>---asp8a.asp---<br/>&lt; %<br/>dim MyArray()<br/>Redim MyArray(5)<br/>MyArray(0)="hello"<br/>MyArray(1)="some other string"<br/>Application.Lock<br/>Application("StoredArray")=MyArray<br/>Application.Unlock<br/>Response.Redirect "asp8b.asp"<br/>%&gt;</p><p>---asp8b.asp---<br/>&lt; %<br/>LocalArray=Application("StoredArray")<br/>LocalArray(1)=" there"<br/>Response.Write LocalArray(0)&amp;LocalArray(1)<br/>Application.Lock<br/>Application("StoredArray")=LocalArray<br/>Application.Unlock<br/>%&gt;</p><p>   与 Application 对象具有相近作用的另一个非常实用的 ASP 内建对象就是 Session。我们可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。</p>
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

小黑屋|手机版|Archiver|信息系统项目管理师_软考交流平台. ( 鄂ICP备11002878号-1  公安备案号:42011102001150

GMT+8, 2025-7-6 13:48

Software by Discuz! X3.2

© 2001-2013 SKIN BY DSVUE

快速回复 返回顶部 返回列表