موصى به: ASP 3.0 Programming (45) يشير التنفيذ غير المتزامن إلى استرداد البيانات في الخلفية ، ويمكن استخدام البيانات التي حصلت عليها على صفحة الويب قبل إرجاع جميع البيانات. على الرغم من الحاجة إلى جميع البيانات ، يمكن أن يبدأ العمل غير المتزامن في معالجة البيانات مسبقًا على الأقل. يمكن أن يسمح للمستخدمين أيضًا رؤية محتوى معين أولاً ، مما يجعل موقع الويب
ملخص
توفر كائنات الإدارة الموزعة SQL (SQL-DMO) للمطورين طرقًا لأداء مهام عادية باستخدام لغات البرنامج والبرمجة ، وبالتالي توسيع وظائف SQL Server. تناقش هذه المقالة كيفية استخدام SQL-DMO بذكاء لإنشاء تطبيقات النسخ الاحتياطي لقاعدة البيانات والتحقق من تطبيقات ASP.
فرضية
يجب أن يكون لديك المعرفة حول النسخ الاحتياطي لقاعدة بيانات SQL Server. بالإضافة إلى ذلك ، تحتاج إلى إضافة إشارة إلى مكتبة SQL-DMO إلى ملف Global.asa. فيما يلي إشارة إلى SQL Server 2000:
| ما يلي هو المحتوى المقتبس: <!-metadata type = typelib name = Microsoft مكتبة كائن SQLDMO UUID = {10010001-E260-11CF-AE68-00AA004A34D5} الإصدار = 8.0-> |
يتم تطبيق رمز نموذج هذه المقالة على SQL 7.0 و MSDE و SQL Server 2000.
الفرح والحزن
استخدام كائنات SQL-DMO يجعل الناس سعداء وحزين. إنه يوفر ميزات غنية جدًا بحيث لا يعرف كيفية استخدامها. تناقش هذه المقالة فقط خصائص الكائن والأساليب المشاركة في الأمثلة. يمكنك العثور على الكثير من المعلومات ذات الصلة حول تعليم SQL Server عبر الإنترنت.
sqldmo.sqlserver
تستخدم للاتصال بقاعدة بيانات SQL Server:
| ما يلي هو المحتوى المقتبس: <٪ قاتمة SRV تعيين srv = server.createBject (sqldmo.sqlserver) srv.logintimeout = 15 srv.connect servername ، اسم المستخدم ، كلمة المرور ٪> |
هنا ، يتم توصيل قاعدة بيانات SQL Server عن طريق استبدال اسم المستخدم وكلمة المرور. إذا كنت ترغب في استخدام مصادقة هوية NT ، فقم بتعيين خاصية Loginsecure الخاصة بها على True (True) ، وتجاهل اسم المستخدم وكلمة المرور البديلة ، واستخدام معلومات تسجيل NT.
sqldmo.database
يسرد قواعد البيانات في الخادم. في هذا المثال ، تم دعم قاعدة البيانات المدرجة. يسرد الكود التالي قاعدة البيانات في الخادم في القائمة المنسدلة:
| ما يلي هو المحتوى المقتبس: <٪ قاتمة SRV قاتمة OBJDB تعيين srv = server.createBject (sqldmo.sqlserver) srv.logintimeout = 15 srv.connect servername ، اسم المستخدم ، كلمة المرور تعيين OBJDB = server.createBject (sqldmo.database) ٪> <تحديد الاسم = fdatabase> <٪ لكل OBJDB في srv.databases إذا objdb.systemObject = false ثم ٪> <Point> <٪ = objdb.name ٪> </portion> <٪ إنهاء إذا التالي ٪> </select> |
sqldmo.backupdevice
يسرد أجهزة النسخ الاحتياطي المثبت على الخادم. أوصي باستخدام جهاز نسخ احتياطي لدعم قاعدة البيانات. لأنه بهذه الطريقة ، يمكنك استخدام وظيفة التحقق من SQL-DMO للتحقق من موقف النسخ الاحتياطي. يسرد الرمز التالي أجهزة النسخ الاحتياطي على الخادم:
| ما يلي هو المحتوى المقتبس: <٪ قاتمة SRV قاتمة objdevice تعيين srv = server.createBject (sqldmo.sqlserver) srv.logintimeout = 15 srv.connect servername ، اسم المستخدم ، كلمة المرور تعيين OBJDevice = server.createBject (sqldmo.backupdevice) لكل objdevice في srv.backupdevices الرد. write objdevice.name <br> التالي ٪> |
sqldmo.backup
هذا ما نريد استخدامه لنسخ الكائنات الأساسية. يحتوي على العديد من الخصائص التي تتيح لنا إجراء نسخ احتياطية في نفس مستوى مدير SQL Enterprise. دعنا نناقش أولاً الخصائص المستخدمة في هذا المثال.
BackupSetName - اسم ملف النسخ الاحتياطي.
قاعدة البيانات - قاعدة البيانات المراد احتياطيها.
العمل - جميع النسخ الاحتياطية أو الإضافية. هناك خيارات أخرى ، ولكن يتم استخدام هذين فقط في المثال.
BackupSetDescription - وصف النسخ الاحتياطي.
الملفات - خيارات النسخ الاحتياطي للملف. يشير إلى مسار واسم ملف النسخ الاحتياطي ، مثل: c: /pubs.bak. عند استخدام النسخ الاحتياطي للملف ، يجب ضبط اسم جهاز النسخ الاحتياطي التالي على فارغ.
الأجهزة - جهاز النسخ الاحتياطي على الخادم. إذا كنت تستخدم جهاز نسخ احتياطي ، فيجب ضبط خيار النسخ الاحتياطي للملف أعلاه على فارغ.
Truncatelog - خيار سجل النسخ الاحتياطي. الخيارات هي:
NOLOG - لا يوجد نسخة احتياطية سجل المعاملة.
سجلات - سجلات المعاملات الاحتياطية. يتم توفير علامات الوقت في السجل.
Truncate - سجلات المعاملات الاحتياطية ، ولكن لا تحافظ على سجلات المعاملات.
تهيئة - إذا تم ضبطها على True ، فسيحل محل جهاز النسخ الاحتياطي عن وسائط النسخ الاحتياطي الأخرى وتصبح الخيار الأول.
هنا ملف النسخ الاحتياطي. asp في المثال:
| ما يلي هو المحتوى المقتبس: <٪@ language = vbscript ٪> <html> <body> <!-يحتوي على جميع معلومات تسجيل الدخول-> <!-#تضمين ملف = login.asp-> <٪ قاتمة objbackup 'إنشاء كائن النسخ الاحتياطي تعيين objbackup = server.createBject (sqldmo.backup) تعيين الخصائص objbackup.backupsetname = طلب (fname) objbackup.database = طلب (fdatabase) objbackup.action = طلب (فصيل) objbackup.backupsetdescription = طلب (fdescription) objbackup.files = طلب (fbackupfile) objbackup.devices = طلب (fdevice) objbackup.truncatelog = طلب (فلوج) objbackup.initialize = طلب (تخصيص) قاعدة بيانات النسخ الاحتياطي objbackup.sqlbackup srv انفصل عن الخادم srv.Disconnect 'يطلق تعيين srv = لا شيء تعيين objbackup = لا شيء ٪> <p> بدأ النسخ الاحتياطي ، استخدم <a href = devices.asp> تحقق من </a> خيار لمعرفة ما إذا كان الانتهاء بنجاح. <a href = default.asp> انقر هنا </a> للعودة. </p> </body> </html> |
التحقق الاحتياطي
إذا كنت تقوم برمجة في VB أو C ، فيمكنك استخدام مشغلات الأحداث للتحقق من عملية النسخ الاحتياطي ، ولكن ليس في ASP. نستخدم طريقة ReadPackupHeader لكائن sqldmo.backupdevice لتأكيد ما إذا كانت النسخة الاحتياطية ناجحة.
فيما يلي رمز ملف التحقق. ASP ، والذي يسرد اسم جهاز النسخ الاحتياطي ويوفر معلومات حول أحدث نسخة احتياطية.
| ما يلي هو المحتوى المقتبس: <٪@ language = vbscript ٪> <html> <body> <!-معلومات تسجيل الدخول-> <!-#تضمين ملف = login.asp-> <p> <٪ قاتمة objdevice خافتة قاتمة قاتمة XCOUNT "إنشاء كائن جهاز احتياطي تعيين OBJDevice = server.createBject (sqldmo.backupdevice) حلقة حتى يتم العثور على جهاز مطابق لكل objdevice في srv.backupdevices إذا كان objdevice.name = طلب (fname) ثم ابحث عن جهاز المطابقة وابدأ في قراءة النتيجة تعيين objresults = objdevice.readbackupheader ل icount = 1 إلى objresults.rows لـ xCount = 1 إلى objresults.columns ٪> <b> <٪ = objresults.columnname (xcount) ٪> </b>: <٪ = objresults.getColumnString (أيقونة ، xcount) ٪> <br> <٪ التالي ٪> <hr> <٪ التالي ٪> <٪ نهاية إذا ٪> <٪ التالي ٪> <٪ srv.Disconnect تعيين srv = لا شيء تعيين objdevice = لا شيء تعيين objresults = لا شيء ٪> </body> </html> |
تقوم طريقة ReadPackUpHeader بإرجاع كائن QueryResults. استخدم سمة صفوفها للحصول على رقم سجل النسخ الاحتياطي. ثم ابحث عن معلومات العمود لكل صف من السجلات.
ميزات أخرى
يوفر SQL-DMO أيضًا قدرات النسخ الاحتياطي والاسترداد عن بُعد. لا تتضمن هذه المقالة استرداد قاعدة البيانات ، ولكن SQL-DMO لديها وظائف استرداد قوية.
المشاركة: مستوى إدخال التطوير الأساسي: المقارنة بين JSP و ASP نظرًا لأن Microsoft أطلقت ASP (ActiveServerPage) ، فقد أحبها مطورو الويب لوظائفها القوية وبساطتها وسهلة التعلم. ومع ذلك ، فإنه لديه مشاكل شائعة مع منتجات Microsoft ولا يمكن استخدامها إلا على منصات Windows ، على الرغم من أنه يمكن استخدامها في Linux عن طريق إضافة عناصر التحكم