ASP 编程中20个非常有用的例子

上一篇 / 下一篇  2007-07-19 16:36:37 / 个人分类:ASP

GtZ"nrs2a}R3M01.如何用Asp判断你的网站的虚拟物理路径51Testing软件测试网GpwPlo_7Po
  答:使用Mappath方法:<%= Server.MapPath('\')%>51Testing软件测试网s`"U(Zd f0k^

{4Qe;Tl02.我如何知道使用者所用的浏览器?51Testing软件测试网n)b(CV M2@@'b&y%p c/Gx
  答:使用the Request object方法:51Testing软件测试网7Ky0d S&Pr,W]
     <%
`a0tD1|6a0        strBrowser=Request.ServerVariables('HTTP_USER_AGENT')
\2R~ ~0n0        If Instr(strBrowser,'MSIE') <> 0 Then51Testing软件测试网6Zw/Ul:o;O8d&TX*W#C
          Response.redirect('formSIEOnly.htm')
&_/E+?gU7Ns0        Else
8_JXT4ww+l e0          Response.redirect('ForAll.htm')51Testing软件测试网)T$XfrvA/a&D
        End If
#ySgML0     %>
c4uYvO+sK3I7C:tX0
+c3N? tHlz4fL03.如何计算每天的平均反复访问人数51Testing软件测试网L{-?[r
  答:解决方法51Testing软件测试网0K%q!W i zZ/D
     <% startdate=DateDiff('d',Now,'01/01/1990')51Testing软件测试网\Z$dq[8?d
        if strdate< 0 then startdate=startdate*-151Testing软件测试网z7eIRIIp
        avgvpd=Int((usercnt)/startdate)
B%lFF |7T0     %>
5q!jE5?j0     显示结果
T}1nr+[;Q0     <% response.write(avgvpd) %>51Testing软件测试网 e&e2KGV5xzq p(j
     that is it.this page have been viewed since November 10,1998
%]6Y o&[~W0
L.YB'VW6@'N0{:s04.如何显示随机图象51Testing软件测试网#IC'}+@w
  <% dim p,ppic,dpic
+eWld8Qp&j0     ppic=1251Testing软件测试网&m5| tD!j
     randomize51Testing软件测试网5@mt&XYJ
     p=Int((ppic*rnd)+1)51Testing软件测试网7K7w1~:Is9Q~H4x
     dpic='graphix/randompics/'&p&'.gif'
P@(J2` G0  %>51Testing软件测试网.fy5M.gB5UC Y%A4?.c
  显示51Testing软件测试网0N!z-M,W,FL/igU/m
  <img src='< %=dpic% >' >
`m;{}'Y}~S'i0
u| O"qa{J J05.如何回到先前的页面51Testing软件测试网eP?S7X|$m1d\
  答:<a href='<%=request.serverVariables('Http_REFERER')%>' >preivous page</a>51Testing软件测试网%A[P H3P)|\
     或用图片如:< img src='arrowback.gif' alt='< %=request.serverVariables    ('HTTP_REFERER')% >' >
&Is|^'V iA EI0
G c8}w3Uw&em#n06.如何确定对方的IP地址
!Q!S.d3t g E0答:< %=Request.serverVariables('REMOTE_ADDR)% >
.q4dh4i7]W bt l0
P-R:o5~7J6S,cc07.如何链结到一副图片上
u%l!b+QREt,Of%T0答:< % @Languages=vbscrīpt % >
!s$Mw4P]T0< % response.expires=051Testing软件测试网r$R-J4V/w8}F
strimagename='graphix/errors/erroriamge.gif'
v6[Z4pQ0response.redirect(strimagename)
2L.P,i?8Z2hh F/Q}#U0% >
p fV)G!zrW f0
:| K9l&}\'Z_#d,BGw@08.强迫输入密码对话框
2B,i qWqc$l0答:把这句话放载页面的开头51Testing软件测试网'Tc`1H c-k C
< % response.status='401 not Authorized'51Testing软件测试网!FJ~wfj8B&S
response.end
w8D(sBO0% >
0E/K+F+q}7j.@7LEf051Testing软件测试网\1x;B5V;_-Y
9.如何传递变量从一页到另一页
4lZ Z}1r%`h3d0答:用 HIDDEN 类型来传递变量51Testing软件测试网Z'e*|5lHs'K
<form method='post' action='mynextpage.asp' >
]z f @ X ~`f0< % for each item in request.form % >
H1Lhpo}7q0< input name='< %=item% >' type='HIDDEN'
'N4uw&vBc0value='< %=server.HTMLEncode(Request.form(item)) % >' >51Testing软件测试网[{!qg `
< % next % >
z ^2N Y x0< /form >51Testing软件测试网TP9d:_)g#f#v`f
51Testing软件测试网3~O5PDl+M
10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限51Testing软件测试网 vB({U bG2t#w A(?y
答:由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你 ( 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
pDBch@Z0<%yourVar='测试对话框'%>
V|&}2\zfu0<scrīpt language='javascrīpt'>51Testing软件测试网4iu x4k?%h|s
alert('<%=yourvar%>')51Testing软件测试网&}Q:K3kD ~)od%Mf
</scrīpt>

