加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

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

发布时间:2023-05-24 12:57:02 所属栏目:Asp教程 来源:
导读:当初只是为了玩玩写的,没想到写了之后不断有人询问,所以改写了一下代码,完善了一下,支持了正则替换,避开了会导致出错的二进制(ole对象),并且做了一个EXE的程序。感谢虚拟帮忙。附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 "替换完成"  

(编辑:银川站长网)

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

    推荐文章