|
这几天开始接触JSP里面一些BEAN的写法,然后自己想了想,认为其实在ASP里面也可以采取这一思想来做。虽然不是很纯,不彻底,但是能够把一些逻辑处理分离出来,更适合程序的移植性,提高了开发周期。我自己写了个类ConnEX包含了一些对数据库的操作,觉得应该可以包括一大部分的逻辑处理,但是这样也提高了错误几率,如果你把SQL语句控制的比较好的话,应该是利大于弊的,这里都是一点点拙见,望大家指正。
程序的功能有了个大体的框架,其实可以自己添加一些功能,比如开始的数据库连接 ,可以先设置变量然后通过INIT() 来选择不同类型的数据库
<% '******************************************************************************************* '* 程序:ConnEx.asp '* '* 描述:模仿JAVABEAN写的一个类,专门操作数据库,提供多种方法操作,但要避免SQL语法错误! '* '* 作者:田野 Email:Foxty@sina.com '* '* 日期: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")
[1] [2] 下一页
|