m{D-PO[0

9X5jEL"U8`lk011.有没有办法保护自己的源代码,不给人看到51Testing软件测试网:iG5rJ!ijg xmg
答:可以去下载一个微软的Windows scrīpt Encoder,它可以对asp的脚本和客户端javascrīpt/vbscrīpt脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有scrīpt engine 5(装一个ie5就有了)才能执行。
cj,C+QYk051Testing软件测试网"^H1@&l Cl"p g
12.怎样才能将 querystring 从一个 asp 文件传送到另一个?
`W K0cjA uL0答:前者文件加入下句: Response.Redirect('second.asp?' & Request.ServerVariables('QUERY_STRING'))51Testing软件测试网*Hmq&^&U
51Testing软件测试网A!hp_ c"rc7n,Y
13.global.asa文件总是不起作用?51Testing软件测试网3JgY qH T jG5l_l
答:只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
a `(`(A@.t,d,p0tS ?051Testing软件测试网8a? E g!Ed
14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
_*M-I3@&v1c lr0答:Internet Sevices Manager - > 选择default web site - >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting)- > 点击按钮 '配置'- > app mapping - >点击按钮'Add' - > executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。51Testing软件测试网5dY xV/cz f
51Testing软件测试网!Q"O'h xV(p1K5]`o
15.如何注册组件
)|:npkeM;Qt0答:有两种方法。
b1O%N2K/~'i6U?0第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll
5z;{%W-w-oBN0第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:51Testing软件测试网V2w r6j[
1) 打开IIS管理控制台。
FsW'g2wl02) 展开transaction server,右键单击'pkgs installed'然后选择'new package'。51Testing软件测试网9F)u:Ju EY)P^p
3) 单击'create an empty package'。51Testing软件测试网2J+k;d8f z
4) 给该包命名。51Testing软件测试网7yziP0b
5) 指定administrator帐号或则使用'interactive'(如果服务器经常是使用administrator 登陆的话)。
5I-L&JA V"d4f C M&B(A06) 现在使用右键单击你刚建立的那个包下面展开后的'components'。选择 'new then component'。51Testing软件测试网&Y(~lV&F"B }+Z?&B'g
7) 选择 'install new component' 。51Testing软件测试网^hAz+K {$Pw|i
找到你的.dll文件然后选择next到完成。
X6IA!BFt R5A0要删除这个对象,只要选择它的图标,然后选择delete。
4]8Ywr ]~1e8d ~|*G0附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。51Testing软件测试网Ge/K lhY

