• 0
Mohamed Nada

هل يمكن المقارنة بين كائنات قواعد البيانات؟ ..

سؤال

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

إخوانى الأحباء ..مرحباً بكم فى سؤال جديد خطر على بالى اليوم بعد أن جلست أدقق بين إصدارين من قاعدة بيانات الموظفين لمعرفة أى الكائنات أحدث وأى التعديلات هى الأحدث:

عفواً للمقدمة الطويلة

نأتى للسؤال:هل من الممكن عمل مقارنة بين كائنات قاعدة البيانات كلها بما يقابلها من كائنات مماثلة فى قاعدة بيانات أخرى؟

ولتوضيح السؤال أرفق لكم صورة من برنامج يقوم بالمقارنة بين مجلدين (أعرف أن هذه البرامج كثيرة ومتنوعة .. ولكن هذه صورة لتوضيح فكرة السؤال فقط) .. حيث يقوم هذا البرنامج بعمل مقارنة بين محتويات المجلدين ويوضح أى الملفات أحدث .. وأى الملفات ليس له شبيه فى الجانب الآخر.

post-29007-1255975826_thumb.jpg

هل من الممكن الوصول إلى كود يضع لنا فى جداول أسماء الكائنات فى القاعدتين المقارن بينهما .. وتاريخ آخر تعديل لكل كائن وساعة التعديل يكون كل طرف فيها كالصورة أدناه؟

post-29007-1255975850_thumb.jpg

ويكون الجانب الآخر مثله

وبذلك نتمكن من معرفة أى الكائنات أحدث .. خاصة إذا كانت القاعدة مثل التى عندى بها من الكائنات ما يتخطى الـ 600 كائن ما بين جدول واستعلام ونموذج .... إلخ.

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

تحياتى

محمد ندا

تم تعديل بواسطه Mohamed Nada
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

87 إجابة على هذا السؤال .

  • 1

أخى الكريم dbprog

مرحباً بك وبمشاركتك الإيجابية.

ونحن معاً خطوة خطوة للوصول لأداة جيدة إن شاء الله بمشاركة الأساتذة.

تحياتى

محمد ندا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

مرحبا بالأخ محمد ندا ... ما أكثر الكائنات حين تعدهم لكنهم في النائبات قليل :lol:

طلبك الذي أوردته جميل

والأجمل أنه ممكن التحقيق عمليا وبرمجيا

أنا عملت مثال على السريع .. لكن اريد أمثلة منكم من الجميع بلا استثناء

والهدف هو الوصول لذات الحل بأكثر من طريقه .. مرفق صورة ماتوصلت

اليه حسب فهمي لطلبك

قائمة تحتوي على اسماء الكائنات في قاعدة البيانات ملحق بها وقت وتاريخ

انشاء ذلك الكائن ووقت وتاريخ أخر تحديث له :wub:

كل الكائنات المعروفه ( جدول استعلام تقرير ماكرو مودويل )

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

post-62347-1255980408_thumb.gif

المثال في المرفقات

والسلام عليكم ورحمة الله .. أخوكم : اكسيرالحياة

EK_DATA.rar

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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى الحبيب إكسير

طبعاً

والأجمل أنه ممكن التحقيق عمليا وبرمجيا
بل والأجمل أن هناك من الأساتذة مثل إكسير الحياة من يقوم بكل ما هو ممكن .. بل وأحياناً ما بعد الممكن للوصول لهذه الإجابات الإبداعية.
كل الكائنات المعروفه ( جدول استعلام نموذج تقرير ماكرو مودويل )
حتى الآن رائع .. وفى انتظار المثال .. ثم نخطو الخطوة التالية وهى:

تحديد إثنين من قواعد البيانات لدينا وتطبيق هذا المثال الرائع عليهما معاً لنقارن بينهما بالعين البشرية أولاً .... ثم:

إذا استطعنا أن نجعل التطبيق يقوم بإبراز الأحدث من كل متقابلين بتلوين الإسم بلون معين أو تلوين خلفيته أو جعله بخط ثقيل Bold أو أى أشكال التمييز.

