يمكن للبرنامج النصي الذي كتبته قبل بضع سنوات أن يحل محل البيانات الموجودة في قاعدة البيانات بأكملها تلقائيًا.
لقد كتبته من أجل المتعة في البداية، لكنني لم أتوقع أن يستمر الناس في السؤال عنه بعد كتابته، لذلك أعدت كتابة الكود وقمت بتحسينه الأخطاء، وقدم برنامج EXE. شكرا للمساعدة الافتراضية.
رمز ASP المرفق:
انسخ الكود كما يلي:<%
'############################
'Batch استبدال محتوى قاعدة البيانات 2008 -3-17
'الاستبدال لا رجعة فيه، لذا قم بعمل نسخة احتياطية قبل العملية
'############################### ### #
خافت 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;مصدر البيانات=&server.mappath(Db)
Set Rs1 = Conn.OpenSchema(20)
Do while Not Rs1.Eof
If UCase( Rs1(TABLE_TYPE))=TABLE ثم 'إذا كان جدول مستخدم، فقم بإجراء
عمليةالتعيين Rs2=Server.Createobject(adodb.recordset)
Rs2.Open حدد * من [&Rs1(TABLE_NAME)],conn,1,3
Do while Not Rs2.Eof
For I=0 to Rs2.fields.count-1 'اجتياز كافة الحقول
إذا كان Rs2(i).Properties(ISAUTOINCREMENT) = خطأ وRs2(i).اكتب<>128 و Rs2(i).Type<>204 وRs2(i).Type<>205 ثم 'إذا لم يكن رقمًا تلقائيًا ولم يكن كائنًا أوليًا
Rs2(Rs2(i).name)=Myreplace(Rs2(i) .value&)
النهاية إذا كانت
الحلقة
التالية
Rs2.Movenext
Rs2.Close
Set Rs2=لا شيء
النهاية إذا كانت
الحلقة
Rs1.MoveNext
Rs1.Close
Set Rs1=لا شيء
Conn.Close
Set Conn=لا شيء
محدد إعادة = لا شيء
استجابة. اكتمل استبدال
الكتابة 'وظيفة الاستبدال المخصصة
وظيفة myreplace(byval Tstr)
إذا Tstr= أو فارغة(Tstr) ثم
اخرج من الوظيفة
Else
Re.Pattern=Str1
myReplace =Re.Replace(Tstr,Str2)
End If
End Function
% >