مشاهدة النسخة كاملة : ماهي الطريقة الصحيحة لربط 3جداول مع بعض
السلام عليكم ورحمة الله تعالى وبركاته
لدي مشكلة في ربط 3 جداول مع بعض علما انني استعمل قاعدة البيانات Absolute Database و نسخة الدلفي7
لدي الجدول الأول pers.db والحقل المفتاح هو PS_CD من نوع SMALLINT واسم الجدول AbsTable1
والجدول الثاني Poste.Db والحقل المفتاح هو PT_CD من نوع string واسم الجدول AbsTable2
والجدول الثالث Rubrique.db والحقل المفتاح هو RB_CD من نوع string واسم الجدول AbsTable3
المطلوب هو ربط abstable2 بـ Abstable3
بمعنى احتاج لمعطيات Abstable3 في كل سجلات AbdTable2 تلقائيا ومن خلال الضغط على زر بحيث استطيع ان اغير المعطيات من دون ان يؤثر عليها في الجدول AbsTable3
وربط abstable1 بـ AbsTable2
بمعنى احتاج الى معطيات ABstable2 في كل سجلات AbsTable1 بما فيها المعطيات التي وردت له من AbsTable3 حسب التغييرات التي طرأت عليها في AbsTable2
إذا كيف لي ان اعمل هذا وجزاكم الله عنا كل خير
السلام عليكم
اخي medreg اراك تطرح الأسئلة في كل مكان هنا دلفي للعرب الفريق العربي العاصفة احيانا تجد الاجابات و احيانا لا فلا تيأس.
الحقيقة رغم اني مثلك اعمل ب absolute و تواجهني نفس الصعوبات و الله انا اتخبط لربط جدولين و انا متوقف ف مكاني...
المهم اعتقد ان هذه الامور تقوم بها باستخدام الـ Sql يعني تحضر بيانات العمود من و الجدول و تضعها ف الجدول الذي تريد و الله اعلم
فقط اريد ان اقول لك انه يجب ان تعتمد على نفسك اكثر لانه الحقيقة تقول بانه بطرح الأسئلة كثيرا لن تصل الى المطلوب
بكل بساطة اعتمد على طرق غير مباشرة ف الوصول الى مرادك حلل برامج الغير قواعد بياناتهم حلل و استنتج تعلم sql و ستنشاهذ مواضيع لك تشرح لنا
كيف نربط الجداول هذا ان كنت تحب ان تساعد الغير
و السلام عليكم و رحمة
سلامي
الى الامام
مفتاح بن مفتاح
2010-07-31, 21:56
السلام عليكم و رحمة الله وبركاته,
لم افهم سؤالك جيدا و كذلك ليس لدي خلفية على دلفي و لكن اعطي لك بعض المفاهيم حتى يمكن ربط جداول بعضها البعض.
1 - ربط جداول لتفاذي تكرار و تحسين من أداء قواعد البيانات و لكن يشترط أن يكون في كل جدولين نفس حقل من نوع int
خذ مثال:
عندنا جدول city:
1 - idcity رقم من نوع int و autoincrement
2 - cityname اسم المدينة من نوع string
3 - countryid رقم من نوع int
و جدول آخر country
1 - idcountry رقم من نوع int و autoincrement
2 - countryname اسم البلد من نوع string
و جدول آخر student
1 - idstudent رقم من نوع int و autoincrement
2 - studentname اسم الطالب من نوع string
3 - countryid رقم من نوع int
4 - cityid رقم من نوع int
يمكن ان تزيد في حقول ......
لاحظ أنه يوجد أرقام من نفس نوع التي سوف نكون بها العلاقات و ربط بين جداول مثل countryid , idcountry ...
هيا نربط city مع country
فنكتب:
sql = "select idcity, cityname, idcountry, countryname from city left join country on city.countryid = country.idcountry"
و نفس شيء إذا أرادنا استخراج حقول من طالب و المدينة و البلد معا.
sql="select studentname, cityname, countryname from student left joint city, country on student.countryid = country.idcountry and student.cityid = city.idcity"
ويوجد ربط بـ union سوف اشرحها في مرة القادمة إذا ترغب.
السلام عليكم
اخي مفتاح بن مفتاح
ممكن توضحلنا اين نضع الكود لاننا نريد الامر اوتماتيكي يعني
يهضر بدون الضغط على زر و لا شيئ
سلامي
مفتاح بن مفتاح
2010-08-08, 16:58
السلام عليكم,
كما قلت من قبل ليس لي خلفية في دلفي و يمكن فعل ذلك ب databind
أو وضح أكثر حتى يمكنني أن اساعدك.
أشتغل حاليا بـ C#.net ربما إذا وفقني الله سوف أضع بعض دروس.
انسان بسيط
2010-08-31, 04:27
سيدي
في حالة كنت من الخبراء في بناء قواعد البيانات فسيسهل عليك ربط الحقول عند التصميم ، وإلا فعليك ان تتصل بخبير في هذا الميدان
أما في واجهة دلفي فالأمر بسيط :
بعض وضع المكونات المستخدمة في ربط قاعدة البيانات بالمشروع (TTable, TADOTable, ....
انقر نقرا مزدوجا على مكون الجدول ثم أضف الحقول ، بعدها قم بإضافة حقل جديد من نوع référence ، مستخدما المفتاح في الوصول الى الجدول الثاني ، ثم عين الحقل الهدف ..
بعدها ستجد الحقل الجديد في مكونات العرض ك : dbgrid مثلا
إذا لم تكن قد تعاملت من قبل بكثرة مع انشاء تطبيقات قاعدة البيانات ، فعليك أولا أن تقرأ بعد الدروس الأولية ، لتستطيع حل مشكلتك وفهم الحل المقترح ، وإلا فما عليك سوى الطلب وسأتولى شرحا مفصلا ، لكن أرجو أولا أن تشرح بالتدقيق الواجهة التي تريد الحصول عليها : الحقول في كل جدول وطريقة الاستجابة لتفاعل المستخدم : les évenements sur la fiche
شكرا وعذرا على الاختصار
vBulletin® v3.8.10 Release Candidate 2, Copyright ©2000-2025, TranZ by Almuhajir