替换数据库内容

471 查看

<%
'####################################
'替换数据库内容 lamking 2005-8-22
'更新修正:2006-6-28
'http://www.imbbs.cn QQ:628557
'出售空间域名。网页制作。
'####################################
'以下请根据你的不同情况做修改
Const S1="admin" '要被替换的字符串
Const S2="1234" '替换为的字符串
Const Db="lamking.mdb" '数据库
Const IgnoreCase=True '忽略大小写
'以下数据无需更改
Dim oRs,oRs2,conn,I
 Set conn=Server.CreateObject("Adodb.Connection")
  conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(Db)
 Set oRs=conn.OpenSchema(20)
  Do While not oRs.Eof
   If Ucase(oRs("TABLE_TYPE"))="TABLE" Then '如果是用户表
     '循环替换该表的每一个字段
      Set oRs2=Server.CreateObject("Adodb.RecordSet")
       oRs2.Open "select * from ["&ors("TABLE_NAME")&"]",conn,1,3
        Do While Not oRs2.Eof
         For I=0 To oRs2.Fields.Count-1
          '如果是OLE对象或者自动编号字段,则不替换
           If oRs2(I).Properties("ISAUTOINCREMENT")=False And ors2(I).type<>205 Then
            oRs2(oRs2(I).Name)=MyReplace(oRs2(I).value)
           End If

         Next
         oRs2.update
        oRs2.MoveNext
        Loop
     oRs2.close
     set oRs2=Nothing
    End If
 oRs.Movenext
 Loop
 oRs.close
 Set oRs=nothing
Conn.close
Set Conn=nothing
Response.Write"替换完成"

Function myreplace(byval Tstr)
Dim RegEx
If Tstr="" Or isnull(Tstr) Then  Exit Function
 Set RegEx=New RegExp
  RegEx.Global = True
  RegEx.IgnoreCase = IgnoreCase
  RegEx.MultiLine = True
  RegEx.Pattern=S1
  myReplace=RegEx.Replace(TStr,S2)
 Set RegEx=Nothing
End Function
%>