السلام عليكم ورحمة الله وبركاته ،،،
بإستخدام (MS-Access 2003)
كثيراً نحتاج إلى العمل المتوازى فى قاعدة بيانات (أى أكثر من شخص يدخل أو يعدل بيانات فى أكثر من قاعدة بيانات)، أو احياناً تحديث جزء من قاعدة البيانات من خلال قاعدة بيانات أخرى، أو عمل نسخ احتياطى ، ... الخ من هذه التطبيقات التى تحتاج لتزامن Synchronization اكثر من قاعدة بيانات لتطابق البيانات فيما بينهم.
توفر مكتبة Microsoft Jet and Replication و كذلك Microsoft DAO إمكانية عمل Database Replica، كذلك توجد آداة فى MS-Access لعمل Replica من قاعدة البيانات، وعند عمل Replica فيجب تحويل قاعدة البيانات أولاً (حيث يتم إضافة عدة جداول نظام مخفية لقاعدة البيانات لإدارة عملية الـ Replica)، وتعرف هذه القاعدة بإسم Design Master، وهى المسموح فيها بتعديل هيكل وتصميم قاعدة البيانات، وعند عمل Replica منها، فلا يسمح للنسخة بتعديل التصميم فيها، ويمكن التحكم بعدة خواص مثل جعلها للقراءة فقط، أو عدم امكانية الحذف، وأى تعديل فى تصميم قاعدة البيانات فى الـ Design Master سيظهر فى الـ Replica عند عمل مطابقة أو تزامن Synchronization.
بإستخدام MS-Access 2003، قم بعمل التالى:
- إنشاء قاعدة بيانات جديدة، وليكن أسمها Base.mdb، تحتوى عدة جداول مثلاً (Departments - Employees - Positions)
- من قائمة Tools أختر Replication ثم Create Replica
- ستظهر لك رسالة تخبرك بضرورة غلق قاعدة البيانات، أضغط Yes
- ستظهر لك رسالة تخبرك بعمل نسخة احتياطية (بالإمتداد bak.) من قاعدة البيانات، أضغط Yes
- الأن تم تحويل قاعدة البيانات الرئيسية (Base.mdb) إلى Design Master
- سيظهر لك صندوق حوارى لتحديد اسم قاعدة البيانات الـ Replica من Base.mdb، وتحديد بعض الخواص، أضغط موافق
- الأن تم تحويل قاعدة البيانات Base.mdb إلى Design Master ويمكن تغير التصميم فيها، وتم إنشاء Replica منها بإسم Replica of Base.mdb ولا يمكن تغير التصميم فيها
- بعد ذلك سيتم فتح قاعدة البيانات Base.mdb مرة أخرى، ستلاحظ وجود رمز بجوار الجدول، يدل على أن هذا الجول سيتم التزامن معه
- ستلاحظ إضافة عدة جداول (نظام مخفية) إلى قاعدة البيانات، ووظيفتها إدارة التزامن Synchronization
الجداول قبل التحويل
الجداول بعد التحويل - ستلاحظ أيضاً عدة أعمدة (نظام مخفية) داخل الجداول، ووظيفتها إدارة التزامن Synchronization
الجدول قبل التحويل
الجدول بعد التحويل - يمكنك أيضاً فتح قاعدة البيانات Replica of Base.mdb، ستلاحظ نفس الشكل، وعند محاولتك تعديل تصميم الجدول، ستظهر رسالة انه سيتم فتحه للقراءة فقط ولن يتم حفظ أى تغير
- يمكنك إضافة جداول جديدة سواء فى Base.mdb أو فى Replica of Base.mdb، وهذه الجداول لن يحدث لها تزامن Synchronization، أى سيتم التعامل معها على انها جداول عادية خارج نطاق الـ Replica
- أفتح قاعدة البيانات Base.mdb ثم أفتح الجدول Positions، وأضف حقل جديد ("مدير" مثلاً)
- أفتح قاعدة البيانات Replica of Base.mdb ثم أفتح الجدول Employees، وأضف حقل جديد ("على" مثلاً)
- من أى من القاعدتين، من قائمة Tools أختر Replication ثم Synchronize now
- سيظهر لك صندوق حوارى أضغط OK، (أو حدد قاعدة البيانات التى تريد عمل تزامن معها من Browse قبل الضغط على OK، فى حالة وجود أكثر من Replica)
- ستظهر لك رسالة تخبرك بضرورة إغلاق قاعدة البيانات، أضغط Yes
- ستظهر لك رسالة تخبرك بنجاح التزامن، وبعدها سيتم إعادة فتح قاعدة البيانات
- راجع البيانات فى قاعدتى البيانات ستجدهم متطابقين (الجداول فى نطاق الـ Replica)
- احذف أو أضف أو غير فى احدهم، أو أضف فى احدهم واحذف فى الاخر، ثم قم بعمل Synchronization، ستجد القاعدتين متطابقين
- أفتح قاعدة البيانات Base.mdb وقم بإنشاء Replica أخرى بإسم Replica1 of Base.mdb، وعلم على Prevent deletes، ستلاحظ أنك لن تستطيع حذف أى حقول من الـ Replica - قاعدة البيانات Replica1 of Base.mdb - لكن تستطيع فقط الإضافة والتعديل.
- ملحوظة: إذا كنت تريد تحويل قاعدة البيانات إلى Design Master فى أى وقت (مثلاً لم تجد Base.mdb كذلك نتيجة لنقلها لمجلد أخر)، فقم بفتح قاعدة البيانات، ثم من قائمة Tools أختر Replication ثم Recover Design Master
كما يمكنك عمل Replica من خلال الكود، يجب إضافة المرجع Microsoft Jet and Replication Objects Library
تتيح لك دوال Replica مرونة كبيرة فى التعامل، فالدالة MakeReplicable تسمح لك بإنشاء Replica جديدة، والدالة Synchronize تسمح لك بتزامن البيانات (استيراد - تصدير - استيراد وتصدير) ويمكن استخدامها كالتالى:
Dim dbData As New JRO.Replica
dbData.ActiveConnection = "C:\Base.mdb"
Call dbData.Synchronize("C:\BaseReplica.mdb", jrSyncTypeImpExp, jrSyncModeDirect)jrSyncTypeImpExp: استيراد وتصدير
jrSyncTypeImport: استيراد
jrSyncTypeExport: تصدير
راجع: من خلال خادم ويب، إنشاء نسخة مطابقة من قاعدة البيانات Database Replica - تزامن تطابق البيانات بين عدة قواعد بيانات
شكراً