替换mdb数据库中文字或字符串的方法(测试可用)

由于要替换博客中某些敏感词(防止博客被和谐),需要批量操作数据库:批量替换数据库中的某个关键词。但是使用access数据库打开mdb数据库,竟然发现里面的搜索功能毫无反应,难道是用的office精简版的原因?不好说……经过研究,发现网上流传的方法有些不可用,但是也有可用的。

经过测试,下面一个方法非常不错,但是需要使用运行asp程序,代码如下(替换mdb数据库中文字或字符串的方法一。注:已测试,可能存在某些漏洞导致数据库某些数据出现问题,如此方法出现问题,可使用第二个方法,已测试成功无错批量替换mdb数据库中文字):

<%
‘####################################
‘替换mdb数据库内容或字符串
‘https://www.lingling00.com
‘####################################
Dim Db,Connstr,conn,rs,rs2,str1,str2,I
str1=”阿光” ‘要替换的字符串
str2=”光的传人” ‘替换为的字符串
Db=”data.mdb”
Set conn=Server.CreateObject(“ADODB.Connection”)
ConnStr=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=”&server.mappath(Db)
Conn.Open ConnStr
Set rs = conn.OpenSchema(20)
Do While Not rs.eof
If rs(“TABLE_TYPE”)=”TABLE” Then
Set Rs2=Server.Createobject(“adodb.recordset”)
Rs2.Open “select * from [“&rs(“TABLE_NAME”)&”]”,conn,1,3
Do While Not Rs2.Eof
For I=0 to Rs2.fields.count-1
If Rs2(i).Properties(“ISAUTOINCREMENT”) = False Then
Rs2(Rs2(i).name)=Myreplace(Rs2(i).value)
End If
Next
Rs2.Movenext
Loop
Rs2.Close
Set Rs2=nothing
End If
Rs.Movenext
Loop
Rs.close
Set Rs=nothing
Conn.close
Set Conn=nothing
Response.Write”替换完成”
Function myreplace(byval Tstr)
If Tstr=”” Or isnull(Tstr) Then
Exit Function
Else
myReplace=replace(Tstr,str1,str2)
End If
End Function
%>

以上代码成功运行后,会出现“替换完成”提示,这样就大功告成了。(经测试,数据库会受到一定损害,我的博客之前的文章出现不能编辑,生成不完整的现象,不知是何缘故。使用前请备份好数据库 )

但是如果没有运行asp的条件或环境呢?可以用一个asp运行的小程序,例如:Aws.exe、Ajiu AspWebServer V1.0.exe、Ajiu AspWebServer V1.8、Baby Web Server 2.6.2.exe、黑风ASP服务器.exe、智能端口急速版v1.3.exe、Smart Server Plus v2.0.exe等等。

替换mdb数据库中文字或字符串的方法二(推荐):

由于以上方法修改的mdb数据库出现调用问题,特此再更新一个方法,经测试批量替换完成后,数据库没有出现以上错误。这个方法就是使用“速用数据库修改器”:SuperDataBase_NewHua.exe。其界面如下:

替换mdb数据库中文字或字符串的方法(测试可用)-1
如果不嫌麻烦,还有另外一个解决方案,替换mdb数据库中文字或字符串的方法三:

1、将需要替换的字段整列复制到excle中,然后在excle中进行批量查找替换。

2、然后再将替换好的整列复制到数据库中(注意不要错行)。

以上方法适合包含需要替换关键词的字段少的情况,如果mdb数据库需要替换的列太多,这种方法就比较麻烦了。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2466060800@qq.com 举报,一经查实,本站将立刻删除。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注