ASP程序设计总结

由于过两天就要做密码学方面的东西了,所以就简单地就近段时间所做的ASP程序(VB)做一下总结。我没有打算要在这方面成为expert,所以也没有做出什么像样的东西,几个工程都是半途而废,不过近一个月来的工作,我还是有些收获的。马马虎虎写了BBS、网上聊天、日历、留言本、网上考试、网上书店,这些程序都没有完完整整地写完过,很多都不规范,所以只能将一些有用的程序模块拿出来,希望对将来有借鉴意义。

模块一:数据库连接

1、对关系数据库SQLSERVER的连接:

 

Set conn=server.CreateObject("adodb.connection")

conn.Open "Provider=SQLOLEDB.1;Password=708;Persist Security Info=False;User ID=wang;Initial Catalog=bbs;Data Source='127.0.0.1'"

sql="select * from user_all"

set rs=server.CreateObject("adodb.recordset")

rs.Open sql,conn

 

2、对非关系数据库如ACSESS的连接:

 

set conn=server.CreateObject("adodb.connection")

conn.Open "dsn=pubs"

sql="select * from authors"

set rs=conn.execute(sql)

或者下面:

set conn=server.createobject("adodb.connection")

conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")

exec="select * from guest"

set rs=server.createobject("adodb.recordset")

rs.open exec,conn,1,1

 

模块二:数据库文件内容的分页显示

 

mypage=request.QueryString("whichpage")

if mypage="" then

mypage=1

end if

if mypagesize="" then

mypagesize = 4

end if

set rs=server.CreateObject("adodb.recordset")

conn = "dsn=pubs"

sql="select * from authors"
rs.CursorLocation = 3
rs.Open sql,conn,3,3

rs.MoveFirst

rs.PageSize = mypagesize

maxcount=cint(rs.PageCount)

rs.AbsolutePage = mypage

howmanyfields=rs.fields.count-1

howmanyres=0

response.Write "Page "&mypage&" of "&maxcount&"

........下面用循环显示rs.fields集合中的元素

 

模块三:框架文件的自适应调整

 

iframe name="win" frmeboder=1 scrolling=no height="100%" width="100%" marginheight=0 οnlοad="document.getElementById('win').style.height=win.document.body.scrollHeight+'px'"

 

模块四:登录验证

 

user=request.Form("user")

psd=request.Form("psd")

isuser=false

rs.MoveFirst

do while not rs.EOF and isuser=false

if strcomp(cstr(rs.Fields("user_id")),user,1)=0 and strcomp(rs.Fields("user_psd"),psd,1)=0 then

isuser=true

session("user_id")=user

exit do

end if

rs.MoveNext

loop

 

SQL数据类型繁杂,这里做一下总结:

UNICODE字符串:

Varchar 可变char 固定,而text是很长的可变字符串

UNICODE字符串,只是关键字前加N,最大长度/2

数字型:

Int 对应C语言中的LONGsmallint对应SHORTtinyint对应unsigned char

DECIMALDECIMAL-10^38+110^381固定精度和小数位的数字数据

货币:

Money 对应C语言的double(8字节)smallmoney对应float(4字节)

日期:

Datetime 17531.1999912. 31的日期和时间数据,精确到百分之三秒。

Smalldatetime 19001.120796. 6的日期和时间数据,精确到分钟。

下面摘录一些ASP代码编写的注意点:

1、使用VBSCRIPT时,最好要申明Option Explicit,且把它放在代码前面

2、当需要传递参数或将数据保存为字符串时,最好能够使用Server.URLEncode

3、当创建并使用完一个对象后,最好能彻底释放其所占的资源,如set rs=nothing

4、当涉及到服务器文件路径时,最好使用server.mappath()方法

5、不要使用session()application()变量来存放一个数据库对象,这样会消耗许多资源。

6、不要通过ASP/COM来获取同一个数据多次,而应该第一次就将数据放入一个变量,然后使用变量的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值