السلام عليكم ورحمة الله وبركاته ،،،
بإستخدام (MS-Access 2003)
كثيراً نحتاج إلى العمل المتوازى فى قاعدة بيانات (أى أكثر من شخص يدخل أو يعدل بيانات)، أو احياناً نحتاج لتحديث جزء من قاعدة بيانات من خلال قاعدة بيانات أخرى، أو عمل نسخ احتياطى ، ... الخ من هذه التطبيقات التى تحتاج لتزامن Synchronization اكثر من قاعدة بيانات لتطابق البيانات فيما بينهم، وقواعد البيانات هذه فى أماكن مختلفة، ونريد عمل التزامن من خلال الشبكة.
للمزيد من التفاصيل حول مفهوم تزامن البيانات راجع: إنشاء نسخة مطابقة من قاعدة البيانات Database Replica
توفر مكتبة Microsoft Jet and Replication و كذلك Microsoft DAO إمكانية عمل Database Replica، كذلك يوجد برنامج مساعد مع MS-Office 2000 Developer Edition لإتمام ذلك، وهذا البرنامج المساعد هو Replication Manager 4.0 ويكون موجود فى المجلد "C:\Program Files\Common Files\Microsoft Shared\Replication Manager 4.0"، والبرنامج التنفيذى الرئيسى هو replman.exe، إذا لم يكن موجود لديل حمله من هنا، وأضف الملفات الناقصة لديك، ويعمل أيضاً مع Access 2003. تأكد أولاً من حصولك على أخر إصدار من Microsoft Jet، وتأكد من وجود هذه القيم فى مسجل النظام Registry فى المسار: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Replication Manager
InetServerScriptsRoot=C:\Inetpub\Scripts
SynchronizerPath=C:\Program Files\Common Files\Microsoft Shared\Replication Manager 4.0\mstran40.exe
ولعمل Replica من خلال خادم ويب، يجب تجهيز الخادم اولاً:
- قم بإنشاء خادم ويب إذا لم يكن جاهز.
- قم بإنشاء مجلد ويب يمكن من خلاله تنفيذ CGI، وليكون فى المسار (C:\Inetpub\Scripts) واسم الـ (Virtual Directory) هو Scripts، وأنسخ فيه الملف MSTRAI40.EXE
- قم بإنشاء مجلد ويب يمكن القراءة منه والكتابة إلية، وليكن فى المسار (C:\Inetpub\Drop box) واسم الـ (Virtual Directory) هو Drop box، ولا تنس ضبط صلاحيات الأمان إذا كان على Drive يستخدم NTFS، بحيث يكون لمجموعة المستخدمين (Users Group) حق القراءة والكتابة.
- قم بإضافة الإمتدادين (msg - .tmp.) لـ Web site header MIME map و خصص "Application/octet-stream" لـ Content type
- لمزيد من الشرح والتوضيح راجع: إجعل جهازك خادم صفحات ويب Web Server، تثبيت Internet Information Services
لعمل Replica من خلال خادم ويب، وبعد تجهيز الخادم كما سبق، وتحميل برنامج Replication Manager على الخادم
يجب إعداد برنامج Replication Manager على الخادم، لأن بيانات الخادم سيتم إضافتها لقاعدة البيانات Design Master، حيث سيتم تحويل قاعدة البيانات (يتم إضافة عدة جداول نظام مخفية لقاعدة البيانات لإدارة عملية الـ Replica) بإستخدام برنامج Replication Manager على جهاز الخادم وليس بإستخدام MS-Access، وتعرف هذه القاعدة بإسم Design Master، وهى المسموح فيها بتعديل هيكل وتصميم قاعدة البيانات، وعند عمل Replica منها، فلا يسمح للنسخة بتعديل التصميم فيها، ويمكن التحكم بعدة خواص مثل جعلها للقراءة فقط، أو عدم امكانية الحذف، وأى تعديل فى تصميم قاعدة البيانات فى الـ Design Master سيظهر فى الـ Replica عند عمل مطابقة أو تزامن Synchronization.
بإستخدام Replication Manager 4.0 على الخادم (Web Server)، قم بعمل التالى:
- إعداد وتجهيز بيانات الخادم
- قم بتشغيل Microsoft Replica Manager الملف (replman.exe) فى المسار (C:\Program Files\Common Files\Microsoft Shared\Replication Manager 4.0\replman.exe)

- إذا كانت هذه أول مرة تشغيل سيظهر لك Configuration Replication Manager، إذا لم يظهر أختاره من قائمة Tools

- ستظهر لك الشاشة الأولى، أضغط Next

- ستظهر لك شاشة لإختيار تزامن غير مباشر، اضغط Next دون وضع علامة

- ستظهر لك شاشة للسؤال إذا كان هذا خادم انترنت، أختر Yes وأضغط Next

- ستظهر لك شاشة للسؤال إذا هذا الخادم يقوم بتزامن قاعدة البيانات، أختر Yes وأضغط Next

