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

ملتقي ابداع طلبة جامعة الحديدة

منتدى الابداع والتميز ملتقي العطاء بلا حدود الى الافضل
 
الرئيسيةالتسجيلدخول

شاطر | 
 

 (2) لغة الإستفسارات SQL

اذهب الى الأسفل 
كاتب الموضوعرسالة
زهرة الربيع
عضو نشــط
عضو نشــط
avatar

عدد المساهمات : 36
نقاط : 86
السٌّمعَة : 0
تاريخ التسجيل : 17/05/2009

مُساهمةموضوع: (2) لغة الإستفسارات SQL   الأربعاء مايو 20, 2009 1:27 pm


كيف نتعامل مع جملة SQL في البرنامج ؟ هذا هو السؤال الذي سوف نقوم بالإجابة عليه الان
يجب عليك أن تعرف الفكرة التي سنقوم بتنفيذها ، أول شيء سوف نقوم بعملية الاستعلام و ذلك بكتابة جملة الاستعلام كما تعلمنا في الدرس السابق في المكان الذي تريده و غالبا ما يكون في زر او عند حدث التحميل ، بعد ذلك سنحصل على نتائج الاستعلام و لكي نقوم بقراءتها و اظهارها يجب اولا ان نخزنها في جدول ، و هنا فائدة الجدول المستعار كما تعلمنا في الدروس الاولى حيث سنقوم بتخزين الناتج فيه ، بعد ذلك سنقوم بعرض النتائج من الجدول ، سنفرض أن لدينا الجدول التالي :


tbاسم الجدول
namenum
ahmad1442
saleh5425
sami1442


لكي نستعلم عن الاسماء التي ارقامها 1442 نكتب الجملة التالية :


SQL = "select name from Tb where num = 1442 "

هكذا نكون قد قمنا بالاستعلام بعد ذلك تأتي الخطوة التالية و هي تخزين النتائج في الجدول المستعار و الذي نقوم بتعريفه ( لمزيد من التوضيح راجع الدروس السابقة) عادة في الموديول كما قمنا به في الدروس السابقة و لنفرض أن اسمه T و ان اسم المتغير الذي قمنا بتخزين قاعدة البيانات فيه D و التي كنا نطلق عليها القاعدة المستعارة سنكتب الامر التالي لكي نخزن نتائج الاستعلام في الجدول :


Set T=D.openrecordset(SQL,dbopendynaset)

لا حظ أننا قمنا باستخدام الاسماء المستعارة للجدول و قاعدية البيانات و هي المتغيرات التي اعلنا عنها في البداية ( راجع دورس سابقة لمزيد من التفاصيل) ، لقد قمنا في الامر السابق بتخزين قيم الاستعلام في الجدول حيث كتبنا SQL و هي قيمة متغير الاستعلام الذي توجد فيه القيم ، بعد ذلك قمنا بوضع نوع الاتصال او بالأصح نوع الربط المراد ان صح التعبير على العموم و كما قلنا أن هناك اشياء لا يتطلب منك سوى معرفتها مرة واحدة فقط و ستقوم بتركيبها حسب استخدامك


و الان بعد أن قمنا بتخزين القيم في الجدول نريد ان نظهر البيانات و يمكنك اظهارها في عدة اشكال كما تريد فيمكنك و ضعها في مربعات نص او قوائم سواء LISt او COMBO ولكل واحد طريقة تختلف نوعا ما عن الاخر


مربع النص Text Box :
لكي تظهر النتائج في مربع النص فلن تحتاج الا لإجراء الاظهار كما تعلمنا في السابق و تقوم بكتابته بعد امر تخزين نتائج الاستعلام في الجدول
List Box :
لتضع النتائج في قائمة ListBox لن تحتاج لكثير من الخطوات فالأمر ربما أسهل مما تتصور ، فقط تحتاج لهذا الكود :



For i = 1 To n
List1.AddItem TB!name
TB.MoveNext
Next i


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