cl(g_7s7S,XB016. ASP与Access数据库连接:
;_-ULeB0<%@ language=VBscrīpt%>51Testing软件测试网t1Q*?}!x1R'`"Q cy
<%
+d"f0\Y0L.Y0dim conn,mdbfile
HV tX$D5o5`d0mdbfile=server.mappath('数据库名称.mdb')
a f2CH~/?.d4N2Z-q0set conn=server.createobject('adodb.connection')51Testing软件测试网n|#wVM$p-l
conn.open 'driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq='&mdbfile
wjWy6z l L&u0%>
3u'C!u-@g.lT@0
!\B7zi MW;G017. ASP与SQL数据库连接:51Testing软件测试网sjiP ^+}
<%@ language=VBscrīpt%>
2o-lJ i}#a;fGc P0<%
H u m1Z(e#n#QSa5A0dim conn
IJ4FtxH%F`$vF0set conn=server.createobject('ADODB.connection')51Testing软件测试网ua;QiHMD&^F
con.open 'PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
G ai [j0%>
0V"O;e$t7^)n3p0建立记录集对象:
:}Q0m_;w$v]6s9r0U0<%51Testing软件测试网k5m9ay i[ m~
set rs=server.createobject('adodb.recordset')
1y9yp6`:kr0rs.open SQL语句,conn,3,251Testing软件测试网1k,i{Hh
%>
8V6~R|`/H0
~3WVeIo v5j018. SQL常用命令使用方法:51Testing软件测试网2H,Sy%q {+v`M
(1) 数据记录筛选:51Testing软件测试网Zi.B%[rm6A uH
sql='select * from 数据表 where 字段名=字段值 order by 字段名 [desc]'
,{IJwd&o;r0sql='select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]'
_"`B ]Kve0UV2~0sql='select top 10 * from 数据表 where 字段名 order by 字段名 [desc]'51Testing软件测试网8}0V ~!b,cXOX
sql='select * from 数据表 where 字段名 in ('值1','值2','值3')'
)D X xib+uT0sql='select * from 数据表 where 字段名 between 值1 and 值2'
BkM,q7SH0(2) 更新数据记录:
+_C9[ ]L0sql='update 数据表 set 字段名=字段值 where 条件表达式'
8D]8[+e v O0sql='update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式'51Testing软件测试网._vU3^-j:K.\-d I
(3) 删除数据记录:
t F0Mfc8c DY0sql='delete from 数据表 where 条件表达式'
|6S-SG1_!~Y$y4R0sql='delete from 数据表' (将数据表所有记录删除)51Testing软件测试网!O(I;SZ;['_By
(4) 添加数据记录:51Testing软件测试网C R4BaQpl5O@
sql='insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)'
&JZCo5MLk0sql='insert into 目标数据表 select * from 源数据表' (把源数据表的记录添加到目标数据表)
Y2aR$N/^5`,z?C6v7Q0(5) 数据记录统计函数:51Testing软件测试网/^Ouq(\BWQQ6D!M@
AVG(字段名) 得出一个表格栏平均值
v7Pi\U!F }2z:} o,R0COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
1gd#d(yotKaR0MAX(字段名) 取得一个表格栏最大的值51Testing软件测试网1Z!O P{3R
MIN(字段名) 取得一个表格栏最小的值
w-e(@8XZAH;_0SUM(字段名) 把数据栏的值相加51Testing软件测试网.X^6q sZ
引用以上函数的方法:
lj9` E;xI.LD5W0sql='select sum(字段名) as 别名 from 数据表 where 条件表达式'
`3u%{L/PJt r0set rs=conn.excute(sql)51Testing软件测试网*ZU}A,U0@
用 rs('别名') 获取统的计值,其它函数运用同上。
W@1M5MK1y-}0(5) 数据表的建立和删除:51Testing软件测试网,CE2A7eU
CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )51Testing软件测试网F UQ-SzrKD g
例:CREATE TABLE tab01(name varchar(50),datetime default now())
,P {o/z%i S0DROP TABLE 数据表名称 (永久性删除一个数据表)51Testing软件测试网!]/@)h__s7j9G
51Testing软件测试网W*H xlM9U_"]
19. 记录集对象的方法:51Testing软件测试网3h``db\d
rs.movenext 将记录指针从当前的位置向下移一行51Testing软件测试网dF'Lr5Z
rs.moveprevious 将记录指针从当前的位置向上移一行51Testing软件测试网VWp3?#k,P
rs.movefirst 将记录指针移到数据表第一行
hOp m w7l(m*a._*n ^0rs.movelast 将记录指针移到数据表最后一行
'wC;psk,w0rs.absoluteposition=N 将记录指针移到数据表第N行51Testing软件测试网^ `e*L7F
rs.absolutepage=N 将记录指针移到第N页的第一行
;L,a+P)dd E0rs.pagesize=N 设置每页为N条记录51Testing软件测试网s@S;r x V
rs.pagecount 根据 pagesize 的设置返回总页数
y(p7K8Fx&r,G0rs.recordcount 返回记录总数51Testing软件测试网&h&}:HUm*`4y
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否51Testing软件测试网2k(UK3Dj)@!H+]!u W
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
6r+q ^&v0?Y b0rs.delete 删除当前记录,但记录指针不会向下移动51Testing软件测试网'gy2PlLh/x
rs.addnew 添加记录到数据表末端
"L!r5cH`Xd0rs.update 更新数据表记录
*R.Z/y4Y&B#m051Testing软件测试网T&F.}8F/`F:T
20 Recordset对象方法
IV-`R w;R`0Open方法
N&tK,W}P_"l'mA3yr0recordset.Open Source,ActiveConnection,CursorType,LockType,Options
WFU8M}r`0Source
-R5S Roy.QZE!Ty0Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。51Testing软件测试网+Qu#z(V7w,K)|


TAG: ASP

 

评分:0

我来说两句

Open Toolbar