الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعده فى Replication

بدأه creative mind في 29 أغسطس 2011 · 9 رد · 519 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لو سمحتم كنت عاوزه اعرف ازاى اعمل Replica واتعامل معاها بكود C#

انا بعمل winform app ومحتاجاها ضروري

برجاء المساعده

كل عام وانتم بخير

#2

السلام عليكم.

أختي السؤال مو واضح ؟

ممكن توضحي شو قصدك ب Replica ؟

#3
Adel Khayata كتب:

السلام عليكم.

أختي السؤال مو واضح ؟

ممكن توضحي شو قصدك ب Replica ؟

انا عندي 2 قاعدة بيانات نفس القاعده بس على جهازين مختلفين

دلوقتى عاوزه اما يتغير حاجه فى الاولى تتغير التانيه

#4

هناك عدة حلول سأسردها لكِ :

1 ) استخدام ال Replication في الداتابيس نفسها: و معظم قواعد البيانات للشركات الكبيرة لديها هذه الميزة و لا داعي لكتابة أي كود و إنما يتم فقط تجهيز الاعدادات على السيرفرات والأخذ بعين الاعتبار بعض الأمور البسيطة أثناء عمل البرنامج الذي سيتعامل مع الداتابيس.

2 ) استخدام ال Triggers في الداتابيس: ال Trigger هو كود يتم تنفيذه عند حدوث إدخال/تعديل/حذف بيانات من الجدول ( يستخدم أيضاً في إنشاء الجداول و حذفها ... الخ ) , و في هه الحالة عليكي برمجة ال Triggers لكل حالة إدخال/تعديل/حذف على كل سيرفر بحيث يقوم بنفس العملية على السيرفر الآخر و من الواضح أنها تحتاج إلى جهد كبير.

3 ) يمكن عن طريق برنامج بال C# أن يتم جلب البيانات من قاعدتي البيانات و عمل المقارنة بينها و لكن هذه الطريقة ليست عملية كونها ستستغرق وقتاً كلما زاد عدد البيانات في قاعدة البيانات.

اختيار أحد هذه الحلول يعتمد على نوعية و طبيعة قاعدة البيانات لديكِ و عدة أمور أخرى.

لذلك يفضل أن تقرري أي الحلول هو الأنسب في حالتك حتى يتم التوضيح بشكل أكبر.

1
#5

شكرا جزيلا لمجهود حضرتك

لكن عندي سؤال

هل الحلول الى حضرتك ذكرتها تنفع لو الجهازين مش على نفس الشبكه LAN

عندي احد الجهازين له Static Ip والاخر Dynamic Ip

وهل Trigger ينفع مع ms access?

#6

الحلين الأول و الثاني التي ذكرتها تفترض أن السيرفرين يمكنهما التواصل مع بعضهما أما الحل الثالث فيكفي أن يكون البرنامج الذي سيتم كتابته قادر على الاتصال مع قاعدتي البيانات.

بكل الأحوال يمكن تطبيق هذه الحلول حتى لو لم يكونوا على نفس الشبكة LAN, حيث يمكن استخدام ال VPN (Virtual Private Network) لربط شبكتي السيرفرين مع بعضها البعض.

بالنسبة ل MS Access فعلى حد علمي أنه لا يدعم ال Triggers.

#7
Adel Khayata كتب:

الحلين الأول و الثاني التي ذكرتها تفترض أن السيرفرين يمكنهما التواصل مع بعضهما أما الحل الثالث فيكفي أن يكون البرنامج الذي سيتم كتابته قادر على الاتصال مع قاعدتي البيانات.

بكل الأحوال يمكن تطبيق هذه الحلول حتى لو لم يكونوا على نفس الشبكة LAN, حيث يمكن استخدام ال VPN (Virtual Private Network) لربط شبكتي السيرفرين مع بعضها البعض.

بالنسبة ل MS Access فعلى حد علمي أنه لا يدعم ال Triggers.

طب ابدأ ادور منين أو اقرا ايه عشان اعمل الحل التالت

معلش اسألتى كتير بس انا متعاملتش مع الموضوع ده قبل كده

#8

سأضرب لك مثالاً حتى تتوضح الفكرة:

افترضي أنه لديك جدول أسماء العملاء ( للسهولة : رقم العميل و اسم العميل )

يتم جلب بيانات جدول العملاء من قاعدتي البيانات ثم باستخدام تعليمة الحلقة يتم مقارن السطور بين بيانات الجدولين و أي فروقات يتم إدخالها/تعديلها/حذفها على حسب الحالة و طبعاً المقارنة يجب أن تتم على أساس رقم العميل ( مفتاح الجدول الأساسي Primary Key )

يمكن أن تواجهك بعض الحالات عند الحذف أو الاضافة تتطلب تدخل يدوي أو تحديد سيرفر رئيسي : للتوضيح أعطيكي مثالاً:

يوجد عميل في قاعدة البيانات الأولى و لكنه لا يوجد في قاعدة البيانات الثانية ... عند إجراء المقارنة بين الجدولين يمكن أن يتم اعتبار أن هذا العميل قد تمت اضافته على أساس أنه لا يوجد في قاعدة البيانات الثانية أو يمكن افتراض أنه قد تم حذفه من قاعدة البيانات الثانية و بالتالي يجب أن يتم تحديد أي السيرفرين له الأفضلية.

ملاحظة: فكرة الحل الثالث طرحتها كأحد الحلول لمشكلتك و لكنها تحتاج إلى تحليل معمق لدراسة كافة الحالات التي يمكن أن تحديث و تتطلب أيضاً إضافة بعض الحقول إلى الجداول ( مثل Timestamp ) .

1
#9

شكرا جزيلا لحضرتك على الرد بس يعني ايه تعليمة الحلقة

ايه الاسم المقابل ليها بالانجليزي؟

تم تعديل هذه المشاركة بواسطة creative mind في 30 أغسطس 2011 في 22:23

#10

الحلقة هي Loop و التعليمات التي تقع ضمن هذا التصنيف: for , while ... etc

مواضيع مشابهة