利用JSP的思想来做ASP

来源:网络时间:2011-07-04 16:04:24

  程序的功能有了个大体的框架,其实可以自己添加一些功能,比如开始的数据库连接 ,可以先设置
  变量然后通过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
  %>

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:9145908@qq.com
近期热点
1正常步态的跨步长度为() 2正确理解财政监督概念应该把握的要点包括() 3正确的组织价值标准是() 4正确的现代学生观为() 5正确训练偏瘫患者穿、脱衣服的方法是() 6正确的师生关系是() 7比如由“黑”想到“白”,由“水”想到“火”,由自私想到宽容,由燥热想到清凉。许多冰箱广告、饮料广告、洗涤用品、化妆品广告都是采用对比联想展开创意。例如,MCI长途电话服务公司做过这样一幅广告:一对夫妇刚到美国电话电报公司,给千里之外的儿子打完电话,母亲双手一摊,眼泪汪汪地问:“你知道我们打这个长途电话花了多少钱吗?”这则广告告诉了我们什么 8比如由“黑”想到“白”,由“水”想到“火”,由自私想到宽容,由燥热想到清凉。许多冰箱广告、饮料广告、洗涤用品、化妆品广告都是采用对比联想展开创意。例如,MCI长途电话服务公司做过这样一幅广告:一对夫妇刚到美国电话电报公司,给千里之外的儿子打完电话,母亲双手一摊,眼泪汪汪地问:“你知道我们打这个长途电话花了多少钱吗?”这则广告告诉了我们什么() 9比尔·本巴赫所创立的DDB广告公司以其众多杰出的反传统广告而著称于世,下列选项属于其经典作品的是() 10比如,设计一句广告口号,构筑一条企业理念,命名一种新产品是头脑激荡法的哪一步骤()