سيتضح ذلك بعد إدراج المثال والتجريب ومشاركة الأخوة بالأفكار.

تم تعديل بواسطه Mohamed Nada
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

أخي محمد شكرا على هذه الفكرة المميزة والتي يحتاج لها الكثير من المبرمجين خصوصا في بيئة العمل المزدحمة والتي تُحدث وتستبدل فيها البيانات بإستمرار وهاذي مشاركة بسيطة معاكم في الموضوع وإن شاء الله نطور الموضوع الى أن يصبح برنامج جاهز للمقارنة بين أكثر من ملف أكسيس

تقبلوا تحياتي :D

dbcompare.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى إكسير

ننتظر مثالك .. حتى نتقدم للخطوات التالية.

محمد ندا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
أخى إكسير

ننتظر مثالك .. حتى نتقدم للخطوات التالية.

محمد ندا

:lol: مثالي مرفق من اول امس .. أنظر اعلاه

وهو لايختلف عن مثال الاخ الكريم dbprog نفس الفكره

لكن نحتاج الى افكار اخرى !

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
مثالي مرفق من اول امس .. أنظر اعلاه

أعتذر أخى عن هذا الخطأ (العتب على النظر) كما نقول فى مصر :( :eek:

ولكنى أنظر للمشاركات الحديثة ولذلك لم أكتشف أنك أضفت المرفق فى المشاركة الأولى

دعنى أرى المرفق وأعود إليكم

تحياتى

محمد ندا

تم تعديل بواسطه Mohamed Nada
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى إكسير

إخوانى الأحباء

لكن نحتاج الى افكار اخرى !
هذه فكرة مستوحاة من مرفقاتكم .. لعلها تجد طريق:

ممكن تتفرجوا معايا على التمثيلية التالية؟؟؟ ..

وبدون ملل لو تكرمتم (ممكن أعزمكم على كابتشينو :) بس اتفرجوا للآخر.

تم عمل ثلاثة ملفات

الأول: وهو الرئيسى واسمه Master وهو الذى سيقوم (فى المستقبل يعنى) بعملية المقارنة

الثانى: نموذج كمثال على قاعدة البيانات المقارنة الأولى Target01.

الثالث: نموذج كمثال على قاعدة البيانات المقارنة الثانية Target02.

نشرح أولاً الثانى والثالث

وهما متماثلان إلا بعض الأشياء التى غيرتها يدوياً لزوم البروفة.

وبهما نموذج فيه زر للخروج لا حظ أن هذا الزر يقوم بوقف التحذيرات وتشغيل إثنين من الماكرو .. لماذا؟؟؟

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

نأتى الآن للملف الرئيسى Master

عند بداية تشغيله تجد نموذج المقارنة وفيه يمكننا إستدعاء إثنين من قواعد البيانات (جرب تشغيل المقارنة قبل إختيار قاعدة البيانات واحدة بعد واحدة ستجده يرفض التكملة).

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

بعد الإختيار وبالضغط على زر المقارنة .. سيتم إظهار نموذج المقارنة الذى يستمد بياناته من استعلام يقوم بالمقارنة بين الكائنات.

حتى الآن التمثيلية كويسة .. فين المشكلة ؟؟؟؟

المشكلة إنى واخد الجدولين بتوع البيانات إستيراد من القواعد التى سنقارنها بشكل يدوى

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

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

يمكننا وضع إجراء تفريغ الجدولين مصدر الاستعلام بالقاعدة Master وهذه سهلة عند تحميل القاعدة (لا مشكلة).

وإذا تمكننا من إعادة ملئهما بمحتويات الجدولين من قاعدتى البيانات تارجت 1 .. و تارجت 2 .. نكون قد وصلنا إلى 80% من العمل.

ويبقى بعدها بعض التكملة من التشطيب وعمليات مشابهة.

وهاهى المرفقات قبل أن يغتالنى كل من يقرأ ويتفرق دمى بين المنتديات.

محمد ندا

Compare_2DBases.rar

تم تعديل بواسطه Mohamed Nada
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

أخي محمد شكرا مقدما على الكابتشينو اللي لسا ماشربتوش :lol:

فعلا فكرتك جملية وفتحت عيوني على فكرة وهي انو احنا في الأساس محتاجين البيانات الموجودة في جدول MSysObjects للقاعدتين طيب ليش

مانعمل link على هذا الجدول بالتحديد لكل من القاعدتين وبعد كذا نعطي link مسمى مثلا db1 و db2 وبعد كذا نعمل إستعلامتنا على الجدولين

بحيث يكون من المعلوم ان الجدول db1 للقاعدة الأولى و db 2 للثانية وكذا بالنسبة للإستعلامات q1 و q2 ونعمل إستعلام يربط بين الإثنين

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

تقبل تحياتي

dbcompare.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى dbprog

مرحباً بك وبالأفكار الجميلة

ما تفضلت به هو تقريباً ما نريد أن نصل إليه .. ولكن تبقى المشكلة قائمة وهى:

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

تحياتى

محمد ندا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

أخي محمد ممكن توضيح أكثر لإني مافهمت ، بالطريقة التي ذكرت سابقا إنت حتكون متصل بقواعد البيانات التي تريد إجراء المقارنة عليها بشكل مباشر وال db1, db2 هي جداول النظام في كلا من القاعدتين جرب ان تقوم بإضافة كائن جديد وسترى النتيجة مباشرة عن المقارنة

هذا مافهمت من طلبك وإذا كان المقصود غير ارجوا التوضيح بالتفصيل .

شكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى dbprog

واضح أنه كانت لدى مشكلة فى الأكسس منعت مرفقك من العمل بشكل جيد ، الآن أقوم بالتجربة مرة أخرى على أحد أجهزة المنزل الأخرى لأرى كيف يعمل.

تحياتى

محمد ندا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

جهود جباره ومن عمالقة الاكسيس

لانستطيع القول الا ان يوفقكم ربي في كل ماتعملون

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخوانى الاعزاء

تابعت المناقشة الشيقة فى الموضوع

و اريد ان اضيف هذا المثال للمقارنة بين جداول القاعدتين ليس من حيث تاريخ الانشاء و التعديل بل من حيث بناء الجدول نفسه

و اتمنى ان تفيد

أننا نريد الكود أو الطريقة التى نتصل بها مباشرة بقاعدة البيانات والجداول المطلوبة

اعتقد ان الحل الذى قدمه الاخ dpprog هو حل جيد (بربط الجداول من القاعدتين)

و لكن لى ملاحظة على مرفق الاخ محمد ندا و مرفق الاخ dbprog

ففى مرفق الاخ محمد ندا يتم مقارنة قاعدة بالاخرى (اى انه لو ان هناك جداول فى القاعدة الاولى غير موجودة فى القاعدة الثانية لن تظهر فى عملية المقارنة )

و نفس الشىء تقريبا بالنسبة للاخ dbprog و لكن فى القاعدتين معا (اى انه لو ان هناك جداول فى اى من القاعدتين غير موجودة فى القاعدة الثانية لن تظهر فى عملية المقارنة )

و لذلك لابد من ضبط الاستعلام المبنى عليه نموذج المقارنة

MrNo_tblcomp.rar

تم تعديل بواسطه mrnooo2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى Mr No

ما تفضلت به من أن الأداة التى نحاول الوصول إليها حتى الآن لم تقوم بمقارنة الجداول الموجودة فى القاعدة الأولى وغير موجودة بالثانية .. وهذا ما نحاول التوصل إليه الآن .. ولكن لاحظ التالى:

إذا كانت هناك كائنات موجودة بالثانية وغير موجودة بالأولى فإنك ستجد الشكل الموجودة بالصورة الذى يخبرك أن هذا الكائن ليس له مقابل أو (يتيم Orphan) ويترك المكان المقابل له فارغاً .. ولكن ذلك كان يدوياً عن طريق إتجاه العلاقة داخل الاستعلام.

post-29007-1256315757_thumb.jpg

ما زلنا نحتاج إلى أفكار ومشاركات لنصل للأداه المطلوبة.

تحياتى

محمد ندا

تم تعديل بواسطه Mohamed Nada
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

نعم أخي محمد الموضوع مازال بحاجة للنقاش والأفكار وإن شاء الله الأعضاء يتفاعلوا مع الموضوع.

أخي مستر نو شكرا لك على الملاحظة فعلا الإستعلام يحتاج إلى إعادة ضبط .

تقبلوا تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الاخ محمد ندا

dbprogالاخ

اسمحوا لى بدمج مشاركتيكما الاخيرتين مع تعديل بسيط ليتم مقارنة قاعدتى بيانات معا

تم التعديل على الاستعلام ( استعلام توحيد) ليعرض جميع كائنات القاعدتين فى وقت واحد

و لكن اعتقد ان الموضوع هكذا لم يكتمل و يجب ان نتعمق اكثر فى عملية المقارنة (للجداول على الاقل) حتى نكون قد حصلنا على اداة مقارنة جيدة لا مجرد مقارنة تاريخ الانشاء و تاريخ التعديل

last_compare.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى Mr. No

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

وحتى هنا .. وسوف يتم التجريب للتأكد من وجود كل كائنات القاعدتين فى القائمة وفى مكانها السليم .. ستكون هذه الأداة حتى هنا جيدة جداً وتقوم بعملية المقارنة السليمة بين القاعدتين.

بالنسبة لموضوع التطوير .. فما زال الموضوع مفتوحاً لأى تطوير وأفكار .. ولكن الآن لدينا أداة لمقارنة كائنات قاعدتى بيانات.

تعديل:

تمت تجربة المرفق على السريع .. وهو بعمل بشكل جيد جداً

تمت بعض الإضافات البسيطة على الشكل ليوضح الأحدث من الكائنات وما ليس له مقابل بالألوان.

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

تحياتى

محمد ندا

last_compare_UP.rar

تم تعديل بواسطه Mohamed Nada
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

أخي الكريم شكرا لك على دمج الأفكار التي وردت في المشاركة.

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
تمت تجربة المرفق على السريع .. وهو بعمل بشكل جيد جداً

تمت بعض الإضافات البسيطة على الشكل ليوضح الأحدث من الكائنات وما ليس له مقابل بالألوان.

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

أخي محمد ندا أنت رائع وفقك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى الحبيب إكسير الحياة

الرائعون هم الأساتذة الذين تعلمنا منهم .. أقصدكم أنتم .. هذا أولاً.

وثانياً: الفكرة أنجزتموها أنتم .. أقصدك أنت أولاً .. ثم أخونا dbporg بمجهود رائع .. وتلاه بعد ذلك أخونا Mr Nooo بمثله .. (وأنا كان لى الدور الأكبر طبعاً .. وهو أننى أخذت النتيجة على الجاهز :) :) )

تحياتى لكم

محمد ندا

تم تعديل بواسطه Mohamed Nada
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا الى جميع الاخوة

و ان كان الامر يحتاج الى المزيد من الجهد

تعديل بسيط على الشكل النهائى

last_compare.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
شكرا الى جميع الاخوة

و ان كان الامر يحتاج الى المزيد من الجهد

تعديل بسيط على الشكل النهائى

تعديل هايل أخي mrnooo2000 بوركت اليد التي تبني

وفقك الله وأجزل لك المثوبه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكرك اخى اكسير

و لكن الفضل يرجع الى الاخوة الذين شاركوا بجهودهم فى هذا المثال

و كتطبيق على هذه الاداة

خطرت لى فكرة تحديث البرنامج ( اى برنامج اكسس ) بالاعتماد على هذه الاداة

و ذلك بحذف الكائنات الاقدم و استيراد الاحدث بعد اجراء المقارنة بينها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عمل رائع وجدير بكل تقدير واحترام

سلمت انامل كل من ساهم في الموضوع

وتحية خاصة لاخي الكريم محمد ندا على الفكرة الرائعة

وإلى الامام دائما

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .