Un script que j'ai écrit il y a quelques années peut remplacer automatiquement les données de l'ensemble de la base de données.
Je l'ai juste écrit pour m'amuser au début, mais je ne m'attendais pas à ce que les gens continuent à me poser des questions après l'avoir écrit, alors j'ai réécrit le code et je l'ai amélioré. Il prenait en charge le remplacement régulier, évitait les binaires (objets ole) qui engendreraient. erreurs et créé un programme EXE. Merci pour l'aide virtuelle.
Code asp ci-joint :
Copiez le code comme suit :<%
'###################################
'Remplacer par lots le contenu de la base de données 2008 -3-17
'Le remplacement est irréversible, faites donc une sauvegarde avant l'opération
'############################### ### #
Faible Db,conn,Rs1,Rs2,Str1,Str2,I,Re
str1=admi[0-z] 'Chaîne à remplacer, prend en charge
str2=1234'Chaîne à remplacer
Db=db.mdb 'Adresse de base de données
' Pas besoin pour modifier ce qui suit
'Créer un objet régulier
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 Puis 'S'il s'agit d'une table utilisateur, effectuez l'
opérationSet 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 'Parcourir tous les champs
Si Rs2(i).Properties(ISAUTOINCREMENT) = False Et Rs2(i).Type<>128 Et Rs2(i).Type<>204 Et Rs2(i).Type<>205 Alors 'Si ce n'est pas un numéro automatique et ce n'est pas un objet ole
Rs2(Rs2(i).name)=Myreplace(Rs2(i .value&)
Fin si
suivant
Rs2.Movenext
Boucle
Rs2.Close
Ensemble Rs2=rien
Fin si
Rs1.MoveNext
Boucle
Rs1.Close
Ensemble Rs1=Rien
Conn.close
Ensemble Conn=Rien
ensemble Re=Rien de
réponse.Write Remplacement
terminé'Fonction de remplacement personnalisée
Fonction myreplace(byval Tstr)
Si Tstr= Ou isnull(Tstr) Alors
quitter la fonction
Sinon
Re.Pattern=Str1
myReplace =Re.Replace(Tstr,Str2)
End If
End Function
% >