加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

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

发布时间:2023-05-24 13:55:45 所属栏目:Asp教程 来源:
导读:几年前写的一个脚本,可以自动进行整库的数据替换。

当初只是为了玩玩写的,没想到写了之后不断有人询问,所以改写了一下代码,完善了一下,支持了正则替换,避开了会导致出错的二进制(ole对象),并且做了一个
几年前写的一个脚本,可以自动进行整库的数据替换。
 
当初只是为了玩玩写的,没想到写了之后不断有人询问,所以改写了一下代码,完善了一下,支持了正则替换,避开了会导致出错的二进制(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
 
%>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章