当前位置: 首页 > 图文教程 > 网络编程 > ASP > 利用JSP的思想来做ASP

ASP
ASP调用ORACLE存储过程并返回结果集
用ASP实现网页BBS
关于Global.asa文件的深入研究与session变量失效提示的具体方法
简易ASP+注册系统
防护手册:如何防止ASP木马在服务器上运行
用Visual Basic实现多画面播放功能之二
如何增强ASP程序性能(1)
如何增强ASP程序性能(2)
如何增强ASP程序性能(3)
ASP备份数据库
二十八条改善 ASP 性能和外观的技巧
在Form域中Post大于100K的数据
如何使用ASP制作模似动态生长的表单?
Microsoft IIS 真的如此「不安全」吗?(1)
Microsoft IIS 真的如此「不安全」吗?(2)
Microsoft IIS 真的如此「不安全」吗?(3)
Microsoft IIS 真的如此「不安全」吗?(4)
Microsoft IIS 真的如此「不安全」吗?(5)
关于页面和代码分离
ServerVariables 对路径的操作

利用JSP的思想来做ASP


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 37 ::
收藏到网摘: n/a

这几天开始接触JSP里面一些BEAN的写法,然后自己想了想,认为其实在ASP里面也可以采取这一思想来做。虽然不是很纯,不彻底,但是能够把一些逻辑处理分离出来,更适合程序的移植性,提高了开发周期。我自己写了个类ConnEX包含了一些对数据库的操作,觉得应该可以包括一大部分的逻辑处理,但是这样也提高了错误几率,如果你把SQL语句控制的比较好的话,应该是利大于弊的,这里都是一点点拙见,望大家指正。

程序的功能有了个大体的框架,其实可以自己添加一些功能,比如开始的数据库连接 ,可以先设置变量然后通过INIT() 来选择不同类型的数据库

<%
'*******************************************************************************************
'* 程序:ConnEx.asp
'*
'* 描述:模仿JAVABEAN写的一个类,专门操作数据库,提供多种方法操作,但要避免SQL语法错误!
'*
'* 作者:田野 Email:[email protected]
'*
'* 日期:2005.06.0
'*******************************************************************************************

'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

'======================================================Del