服务器之家

服务器之家 > 正文

asp+Access通用的自动替换数据库中的字符串

时间:2019-09-24 10:21     来源/作者:asp教程网

当初只是为了玩玩写的,没想到写了之后不断有人询问,所以改写了一下代码,完善了一下,支持了正则替换,避开了会导致出错的二进制(ole对象),并且做了一个EXE的程序。感谢虚拟帮忙。 
附asp代码: 

复制代码代码如下:

<%     
'####################################     
'批量替换数据库内容2008-3-17     
'替换是不可逆的,所以操作前做好能备份     
'####################################     
Dim Db,conn,Rs1,Rs2,Str1,Str2,I,Re     
str1="admi[0-z]" '要替换的字符串,支持正则     
str2="1234" '替换为的字符串     
Db="db.mdb" '数据库地址     
'以下无需改动     
'创建正则对象     
Set Re=new RegExp     
    Re.IgnoreCase =True    
    Re.Global=True    
Set Conn=Server.CreateObject("ADODB.Connection")     
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(Db)     
Set Rs1 = Conn.OpenSchema(20)     
    Do While Not Rs1.Eof     
        If UCase(Rs1("TABLE_TYPE"))="TABLE" Then '如果是用户表,则进行操作     
          Set Rs2=Server.Createobject("adodb.recordset")     
              Rs2.Open "select * from ["&Rs1("TABLE_NAME")"]",conn,1,3     
              Do While Not Rs2.Eof     
                For I=0 to Rs2.fields.count-1 '遍历所有字段     
                    If Rs2(i).Properties("ISAUTOINCREMENT") = False And Rs2(i).Type<>128 And Rs2(i).Type<>204 And Rs2(i).Type<>205 Then '如果非自动编号并且非ole对象     
                        Rs2(Rs2(i).name)=Myreplace(Rs2(i).value&"")     
                    End If    
                Next    
             Rs2.Movenext     
             Loop    
        Rs2.Close     
        Set Rs2=nothing     
        End If    
    Rs1.MoveNext     
    Loop    
Rs1.Close     
Set Rs1=Nothing    
Conn.close     
Set Conn=Nothing    
Set Re=Nothing    
Response.Write "替换完成"    

'自定义的替换函数     
Function myreplace(byval Tstr)     
If Tstr="" Or isnull(Tstr) Then      
 Exit Function    
Else    
    Re.Pattern=Str1     
    myReplace =Re.Replace(Tstr,Str2)     
End If    
End Function    
%> 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部