اذهب الي المحتوي
أوفيسنا

استعلامات SQL لا يتم تنفيذها على هذه القاعدة . لماذا ؟


smaaa.

الردود الموصى بها

.

 

 

السلام عليكم

 

هذه قاعدة بيانات أنشأتها لمشروعي

وموعد تسليمه بعد يومين

 

تقسيم جداولها كما يلي

 

 

 

ER%20halagah.jpg?dl=0

 

 

 

schema.jpg?dl=0

 

 

 

مطلوب فيها استعلامات بسيطة بـ SQL

 

ظهرت لي مشكلة بتنفيذ بعض الاستعلامات SQL

مثل الـ delete & insert & update

لم أعرف سببها ، هل لها علاقة بتقسيم الجداول أو طريقة الربط ؟!

 

 

أرجو المساعدة بالتعديل أو باقتراح الحلول البسيطة

 

( لم يُسمح لي برفع قاعدة البيانات للأسف )

 

 

.

 

.

post-133732-0-50936600-1417972878_thumb.

رابط هذا التعليق
شارك

أولا ماشاء الله  أهنئك على هذا التصميم الممتاز للجداول الخمسة و العلاقات المتزنة

ثانيا بالنسبة لسؤالك لم توضح أين المشكلة ظهرت

حاول أن تكتب جملة ال SQL  اذا لم تتمكن من ارفاق الملف

و بالتوفيق

رابط هذا التعليق
شارك

.

 

 

أشكرك أخي على تفاعلك

وشهادة أعتز بها

 

 

هذا رابط للقاعدة

 

https://www.dropbox.com/s/a0jlqndagprdej1/%D8%AD%D9%84%D9%82%D8%A9%20%D8%AA%D8%AD%D9%81%D9%8A%D8%B8%20%D9%82%D8%B1%D8%A2%D9%86.accdb?dl=0

 

 

جربت كثيرا جمل بسيطة مثل

INSERT INTO tollab

