ASP 编程中 20 个非常有用的例子 |
1.如何用Asp推断你的网站的 虚构物理路径 答: 使用Mappath 步骤 < p align="center" >< font size="4" face="Arial" >< b > The Physical path to this virtual website is: < /b >< /font > < font color="#FF0000" size="6" face="Arial" > < %= Server.MapPath("\"% > < /font >< /p > 2.我如何晓得 使用者所用的阅读器? 答: 使用the Request object 步骤 strBrowser=Request.ServerVariables("HTTP_USER_AGENT" If Instr(strBrowser,"MSIE" < > 0 Then Response.redirect("ForMSIEOnly.htm" Else Response.redirect("ForAll.htm" End If 3.如何计算天天的 均匀 反复 拜访人数 答:解决 步骤 < % startdate=DateDiff("d",Now,"01/01/1990" if strdate< 0 then startdate=startdate*-1 avgvpd=Int((usercnt)/startdate) % > 显示 后果 < % response.write(avgvpd) % > that is it.this page have been viewed since November 10,1998 4.如何显示随机图象 < % dim p,ppic,dpic ppic=12 randomize p=Int((ppic*rnd)+1) dpic="graphix/randompics/"&p&".gif" % > 显示 < img src="< %=dpic% >" > 5.如何回到先前的页面 答:< a href="< %=request.serverVariables("Http_REFERER"% >" >preivous page< /a > 或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER"% >" > 6.如何确定对方的IP地址 答:< %=Request.serverVariables("REMOTE_ADDR)% > 7.如何链结到一副图片上 答:< % @Languages=vbs cript % > < % response.expires=0 strimagename="graphix/errors/erroriamge.gif" response.redirect(strimagename) % > 8. 胁迫输入密码对话框 答:把这句话放载页面的开头 < % response.status="401 not Authorized" response.end % > 9.如何传递变量从一页到另一页 答:用 HIDDEN 类型来传递变量 < % form method="post" action="mynextpage.asp" > < % for each item in request.form % > < input namee="< %=item% >" type="HIDDEN" value="< %=server.HTMLEncode(Request.form(item)) % >" > < % next % > < /form > 10.为什么我在 asp 程序内 使用 msgbox,程序出错说没有权限 答:因为 asp 是服务器运行的,如果 可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序 威力 接续执行,而普通服务器不会有人守着,所以微软只能禁止这个函数,并胡乱告诉你 ( 呵呵) 没有权限 。然而ASP和客户端脚本 联合倒 可以显示一个对话框,as follows: < % yourVar="测试对话框"% > < % s cript language='javas cript' > alert("< %=yourvar% >" < /s cript > 11.有没有 步骤 掩护自己的源代码,不给人看到 答: 可以去下载一个微软的Windows s cript Encoder,它 可以对asp的脚本和客户端javas cript/vbs cript脚本进行加密 。 。 。不过客户端加密后,惟独ie5 威力执行,服务器端脚本加密后,惟独服务器上安装有s cript engine 5(装一个ie5就有了) 威力执行 。 12. 怎么 威力将 query string 从一个 asp 文件 传递到另一个? 答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING") 13.global.asa文件总是不起作用? 答:惟独web目录设置为web application, global.asa才有效,而且一个web application的根目录下 global.asa才有效 。IIS4 可以 使用Internet Service Manager设置application setting 怎么 威力使得htm文件如同asp文件一样 可以执行脚本代码? 14. 怎么 威力使得htm文件如同asp文件一样 可以执行脚本代码? 答:Internet Sevices Manager - > 取舍default web site - >右鼠键- >菜单属性-〉主目录- > 利用程序设置(Application Setting)- > 点击按钮 "配置"- > app mapping - >点击按钮"Add" - > executable browse 取舍 WINNTSYSTEM32INETSRVASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 所有确定即可 。然而值得 留神的是这样对htm也要由asp.dll 解决,效率将减低 。 15.如何注册组件 答:有两种 步骤 。 第一种 步骤:手工注册 DLL 这种 步骤从IIs 3.0向来 使用到IIs 4.0和其它的Web Server 。它需求你在命令行 模式下来执行,进入到包括有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:emp egsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中 。 而后这个组件就 可以在服务器上 使用了,然而这个 步骤有一个缺点 。当 使用这种 步骤注册 结束组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll 。特殊是一些组件需求读取注册表,所以,这个注册组件的 步骤仅仅是 使用在服务器上没有MTS的状况下,要 取缔注册这个dll, 使用:regsvr32 /u aspobject.dll example c:emp egsvr32 /u aneiodbc.dll 第二种 步骤: 使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特点,然而它提供了 硕大的改良 。MTS同意你指定惟独有特权的消费者 威力够 拜访组件,大大 普及了网站服务器上的安全性设置 。在MTS上注册组件的步骤如下: 1) 打开IIS治理操纵台 。 2) 铺开transaction server,右键单击"pkgs installed" 而后 取舍"new package" 。 3) 单击"create an empty package" 。 4) 给该包命名 。 5) 指定administrator帐号或则 使用"interactive"(如果服务器 时常是 使用administrator 登陆的话) 。 6) 现在 使用右键单击你刚 构建的那个包下面铺开后的"components" 。 取舍 "new then component" 。 7) 取舍 "install new component" 。 8) 找到你的.dll文件 而后 取舍next到 实现 。 要删除这个对象, 惟独 取舍它的图标, 而后 取舍delete 。 附注:特殊要 留神第二种 步骤,它是用来调试自己编写组件的最好 步骤,而 毋庸每次都需求再一次启动机器了 。 16. ASP与Access数据库衔接: <%@ language=VBs cript%> <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb" set conn=server.createobject("adodb.connection" conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile %> 17. ASP与SQL数据库衔接: <%@ language=VBs cript%> <% dim conn set conn=server.createobject("ADODB.connection" con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 %> 构建记录集对象: set rs=server.createobject("adodb.recordset" rs.open SQL语句,conn,3,2 18. SQL常用命令 使用 步骤: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')" sql="select * from 数据表 where 字段名 between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件 抒发式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件 抒发式" (3) 删除数据记录: sql="delete from 数据表 where 条件 抒发式" sql="delete from 数据表" (将数据表所有记录删除) (4) 增加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)" sql="insert into 指标数据表 select * from 源数据表" (把源数据表的记录增加到 指标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏 均匀值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 获得一个表格栏最大的值 MIN(字段名) 获得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的 步骤: sql="select sum(字段名) as 别名 from 数据表 where 条件 抒发式" set rs=conn.excute(sql) 用 rs("别名" 猎取统的计值,其它函数 使用同上 。 (5) 数据表的 构建和删除: CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表名称 ( 永远性删除一个数据表) 19. 记录集对象的 步骤: rs.movenext 将记录指针从目前的位置向下移一行 rs.moveprevious 将记录指针从目前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最终一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 依据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是不是超出数据表首端,true 示意是,false为否 rs.eof 返回记录指针是不是超出数据表末端,true 示意是,false为否 rs.delete 删除目前记录,但记录指针不会向下移动 rs.addnew 增加记录到数据表末端 rs.update 更新数据表记录 --------------------------------------- 20. Recordset对象 步骤 Open 步骤 recordset.Open Source,ActiveConnection,CursorType,LockType,Options Source Recordset对象 可以通过Source属性来衔接Command对象 。Source参数 可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure 。如果省略这个参数,系统则采纳Recordset对象的Source属性 。 ActiveConnection Recordset对象 可以通过ActiveConnection属性来衔接Connection对象 。这里的ActiveConnection 可以是一个Connection对象或是一串包括数据库衔接信息(ConnectionString)的字符串参数 。 CursorType Recordset对象Open 步骤的CursorType参数 示意将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下: -------------------------------------------------------------- 常数 常数值 注明 ------------------------------------------------------------- adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only) 。 adOpenKeyset 1 启动一个Keyset类型的游标 。 adOpenDynamic 2 启动一个Dynamic类型的游标 。 adOpenStatic 3 启动一个Static类型的游标 。 ------------------------------------------------------------- 以上几个游标类型将直接影响到Recordset对象所有的属性和 步骤,以下列表 注明他们中间的区别 。 ------------------------------------------------------------- Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic ------------------------------------------------------------- AbsolutePage 不 支撑 不 支撑 可读写 可读写 AbsolutePosition 不 支撑 不 支撑 可读写 可读写 ActiveConnection 可读写 可读写 可读写 可读写 BOF 只读 只读 只读 只读 Bookmark 不 支撑 不 支撑 可读写 可读写 CacheSize 可读写 可读写 可读写 可读写 CursorLocation 可读写 可读写 可读写 可读写 CursorType 可读写 可读写 可读写 可读写 EditMode 只读 只读 只读 只读 EOF 只读 只读 只读 只读 Filter 可读写 可读写 可读写 可读写 LockType 可读写 可读写 可读写 可读写 MarshalOptions 可读写 可读写 可读写 可读写 MaxRecords 可读写 可读写 可读写 可读写 PageCount 不 支撑 不 支撑 只读 只读 PageSize 可读写 可读写 可读写 可读写 RecordCount 不 支撑 不 支撑 只读 只读 Source 可读写 可读写 可读写 可读写 State 只读 只读 只读 只读 Status 只读 只读 只读 只读 AddNew 支撑 支撑 支撑 支撑 CancelBatch 支撑 支撑 支撑 支撑 CancelUpdate 支撑 支撑 支撑 支撑 Clone 不 支撑 不 支撑 Close 支撑 支撑 支撑 支撑 Delete 支撑 支撑 支撑 支撑 GetRows 支撑 支撑 支撑 支撑 Move 不 支撑 支撑 支撑 支撑 MoveFirst 支撑 支撑 支撑 支撑 MoveLast 不 支撑 支撑 支撑 支撑 MoveNext 支撑 支撑 支撑 支撑 MovePrevious 不 支撑 支撑 支撑 支撑 NextRecordset 支撑 支撑 支撑 支撑 Open 支撑 支撑 支撑 支撑 Requery 支撑 支撑 支撑 支撑 Resync 不 支撑 不 支撑 支撑 支撑 Supports 支撑 支撑 支撑 支撑 Update 支撑 支撑 支撑 支撑 UpdateBatch 支撑 支撑 支撑 支撑 -------------------------------------------------------------- 其中NextRecordset 步骤并不 实用于Microsoft Access数据库 。 LockType Recordset对象Open 步骤的LockType参数 示意要采纳的Lock类型,如果 忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值 。LockType参数包括adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下: ------------------------------------------------------------- 常数 常数值 注明 -------------------------------------------------------------- adLockReadOnly 1 缺省值,Recordset对象以只读 模式启动, 无奈运行AddNew、Update及Delete等 步骤 adLockPrssimistic 2 当数据源正在更新时,系统会临时锁住 其余消费者的动作,以 维持数据 统一性 。 adLockOptimistic 3 当数据源正在更新时,系统并不会锁住 其余消费者的动作, 其余消费者 可以对数据进行增、删、改的操作 。 adLockBatchOptimistic 4 当数据源正在更新时, 其余消费者必须将CursorLocation属性改为adUdeClientBatch 威力对数据进行增、 删、改的操作 。 |