ComboBox :
لا تختلف طريقة تعبئة هذه القائمة عن الطريقة السابقة أبدا قم بنفس الخطوات


استقبال المدخلات من المستخدم :
لن تستفيد حقيقيا من البرامج التي تعملها اذا لم تعرف طريقة استقبال القيم من المستخدم ثم عمل الاستعلام عليها لانه من غير المنطقي أن يقوم المستخدم بالرجوع إليك عند كل عملية إستعلام ،و طريقة الاستقبال هنا لها طريقة خاصة نوعا ما سنعرفها بعد قليل ، غالبا ماتقوم باستقبال القيم من المستخدم من مربع نص Text Box و المشكلة التي تواجهنا بين المدخلات النصية و الرقمية و يعتمد ذلك على نوع البيانات للحقل المعني دعونا نرى أمثلة على ذلك :
إفرض أنك قمت بعمل قاعدة بيانات فيها حقلين الاسم name و حددت نوع البيانات لهذا الحقل بأنها نصية و الحقل الاخر الرقم num و حددت البيانات له بأنها رقمية ، و قمت بربط القاعد مع البرنامج بطريقتنا التي تعلمناها و الان نريد ان نستعلم عن الرقم للشخص الذي يحدده المستخدم سنقوم في هذه الحالة بإنشاء مربع نص لكي يدخل المستخدم الاسم الذي يريده ثم ننشأ زر يقوم المستخدم بالضغط عليه لتتم عملية الاستعلام ، و ستكون جملة الاستعلام عادية كما تعلمنا و بدلا من ان نضع القيمة التي سنستعلم عنها سنضع القيمة التي ادخلها المستخدم في مربع النص من المتوقع أن يكون الكود المطلوب للاستعلام في هذه الحالة التالي :

SQL = "select num from tb where name = text1.text "


هذه هي الجملة المتوقعة لكنها خاطئة ، بهذه الطريقة يكون الاستعلام عن عدد لانهائي من الخانات و هذي ان صح التعبير عيب في مربع النص و لكي نتلافى هذا الخطأ نقوم بما يسمى بالحصر على اساس نوع البيانات في name في حالتنا هذه نوع البيانات حرفية لذا تكون طريقة الحصر على الشكل التالي:
' " & text1.text & " '
لقد قمنا بوضع علامتي تنصيص مزدوجة عليها يفصل بينها علامة الجمع & ثم قمنا بحصرهم جميعا بعلامة تنصيص مفردة ، الخطوة الاخيرة و هي وضع علامة التنصيص المفردة تكون للحقول الحرفية و لا نحتاجها في الحقول الرقمية ، قم بتجربة ذلك الان لكي تستوعبها جيدا
افرض أن المطلوب الان هو العكس ، بحيث يقوم المستخدم بإدخال الرقم و يقوم البرنامج بالاستعلام عن الاسماء التي تحمل هذا الرقم سيكون الكود نفس السابق مع تغيير اسم الحقل بطبيعة الحال و أيضا عدم وضع علامة التنصيص المفردة كالتالي:

SQL = "select num from tb where name = '" & text1.text & "' "


افرض أن المطلوب الان هو العكس ، بحيث يقوم المستخدم بإدخال الرقم و يقوم البرنامج بالاستعلام عن الاسماء التي تحمل هذا الرقم سيكون الكود نفس السابق مع تغيير اسم الحقل بطبيعة الحال و أيضا عدم وضع علامة التنصيص المفردة كالتالي:

SQL = "select name from tb where num = " & text1.text & " "


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



نستخدم هذه الطريقة عندما تكون بيانات الشرط رقمية أو عددية و يحدد ذلك من ينشأ قاعدة البيانات
" & text1.text & "
نستخدم هذه الطريقة عندما تكون بيانات حقل الشرط من نوع البيانات الحرفية
'" & text1.text & "'
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
(2) لغة الإستفسارات SQL
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
ملتقي ابداع طلبة جامعة الحديدة :: ملتقي إبداع معلم الحاسوب :: ملتقي الغات البرمجيه-
انتقل الى: