Ein Skript, das ich vor einigen Jahren geschrieben habe, kann Daten in der gesamten Datenbank automatisch ersetzen.
Zuerst habe ich es nur zum Spaß geschrieben, aber ich hatte nicht erwartet, dass die Leute nach dem Schreiben immer wieder danach fragen würden, also habe ich den Code umgeschrieben und verbessert. Er unterstützte das regelmäßige Ersetzen und vermied Binärdateien (alte Objekte), die dazu führen würden Fehler und erstellte ein EXE-Programm. Danke für die virtuelle Hilfe.
Angehängter ASP-Code:
Kopieren Sie den Code wie folgt:<%
'##################################
'Batch-Ersetzung des Datenbankinhalts 2008 -3-17
'Der Austausch ist irreversibel, daher vor dem Betrieb ein Backup erstellen
'############################## ### #
Dimmen Db,conn,Rs1,Rs2,Str1,Str2,I,Re
str1=admi[0-z] 'Zu ersetzende Zeichenfolge, unterstützt reguläre
str2=1234'Zu ersetzende Zeichenfolge
Db=db.mdb 'Datenbankadresse
' Keine Notwendigkeit um Folgendes zu ändern
: „Reguläres Objekt erstellen
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 'Wenn es sich um eine Benutzertabelle handelt, führen Sie die
Set
-Operation ausRs2=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 'Alle Felder durchqueren
Wenn Rs2(i).Properties(ISAUTOINCREMENT) = False und Rs2(i).Type<>128 und Rs2(i).Type<>204 And Rs2(i).Type<>205 Then 'If it is not a Automatic Number and it is not a ole object
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 Replacement
abgeschlossen'Kundenspezifische Ersetzungsfunktion
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
% >