(2,6466,46567,1,"VALUES(6,"Ahmed","Kamal","Hasan;

 

__________________

 

DELETE *

FROM tollab;

 

__________________

 

UPDATE tollab

SET level=3

WHERE SID=5;

 

 

___________________________________________

 

مع العلم أن مرة واحدة استطعت فيها إضافة بيانات طالب جديدعلى جدول tollab

لكن الآن لايقبل بذلك مع أني كررت نفس الطريقة

 

كان هناك تنبيه يظهر لي حول الأمان وتمكين الوصول للمحتوى

لكن لا أذكر سبب اختفائه الآن

فقط ألاحظ رسالة في الشريط السفلي أنه تم منعه

 

 

 

 

.

رابط هذا التعليق
شارك

.

 

 

 

 

حين فتحت البرنامج من جديد

استطعت الوصول لخيارات الأمان وفعلت خيار تمكين التعديل على محتويات القاعدة

 

 

ولله الحمد تم تنفيذ استعلام حذف جدول البرامج , وإدخال بيانات طالب جديد

 

ولكن لم أستطع تشغيل استعلام تحديث كمافي الجملة التي ذكرتها في الرد السابق !

 

 

 

 

.

رابط هذا التعليق
شارك

.

 

 

هذا التنبيه في الشريط العلوي

وخيار تمكين يسمح لي بإجراء الاستعلامات

 

 

%D8%AA%D9%86%D8%A8%D9%8A%D9%87%20%D8%A7%

 

 

بعد التمكين

 

عندما قمت بحذف جدول البرامج

تم حذفه مع كافة بيانات جدول الطلاب !!!

هل هذا تنفيذ صحيح لاستعلام الحذف ؟

 

 

 

 

 

 

 

.

post-133732-0-90908600-1417992595_thumb.

تم تعديل بواسطه smaaa.
رابط هذا التعليق
شارك

حين فتحت البرنامج من جديد

استطعت الوصول لخيارات الأمان وفعلت خيار تمكين التعديل على محتويات القاعدة

 

 

 

اذا البرنامج ليس من تصميمك !!!!!

 

عندما قمت بحذف جدول البرامج

تم حذفه مع كافة بيانات جدول الطلاب !!!

هل هذا تنفيذ صحيح لاستعلام الحذف ؟

 

 

لا خطأ

الخطأ في نوع العلاقات , لأنه في البرنامج تم اختيار العلاقة بين الطلاب و البرامج على أنه One To Many 

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

و لهذا السبب فان حذف اي سجل من الجدول البرامج سيؤدي الى حذف كل السجلات المرتبطة به في جدول الطلاب

غير نوع العلاقة بين الجدولين و اختر الخيار الأول في العلاقات 

only include rows where the joined fields from both tables are equale

و هنا المفروض أن حذف أو تعديل أي شي في جدول البرامج لن يؤثر على جدول الطلاب

رابط هذا التعليق
شارك

.

 

 

 

 

بلى القاعدة من إنشائي على نفس الجهاز

 

لكن التنبيه دائما يظهر بمجرد فتح برنامج Access

وأرفقته برد سابق ، لا أعرف سببه ربما لأن نسخة الأوفيس 2007 عندي ليست أصلية ؟!

 

 

أرفقت مخطط العلاقات هنا ..

اخترت نوع العلاقة one-to-many لأن البرنامج الواحد ينضم له أكثر من طالب

وكل طالب يمكنه الإنضمام لبرنامج واحد فقط ، هل التعبير بنوع العلاقة هذا خاطئ ؟

 

وهل تعديل علاقة يلزم مسح كامل المخطط أوتغيير ترتيب إضافة الجداول للمخطط ؟

 

 

 

 

.

post-133732-0-45545400-1418045344_thumb.

تم تعديل بواسطه smaaa.
رابط هذا التعليق
شارك

خترت نوع العلاقة one-to-many لأن البرنامج الواحد ينضم له أكثر من طالب

وكل طالب يمكنه الإنضمام لبرنامج واحد فقط ، هل التعبير بنوع العلاقة هذا خاطئ ؟

 

 

 

طالما أن حقل نوع البرنامج في جدول الطلاب حقل واحد و لايقبل الا قيمة واحدة فلايمكن اختيار أكثر من قيمة واحدة للبرامج

أي لن يكون هناك طريقة لاختيار أكثر من برنامج لكل طالب

 

و عموما اختيار نوع العلاقة يتبع المقصد مما تريد للبرنامج أن يفعله

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

 

لنأخذ مثالا مبسطا على علاقة رأس بأطراف

برنامج فواتير مبيعات

اذا كان لدينا جدولين , جدول الفواتير ( رقم الفاتورة - رقم المورد - تاريخ الفاتورة )

جدول أصناف الفواتير ( رقم الفاتورة - رقم الصنف - الكمية - السعر )

اذا أردنا انشاء علاقة بينهما , فان أنسب نوع هو علاقة رأس بأطراف بحيث تحقق ما يلي :

1- لايمكن ادخال اي سجل في جدول أصناف الفواتير اذا لم يكن له سجل مرتبط به في جدول الفواتير 

2- يمكن حذف أي سجل من جدول اصناف الفواتير ( اذا اراد الزبون الغاء صنف مثلا ممكن دون أي تأثير على غيره )

3- و بالعكس , اذا أراد الزبون الغاء الفاتورة كلها يكفي الغاء سجلها من جدول الفواتير و تلقائيا تلغى كل الأصناف المرتبطة بها في جدول أصناف الفواتير

 

أما في حالتك هذه , فأنا لا أرى وجود ضرورة لمثل هذه العلاقة ( ليس خطأ و لكن ليست ضرورية )

رابط هذا التعليق
شارك

.

 

 

أشكرك

 

أذا إذا اخترت الخيار الأول من المفترض أن تصبح العلاقة 1:1 ؟

 

اخترت الخيار الأول لكن لم تتغير علامة المالانهاية بطرف جدول الطلاب

 

 

هل حذف العلاقة وانشاؤها من جديد سيؤثر على استعلامات سابقة ؟

 

 

أعتذرعن الأسئلة لكن لم يعد بإمكاني التنبؤ بماقد يحدث بعد هذه المفاجآت

 

 

 

 

.

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • اضف...

Important Information