當初只是為了玩玩寫的,沒想到寫了之后不斷有人詢問,所以改寫了一下代碼,完善了一下,支持了正則替換,避開了會導致出錯的二進制(ole對象),并且做了一個EXE的程序。感謝虛擬幫忙。
附asp代碼:
復制代碼 代碼如下:
%
'####################################
'批量替換數(shù)據(jù)庫內(nèi)容2008-3-17
'替換是不可逆的,所以操作前做好能備份
'####################################
Dim Db,conn,Rs1,Rs2,Str1,Str2,I,Re
str1="admi[0-z]" '要替換的字符串,支持正則
str2="1234" '替換為的字符串
Db="db.mdb" '數(shù)據(jù)庫地址
'以下無需改動
'創(chuàng)建正則對象
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 "替換完成"
'自定義的替換函數(shù)
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
%>
您可能感興趣的文章:- asp常用的正則表達式實現(xiàn)字符串的替換
- ASP正則函數(shù)替換分頁后的參數(shù)
- asp 圖片正則 替換,替換前檢查圖片是不是本地地址的方法
- asp.net高效替換大容量字符實現(xiàn)代碼
- asp.net(c#)判斷遠程圖片是否存在
- asp.net保存遠程圖片的代碼
- ASP保存遠程圖片到本地 同時取得第一張圖片并創(chuàng)建縮略圖的代碼
- ASP替換、保存遠程圖片實現(xiàn)代碼