老马常用函数集

 Dim oRs, sSql, oConn ''全局变量

 Sub CreateConn()
  Dim sConnStr
  
  If(IsObject(oRs) = False)Then
   Set oRs = Server.CreateObject("Adodb.RecordSet")
  End If

  If(IsObject(oConn) = False)Then
   Set oConn = Server.CreateObject("Adodb.Connection")
  End If

  If DB_IS_ACCESS = True Then
   sConnStr = Replace(DB_MDB_STR, "{$DB_SOURCE}", SITE_ROOT_DIR & "\" & DB_SOURCE)
  Else
   sConnStr = DB_SQL_STR
  End If
  
  If Not(DEBUGGING) Then On Error Resume Next
  
  Err.Clear
  If(oConn.State = 0)Then oConn.Open sConnStr

  ErrInfoOut(Err)
 End Sub
 
 '================================================
 '| 函数名: ExecSQL
 '| 作 用: 在当前环境中执行sSql中的语句, 并返回执行情况
 '================================================
 Function ExecSQL(sSql)
 
  Dim iRowsAffected
  SQL_QUERIES = SQL_QUERIES + 1
  If Not(DEBUGGING) Then On Error Resume Next
  
  Err.Clear
  oConn.Execute sSql, iRowsAffected
  ExecSQL = iRowsAffected
  
  ErrInfoOut(Err)
  
 End Function

 '================================================
 '| 函数名: QuerySQL
 '| 作 用: 在当前环境中执行sSql中的语句, 并返回记录集或者False(执行错误)
 '================================================
 Function QuerySQL(sSql)
 
  Dim Rs
  Err.Clear
  SQL_QUERIES = SQL_QUERIES + 1
  If Not(DEBUGGING) Then On Error Resume Next
  'Response.Write sSql & "<br />"

  Set Rs = Server.CreateObject("Adodb.RecordSet")
  Rs.Open sSql, oConn, 1, 1

  If(Not Rs.EOF)Then
   QuerySQL = Rs.GetRows()
  Else
   QuerySQL = Empty
  End If
  
  Rs.Close
  Set Rs = Nothing

  ErrInfoOut(Err)
  
 End Function
 
 '================================================
 '| 函数名: AddNewRecord
 '| 作 用: 在指定表sTable中插入一条新记录,aName、aValue分别是字段和值数组
 '================================================
 Function AddNewRecord(sTable, aName, aValue)
 
  Dim i, j, sSql

  SQL_QUERIES = SQL_QUERIES + 1

  sSql = "Select * From " & sTable & ""
  oRs.Open sSql, oConn, 1, 3
  oRs.AddNew

  For i = 0 To UBound(aName)

   'Response.Write aName(i) & "=" &  aValue(i) & "<br />"
   If(InStr(aName(i), "_Title") > 0)Or(InStr(aName(i), "_Content") > 0)Or(InStr(aName(i), "_UserName") > 0)Or(InStr(aName(i), "_Reply") > 0)Then

    aValue(i) = BadWordsTrim(aValue(i))

   End If

   For J = 0 To UBound(ARY_JP_DECODE)
    aValue(i) = Replace(aValue(i), ARY_JP_DECODE(J), ARY_JP_ENCODE(J))
   Next

   oRs(aName(i)) = aValue(i)

  Next

  AddNewRecord = oRs("ID")

  oRs.Update
  oRs.Close
 
 End Function
 
 '================================================
 '| 函数名: UpdateRecord
 '| 作 用: 更新一条指定的记录,aName、aValue分别是字段和值数组,其中0下标为条件
 '================================================
 Function UpdateRecord(sTable, aName, aValue)
 
  Dim i, j, sSql

  SQL_QUERIES = SQL_QUERIES + 1

  sSql = "Select * From " & sTable & " Where " & aName(0) & "=" & aValue(0)
  oRs.Open sSql, oConn, 1, 3

  For i = 1 To UBound(aName)

   If(InStr(aName(i), "_Title") > 0)Or(InStr(aName(i), "_Content") > 0)Or(InStr(aName(i), "_UserName") > 0)Or(InStr(aName(i), "_Reply") > 0)Then

    aValue(i) = BadWordsTrim(aValue(i))

   End If

   For J = 0 To UBound(ARY_JP_DECODE)
    aValue(i) = Replace(aValue(i), ARY_JP_DECODE(J), ARY_JP_ENCODE(J))
   Next

   oRs(aName(i)) = aValue(i)

  Next

  oRs.Update
  oRs.Close
 
 End Function

 Sub DestoryConn()
  
  If IsObject(oRs) Then Set oRs = Nothing
  
  If IsObject(oConn) Then
  
   If(oConn.State = 1)Then oConn.Close
   Set oConn = Nothing
   
  End If
  
 End Sub

posted on 2009-05-06 09:14  老有所依  阅读(217)  评论(0)    收藏  举报

导航