- ستظهر لك شاشة للسؤال عن اسم الخام، أدخل اسم الخام (بدون //:http أو www) أو ادخل رقم IP الخاص بالخادم

- ستظهر لك شاشة للسؤال عن اسم وموضع مجلد Scripts الذى سبق واعددناه

- ستظهر لك شاشة للسؤال عن اسم مجلد Drop box الذى سبق واعددناه

- ستظهر لك شاشة للسؤال عن أولويات طريقة التزامن

- ستظهر لك شاشة للسؤال عن موضع تخزين ملف تسجيل الاحداث والاخطاء Log file أضغط Next
- ستظهر لك شاشة للسؤال عن أسم الذى سيٌعرض، أكتب الاسم واضغط Next

- ستظهر لك شاشة تخبرك بإنتهاء العملية بنجاح، أضغط Finish Next

- سيسألك عن نسخ الملف mstrai40.exe إلى مجلد Scripts، أضغط Yes
- الأن تم الإعداد بنجاح

- إعداد وتجهيز قاعدة البيانات
- إنشاء قاعدة بيانات جديدة (بإستخدام الأكسس)، وليكن أسمها WBase.mdb، تحتوى عدة جداول مثلاً (Departments - Employees - Positions)

- قم يتحويل قاعدة البيانات إلى Design Master من قائمة Tools أختر Convert Database to Design Magter

- سيظهر لك صندوق فتح ملف، أخر قاعدة البيانات السابق إنشاؤها WBase.mdb وأضغط OK، ستظهر لك شاشة أخرى أضغط Next
- ستظهر لك شاشة للسؤال عن عمل نسخة احتياطية من قاعدة البيانات (bak.) أختر Yes وأضغط Next
- ستظهر لك شاشة للسؤال عن وصف قاعدة البيانات أكتب الوصف وأضغط Next

- ستظهر لك شاشة للسؤال إذا كنت ترغب فى عمل تزامن لكل العناصر الموجوده فى قاعدة البيانات (الإختيار الأول)، ام تحديد عناصر محددة (الاختيار الثانى)، أضغط Next

- ستظهر لك شاشة للسؤال إذا كنت ترغب فى عملها للقراءة والكتابة (الإختيار الأول)، ام للقراءة فقط (الاختيار الثانى)، أضغط Next

- ستظهر لك شاشة أختر عدم إدارة التزامن (الأختيار الثانى)، أضغط Next

- الأن تم إعداد قاعدة البيانات بنجاح


- من قائمة File أختر Managed Replica ثم أضغط Mange New وأختر قاعدة البيانات التى سبق إعدادها WBase.mdb ثم أضغط Open


- أترك Synchronizer يعمل ولا تنهى عمله

- إنشاء قاعدة بيانات جديدة (بإستخدام الأكسس)، وليكن أسمها WBase.mdb، تحتوى عدة جداول مثلاً (Departments - Employees - Positions)
[*]إنشاء Replica من خلال MS-Access 2003، على الخادم
- قم بقتح الملف WBase.mdb - بعد أن تم تحويله إلى Design Master - ببرنامج MS-Access
- من قائمة Tools أختر Replication ثم Create Replica
- أختر أسم الملف الـ Replica وليكن WBaseReplica.mdb مثلاً
- ستظهر لك رسالة تخبرك بضرورة إغلاق قاعدة البيانات، أضغط Yes
- الأن تم إنشاء Replica بإسم WBaseReplica.mdb يمكنك نسخها (وضعها على الخادم وتحميلها أو من خلال Flash memory أو Sharing folder أو ... الخ) و توزيعها على الاجهزة الاخرى، وفتحها من خلال اكسس والتعامل معها، وعمل مزامنة مع الخادم
- الأن فى قاعدة البيانات WBase.mdb أفتح الجدول Positions، وأضف حقل جديد ("مدير" مثلاً)
- قم بقتح الملف WBaseReplica.mdb
- من قائمة Tools أختر Replication ثم Synchronize now
- ستلاحظ إمكانية عمل تزامن من خلال خادم الإنترنت
- عند نجاح التزامن ستجد رسالة تفيد بذلك
- راجع البيانات فى قاعدتى البيانات ستجدهم متطابقين (بالنسبة للجداول فى نطاق Replica)
- احذف أو أضف أو غير فى احدهم، أو أضف فى احدهم واحذف فى الاخر، ثم قم بعمل Synchronization، ستجد القاعدتين متطابقين
- جرب ذلك من أى جهاز أخر يمكنه الوصول لخادم الإنترنت، ستجد نجاح عملية التزامن
- بالتالى يمكنك عمل تزامن من خلال الإنترنت من أى مكان تستطيع منه الإتصال بالخادم
- ملحوظة: إذا كنت تريد تحويل قاعدة البيانات إلى Design Master فى أى وقت (مثلاً لم تجد WBase.mdb كذلك نتيجة لنقلها)، فقم بفتح قاعدة البيانات، ثم من قائمة Tools أختر Replication ثم Recover Design Master
كما يمكنك عمل Replica من خلال الكود، يجب إضافة المرجع Microsoft Jet and Replication Objects Library
تتيح لك دوال Replica مرونة كبيرة فى التعامل، فالدالة MakeReplicable تسمح لك بإنشاء Replica جديدة، والدالة Synchronize تسمح لك بتزامن البيانات (استيراد - تصدير - استيراد وتصدير) ويمكن استخدامها كالتالى:
dbData.ActiveConnection = "C:\WBase.mdb"
Call dbData.Synchronize("http://192.168.1.10", jrSyncTypeImpExp, jrSyncModeInternet)
Dim dbData As New JRO.Replica
jrSyncTypeImpExp: استيراد وتصدير
jrSyncTypeImport: استيراد
jrSyncTypeExport: تصدير
راجع: إنشاء نسخة مطابقة من قاعدة البيانات Database Replica - إجعل جهازك خادم صفحات ويب Web Server، تثبيت Internet Information Services - تزامن تطابق البيانات بين عدة قواعد بيانات
شكراً

