Script yang saya tulis beberapa tahun lalu dapat secara otomatis mengganti data di seluruh database.
Saya hanya menulisnya untuk bersenang-senang pada awalnya, tetapi saya tidak menyangka orang akan terus bertanya tentang hal itu setelah saya menulisnya, jadi saya menulis ulang kodenya dan memperbaikinya. Ini mendukung penggantian reguler, menghindari biner (objek ole) yang dapat menyebabkan kesalahan, dan membuat program EXE. Terima kasih atas bantuan virtualnya.
Kode asp terlampir:
Salin kode sebagai berikut:<%
'####################################
'Batch replace database content 2008 -3-17
'Penggantian tidak dapat diubah, jadi buatlah cadangan sebelum pengoperasian
' ################################# ### #
Redupkan Db,conn,Rs1,Rs2,Str1,Str2,I,Re
str1=admi[0-z] 'String yang akan diganti, mendukung
str2=1234'String yang akan diganti
Db=db.mdb 'Alamat database
' Tidak perlu
untuk mengubah'Buat objek biasa
Set Re=new RegExp
Re.IgnoreCase =True
Re.Global=True
Set
berikut ini
Conn=Server.CreateObject(ADODB.Connection)
Conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Sumber Data=&server.mappath(Db)
Setel Rs1 = Conn.OpenSchema(20)
Lakukan Sementara Bukan Rs1.Eof
Jika UCase( Rs1(TABLE_TYPE))=TABLE Kemudian 'Jika itu adalah tabel pengguna, lakukan
operasiSet Rs2=Server.Createobject(adodb.recordset)
Rs2.Buka pilih * dari [&Rs1(TABLE_NAME)],conn,1,3
Lakukan Sementara Tidak Rs2.Eof
Untuk I=0 hingga Rs2.fields.count-1 'Melintasi semua bidang
Jika Rs2(i).Properties(ISAUTOINCREMENT) = Salah Dan Rs2(i).Type<>128 Dan Rs2(i).Type<>204 Dan Rs2(i).Type<>205 Lalu 'Jika ini bukan nomor otomatis dan bukan objek ole
Rs2(Rs2(i).name)=Myreplace(Rs2(i) ).value&)
Berakhir Jika
Berikutnya
Rs2.Movenext
Loop
Rs2.Close
Set Rs2=tidak ada
Berakhir Jika
Rs1.MoveNext
Loop
Rs1.Close
Set Rs1=Tidak Ada
Conn.close
Set Conn=Tidak Ada
yang Ditetapkan Re=Tidak Ada
Response.Tulis Penggantian
selesai'Fungsi penggantian yang disesuaikan
Fungsi myreplace(byval Tstr)
If Tstr= Atau isnull(Tstr) Kemudian
Keluar dari Fungsi
Else
Re.Pattern=Str1
myReplace =Re.Replace(Tstr,Str2)
End If
End Function
% >