通行证:用户名 密码 首页 - 新闻 - 免费邮箱 - 短信 - POPO - 相册 - 搜索 - 交友 - 拍卖
NetEase
新闻 | 体育 | 财经 | 娱乐 | 商业 | 科技 | 汽车 | 数码 | 女人 | 旅游 | 教育 | 文化 | 广州 | 军事 | 部落
评论 | NBA | 明星 | 证券 | 基金 | 探索 | 房产 | 手机 | 两性 | 健康 | 培训 | 电影 | 游戏 | 拍卖 | 论坛
你现在的位置是: 网易 > 网易科技 > 网易学院·教程

利用JSP的思想来做ASP

http://tech.163.com/school · 2005-09-12 13:35:04 · 来源: 中国站长网

    程序的功能有了个大体的框架,其实可以自己添加一些功能,比如开始的数据库连接 ,可以先设置

变量然后通过INIT() 来选择不同类型的数据库
<%
’On Error Resume Next
Class ConnEx
public ConnEx
public DBpath ’---------数据库路径
public DBtype ’---------数据库类型 1(Access) 2(SqlServer) 3(可扩充)
public ConnMethod ’--------连接方式 (DSN,非DSN)
public User
public Pass
Sub Class_initialize
End Sub

Sub Init()
ConnStr = "Driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("Date.mdb")
Set ConnEx = Server.Createobject("ADODB.CONNECTION")
ConnEx.Open ConnStr
CatchError("Class_Terminate")
End Sub

Sub CatchError( Str )
If Err Then
Err.Clear
Class_Terminate()
Response.Write("捕捉到错误,程序结束!在"&Str&"处")
Response.End()
End If
End Sub

’******************************************
’*通过SQL语句来查找记录是否存在,容易出错
’******************************************

Function HasRecordBySql( Sql )
Call CheckSql(Sql,"R")
Dim Rs,HasR
Set Rs = ConnEx.Execute( Sql )
CatchError("HasReordSql")
If Not (Rs.eof Or Rs.bof) Then
HasR = False
Else
HasR = True
End If
Rs.Close
Set Rs = Nothing
HasRecordBySql = HasR
End Function

’***************************************
’*通过ID来查找记录是否存在
’***************************************

Function HasRecordById( StrTableName , IntID )
’CheckValue( IntID , 1 )
Dim Rs,HasR
Sql = "Select top 1 * from "&StrTableName&" Where Id = "&IntID
Call CheckSql(Sql,"R")
Set Rs = ConnEx.Execute(Sql)
CatchError("HasRecordByID")
If Not (Rs.eof Or Rs.bof) Then
HasR = False
Else
HasR = True
End If
Rs.close
Set Rs = Nothing
HasRecordById = HasR
End Function

’**********************************************
’*通过SQL语句取得记录集
’**********************************************
Function GetRsBySql( Sql )
Call CheckSql(Sql,"R")
Dim Rs
Set Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Open Sql,ConnEx,1,1
Set GetRsBySql = Rs
End Function

’*********************************************
’*取得某个字段的值
’*********************************************
Function GetValueBySql( Sql )
Call CheckSql(Sql,"R")
Dim Rs,ReturnValue
Set Rs = ConnEx.Execute(Sql)
CatchError("GetValueBySql")
If Not( Rs.Eof Or Rs.Bof ) Then
ReturnValue = Rs(0)
Else
ReturnValue = "没有记录"
End If
Rs.Close
Set Rs = Nothing
GetValueBySql = ReturnValue
End Function

’==================================================Update,Insert===================================

’*********************************************
’*利用SQL修改数据
’*********************************************
Function UpdateBySql( Sql )
Call CheckSql(Sql,"w")
ConnEx.Execute(Sql)
CatchError("UpdateBySql")
UpdateBySql = True
End Function

’********************************************
’*利用SQL语句插入数据
’********************************************
Function InsertBySql(Sql)
Call CheckSql(Sql,"w")
ConnEx.Execute(Sql)
CatchError("InsertBySql")
InsertBySql = True
End Function

’======================================================Delete========================================

’********************************************
’*通过SQL语句删除
’********************************************
Function DeleteBySql( Sql )
Call CheckSql(Sql,"D")
ConnEx.Execute(Sql)
CatchError("DeleteBySql")
DeleteBySql = True
End Function

’********************************************
’*检查SQL语句权限,根据标志Flag 来检测语句拥有的权限
’********************************************
Sub CheckSql( Sql , Flag )
Dim StrSql,SinCounts,DouCounts,i
StrSql = Lcase(Sql)
SinCounts = 0
DouCounts = 0
For i = 1 to Len(StrSql)
If Mid(StrSql,i,1) = "’" Then SinCounts = SinCounts + 1
If Mid(StrSql,i,1) = """" Then DouConnts = DouCounts + 1
Next

If (SinCounts Mod 2) <> 0 Or (DouCounts Mod 2) <> 0 Or Instr(StrSql,";") > 0 Then
Call Class_Terminate()
Response.Write("SQL语法错误!")
Response.End()
End If
Select Case Flag
Case "R","r":
If Instr(StrSql,"delete") > 0 Or Instr(StrSql,"update") Or Instr(StrSql,"drop") > 0 Or Instr(StrSql,"insert") > 0 Then
Class_Terminate()
Response.Write("权限不足,没有执行写操作的权限")
Response.End()
End If
Case "W","w":
If Instr(StrSql,"delete") > 0 Or Instr(StrSql,"drop") > 0 Or Instr(StrSql,"select") > 0 Then
Class_Terminate()
Response.Write("权限不足,没有执行删除操作的权限")
Response.End()
End If
Case "D","d":
Case Else:
Response.Write("函数CheckSql标志错误!")
End Select
End Sub

Sub Class_Terminate
If Not IsEmpty(FriendConn) Then
FriendConn.Close
Set FriendConn = Nothing
CatchError()
End If
End Sub
End Class
%>

邹妙君 [返回首页]

相关文章:

推荐文章:

·赢在2007赛迪网年度企业人物榜单揭晓 ·你最需要哪种类型的视频教程 ·不用网银也网上购物 三步自助开通 ·2007年UPA用户体验大会成功闭幕 ·2007中国青年设计节暨用户体验年会在京开幕 ·User Friendly 2007现场图片 ·手机畅游互联网 空中Opera 2.0实测 ·动易软件即将全面开源和免费 ·搜图有“道” 图片达人的搜索秘籍 ·数字水墙 08年世博会亮相 ·RabbitAir MinusA2空气净化器设计 ·Oscar Bjarnason 平面设计 ·国产杀毒软件半个月内勇夺两项国际权威认证 ·美化你的博客-推荐多个博客图标下载网站 ·微软回应Vista用户遇到的网络问题“设计如此” ·eBay改进用户体验 借鉴亚马逊页面设计搜索功能 ·极点五笔6.0正式版发布 ·WPS Office 2007抢先试用 ·报告称Google Apps功能远不及微软Office ·什么是SOCK5代理,什么是HTTP代理

  更多评论 23 条评论
网易通行证:   密码:    
参与评论
  您的发表的评论将在5分钟内被审核,请耐心等待

网易学院联系电话:020-61210163-560 合作/投稿邮箱:NeteaseSchool(at)126.com