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

سلسلة دروس تعلم قواعد بيانات Midas

مغلقرائج
بدأه SUM في 16 مايو 2002 · 71 رد · 38,748 مشاهدة · في أرشيف منتدى الدلفي
مشاركة: واتساب X فيسبوك تيليجرام
#26

اخي العزيز المشرف

بالنسبة للتاريخ فهو كما ذكرت استخدم طريقة التالية :

قم بأنشاء حقل كما في خطوات الدرس الأول وتجعل قيمته string ثم تقوم بتسيق عرض الحقل كما في خطوات الدرس الثالث على الشكل التالي 00/00/0000

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

واشكر الأخ احمد على رده الجميل

وتقبلوا اطيب تحياتي اخوكم SUM

#27

اخوتي الأعزاء هانحن نواصل معكم سلسلة الدروس من جديد

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

ولننطلق الآن في جولة حول انواع الحقول :

اولاً : ماهي الحقول التي نستطييع انشائها :-

نستطيع في قواعد بيانات Midas انشاء الحقول على ثلاثة اشكال وهي :

1- الحقل الدائم ( Date ) - وهو الحقل التي تيم فيه تخزين البيانات - اي ثابته - (( تعلمنا طريقة انشائها في الدرس الأول ))

48.jpg

2- الحقل الحسابي ( Calculated - InternalCalc ) - هذه الحقول لاتقوم بتخزين البيانات وانما تقوم بعرض مجموع حسابات برمجية مدخلة لها على الحقول (( مثلاً جميع قيمة حقلين ))

49.jpg

3- الحقل البحثي ( Lookup ) - هذا الحقل ايضاً لايقوم بتخزين البيانات وانما يقوم بربط الحقل بحقل آخر من جدول آخر فيجعل الحقل اختياري للبيانات المدخلة في الحقل المربوط ثم تقوم بادخال البيانات المختارت على حقل (( حقل دائم )) آخر محدد في نفس الجدول

50.jpg

ثانياً : امثلة على انشاء الحقول :-

1- طريقة انشاء الحقل الدائم (( راجع الدرس الأول في سلسلة الدروس ))

2- انشاء حقل حسابي :-

اليك خطوات العمل :

1- ضع كائن قاعدة بيانات Midas على الفورم ثم ادخل الى محرر الحقول بالنقر المزدوج على الكائن ثم انقر بالزر الأيمن في قائمة الحقول اوختر New Filed بعدها ستظهر لك شاشة اضافة حقل جديد في الحقل Name اكتب اسم الحقل وفي الحقل Type حدد قيمة الحقل وفي الحقل Size حدد حجمه

بعدما تدخل بيانات الحقل المطلوبة انقر على (( Calculated او InternalCalc على حسب المزاج :) ( طبعاً كلهن يعملن نفس العمل ) )) ثم انقر على زر OK

51.jpg

3- اغلق محرر الحقول ثم اذهب الى الحدث OnClacFileds واكتب الأمر الذي تريد ان يتم عملة في الحقل الذي قمت بأنشائه

52.jpg

مثلاً اسم الحقل الحسابي الذي قمنا بأنشائه هو SUM ويوجد لدينا حقل آخر اسمه vale وقيمته Integer ونريد ان نظرب الحقل vale في 3 ويعطينا الناتج في الحق SUM فنكتب التالي :

ClientDataSet1.FieldByName('SUM').AsInteger:=ClientDataSet1.FieldByName('vale').AsInteger*3

هذه هي طريقة انشاء الحقل الحسابي بشكل مبسط

53.jpg

3- انشاء حقل بحثي :-

اليك خطوات العمل :

1- قم بوضع كائنين من كائن قاعدة بيانات Midas على الفورم في الكائن الأول قم بأنشاء حقل جديد ( دائم ) وسمه مثلاً Data وجعل قيمته string وعرضه 30

54.jpg

2- قم بأضافة حقل جديد (دائم ) في الكائن الثاني لقاعدة بيانات Midas وسمه مثلاً View وجعل قيمته string وعرضه 30

55.jpg

3- قم بأنشاء حقل جديد ( بحثي ) آخر في نفس القاعدة الثانية وسمه مثلاً Look وجعل قيمته string وعرضه 30 بعدما تحدد شكل الحقل ( دائم - حسابي - بحثي ) وتعله حقل بحثي سوف يعمل لديك الجزء الأسفل من الخيارات ( Lookup definition ) في الحقل Key Fields قم بتحديد الحقل View وهو الحقل الذي ستم تخزين البيانات المختارة فيه وفي الحقل Dataset قم بتحديد القاعدة الأولى التي يوجد بها الحقل الذي تريد ربطه بهذا الحقل وفي الحقلين Lookup Keys - Result Field حدد الحقل الذي في القاعدة الأخرى الذي تريد ربطه بالحقل وهو Data

56.jpg

4- قم بأنشاء كل القاعديتين وشغل البرنامج وستجد انه في في الحقل Look تقوم بأختيار البيانات المكتوبة في الحقل Data في القاعدة الأولى وبعدها يتم ارسال البيانات المختاره الى الحقل View في نفس القاعدة

57.jpg

الى هنا نصل الى نهاية درسنا

والى اللقاء في الدرس القادم إن شاء الله

وتقبلوا اطيب تحياتي اخوكم SUM

#28

جزاك الله خير أخي sum أنا متابعك أول بأول فدروس جميله جدا واقتراح أخي المشرف في تقسيم الدروس إقتراح جميل , أستاذي sum عندي بعض الاسئله :

1- هذه الدروس الحمد لله طبقتها بالدلفي 5 لكن هل في الدروس القادمه لابد من وجود دلفي 6 أم دلفي 5 يكفي

2- ما هو الفرق بين البارادكس و midas هل نفسه كما بين أكسس و midas أم يختلف ؟

3- كيف تتم عملية صيانة الجداول في midas ؟

4- في عملية الفهرسه وعند تكرار البيانات كيف يكمن إصتياد الخطاء قبل وقوعه وإظهار رساله للمستخدم فهل يوجد مثلا مثل أكسس كتابة عباره أم كيف ؟

#29

اهلا وسهلاً بك اخي أبو الحارث

ومشكور على رأيك بتقسيم الدروس ولكن سأنتظر آراء بقية الأخوة :D

بالنسبة لأسئلتك فاليك الأجوبة :

1- لا يلمزك الدلفي 6 ولكن يفضل ان يكون موجود :) (( على حسب الأستطاعة )) لأنه ربما سأشرح بعض الخصائص لكائنات Midas الجديدة وهذه الكائنات لاتوجد في الدلفي 5 ولكن تستطيع التكملة معنا في الدلفي 5 :)

2- هو نفسه في الأكسس او اسوء بقليل :D

3- في الحقيقة انه لم تحدث معي اي خطأ حتى اقوم بعملية الصيانة ولكن عملية الصيانة ستقوم بها برمجياً على حسب مكان الخلل ولكن في الغالب لان يحدث هناك اي خطأ

4- بالنسبة للأحداثيات فسوف نتعلمها إن شاء الله في الجزء البرمجي من سلسلة الدروس وارجوا ان لاتكون مستعجلاً في الجواب :D

وتقبل اطيب تحياتي اخوك SUM

#30

ثلاثة اسئلة بارك الله فيك

1 - هل استطيع منع التكرار في lookup

مثلا لا تتكرر الحقول المتشابهة

2 - ياليت ترفق مثال على الدرس

3 - تم انشاء قاعدة البيانات هل استطيع التعديل عليها بعد الحفظ أنا لم اجد سوى اضافة أو حذف

شاكرا جهودك و وفقك الله

#31

اهلاً وسهلاً بك اخي المشرف

وآسف على التأخر وكان ذلك بسبب ضروف خارجة عن الأرادة

على العموم بالنسبة لأجوبة اسئلتك فهي كالتالي :

1- عملية منع التكرار غير ممكن اذا كان بأستخدام حقل LookUp ولكن هناك طريقة وهي ان تمنع التكرار في الحقل المجلوبه منه (( راجع الدروس السابقة ))

2- على اي درس تريد المثال ؟؟؟

3- بالنسبة لعملية التعديل على نوعية الحقل مثلاً تعدله من Integer الى string فلا يوجد حل لها الا عملية الحذف و الأضافة :D

وتقبل اطيب تحياتي اخوك SUM

#32

وفي هذا الدرس سوف نتعلم كيفية استخدام المرشحات في قواعد بيانات Midas

وسوف ننطلق الآن في جولة عن المرشحات :

اولاً : ماهي المرشحات :-

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

ثانياً : اين توجد المرشحات وخصائصها :-

توجد المرشحات في صفحة الخصائص لقاعدة بيانات Midas

فالخاصية Filter تمثل المرشح

58.jpg

والخاصية Filtered تمثل عمل المرشح ( تشغيله )

59.jpg

والخاصية FilterOptions تمثل خصائص المرشح

60.jpg

(( يمكن استخدام المرشحات وذلك عن امر حدث OnFilterRecorde وسيتم تفعيل الحدث OnFilterRecorde فيتم استثناء الترشيح بالخصائص وسنتعلم ذلك في ما بعد ))

61.jpg

ثالثا: ماهي خصائص المرشحات :-

كما ذكرنا سابقاً انه توجد خصائص المرشح في خاصية FilterOptions وفي نفس الخاصية توجد خصائص اخرى وهي

foCaseInsensitive عندما تكون قيمة هذه الخاصية True فأنه يتم تجاهل الفرق بين الحرف الصغيرة و الكبيرة

62.jpg

foPartialCompare عندما تكون قيمة هذه الخاصية True فأنه يتم الغاء تطابق سلاسل المحارف الجزئية ( المنتهية بـ '*' )

63.jpg

وهذه هي خصائص المرشحات

رابعاً : مثال على استخدام المرشحات :-

اليكم الخطوات :

1- قم فتح قاعدة بيانات Midas موجوده لديك ويوجد بها عدد كبير من البيانات

2- اذهب الى الخاصية Filter واكتب Field = 'Name' طبعاً لاتقم بأدخال النص السابق كما هو مكتوب بل قم بكتابة اسم الحقل الذي تريد ترشيحة في مكان Field وقم بكتابة الكلمة التي تريد ترشيحها في مكان Name (( مثلاً : تريد ان ترشح كلمة SUM من الحقل Name فتوم بكتابة التالي Name = 'SUM' ))

64.jpg

طبعاً اذا كنت لا تعرف الكلمة بالضبط او تريد ان تخرج جميع من يبدا بالكملة فقم بوضع * بعد الكلمة (( مثلاً تريد ان تخرج جميع من يبدأ بحرف s في الحقل Name فتكتب التالي Name = 's*' ))

65.jpg

3- اجعل قيمة الخاصية Filtered هي True لكي يتم تفيل المرشح

66.jpg

قم بتشغيل البرنامج ونظر الى النتيجة

67.jpg

68.jpg

(( ملاحظة : كما تلاحظ اننا في مثالنا السباق وضعنا علامة التنصيص '' ولذلك بسبب اننا نريد ان نبحث عن نص ولكن عندما يكون البحث عن رقم فهنا يتم ازالة علامة التنصيص ))

خامساً : المعاملات المنطقية :-

يمكنك استخدام المعاملات المنطقية في المرشحات

واليك المعملات التي يمكن استخدامها مع ذكر وضائفها ومثال عليها :

= : تساوي (( مثال على استخدامها في الترشيح name = 'SUM' ))

> : اصغر من (( مثال على استخدامها في الترشيح name < 'SUM' ))

< : اكبر من (( مثال على استخدامها في الترشيح name > 'SUM' ))

<= : اكبر من او يساوي (( مثال على استخدامها في الترشيح name >= 'SUM' ))

>= : اصغر من او يساوي (( مثال على استخدامها في الترشيح name <= 'SUM' ))

<> : لايساوي (( مثال على استخدامها في الترشيح name <> 'SUM' ))

and : و (( تستخدم عندما تريد عمل اكثر من ترشيح لأكثر من كلمة او حقل ويكون ناتج كل الترشحيات صحيح (( مثال على استخدامها في الترشيح name = 'SUM' and name='simple' )) ))

not : استشناء (( تستخدم لكي ترشح جميع الكلمات بأستثناء كلمة معينة (( مثال على استخدامها في الترشيح not name = 'SUM' )) ))

or : او (( تستخدم عندما تريد ان عمل اكثر من ترشيح لأكثر من كلمة او حقل ويكون ناتج احد الترشيحات صحيح (( مثال على استخدامها في الترشيح name = 'SUM' or name = 'simple' ))

وتقبلوا اطيب تحياتي اخوكم SUM

#33

ما رأيكم هل نكمل في نفس الموضوع ام نفصل كل درس على لوحده ؟؟؟

وتقبلوا اطيب تحياتي اخوكم SUM

#34

ترى طال و كبر حتى يصعب عليك متابعة و تجميعه

ياليت انك تفصله و شي اللي يضر لو فصلتهم و ثبت الفهرس و وصلات الدروس

1 الى 7

درس 8

#35

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

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

انا الان بعد ان تفرغت من مشروعي سانصب على كل صغيرة وكبيرة في هدا الموضوع

..تحياتي ...(gift) :mad:

#36

أخي بارك الله فيك

كيف تحدد الحقل المراد الترشيح عليه أو ( الحقول ) اذا كان هناك ترشيح على أكثر من حقل

#37

اقصد اذا كان من ملفين مربوطين مع بعض

#38

اهلاً وسهلاً بك اخي زكيري وانت يااخي المشرف

بالنسبة لك اخي المشرف

في البداية هل قراءة الدرس جيداً ؟؟ :D وهل واجهتك مشاكل فيه ؟؟

عملية الترشيح مذكوره في الدرس فمثلاً انت تريد ان ترشح كملة arabteam من الحقل Forum فتقوم بصياغتها على نفس المثال المذكور في الدرس تكتب في الترشيح التالي

Forum = 'arabteam'

واما بالنسبة لعملية الترشيح لملفين فأنا ماادري ايش تقصد بالضبط ؟؟ هل تقصد قاعدتين

فأذا كان كذلك فتقوم بالتشريح لكل واحدة منهما في كائن القاعدة المشغل لها ClientDataSet

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

مثلاً : لو كنت تريد ان ترشح كلمتين من حقلين الكلمة الاولى هي arabteam وهذه الكلمة في حقل اسمه Forum والكلمة الثانية هي SUM وهي موجوده في الحقل Name

فيوجد هنا لك خيارين في الترشيح وهما اما انك تريد ان تنجح النتيجة في احد الحقلين او تريد ان تنجحة النتيجة في كلا الحقلين فتستخدم or او and فمثلاً سنستخدم or فقم بكتابة التالي في حقل الترشيح

Forum = 'arabteam' or Name = 'SUM'

هذه هي الطريقة

وطبعاً تأكد من تفعيل الترشيح وذلك بجعل الحقل Filtered يحمل القيمة True

وتقبلوا اطيب تحياتي اخوكم SUM

#39

شكرا لك أخي و ماقصرت

خلاص و اضح الله يعطيك العافية

عطنا اللي بعده

#40

جزاك الله خير أخي sum على هذه الدروس الممتازه ونرجوا لو كنت تعمل يوم درس ويوم يكون مناقشة الدرس لاننا هذه الايام في إجازه و الوقت متوفر , عندي سؤال :

س) هل يمكن أن نرشح حقل التاريخ وكيف ؟

لك جزيل الشكر

#41

بالنسبة للفلتر شي جميل و ممتاز جدا

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

#42

السلام عليكم

بالنسبة للاخ ؟؟؟؟؟

مثلا باستخدام Edit

Name = Edit.Text

وبذلك يقارن مع القيمة المدخلة طبعا بعد ان تضع خاصية

filtered:= true

بالنسبة للاستفسار عن التاريخ

ارجو التوضيح

هناك مثال موجود في المساعدة عن عملية مقارنة التاريخ

تحيات

عنيزة

#43

شكرا لك يأخ عنيزة و الأخ سيم على هذا االتوضيح

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

#44

مرحباً اخي ميداس الاخ ( المشرف ) سابقاً :D

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

اقتباس
سجلت باسم مداس من تعليقي بها و السبب هز الأخ سيم

حقيقة اني مافهمت عليك

واذا كنت تقصد انه انا السبب في تغيير اسمك

:o :o

فأسمح لي انه انا مالي اي دخل في تغيير اسمك

وتقبل اطيب تحياتي اخوك SUM

#45

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

أنت أخي وضعتها في القمة كيف ما تبغانا نتابعها و نشتغل عليها و لكن هناك قصور في مصادر المعلومات لها .

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

لأنني و الله بحاجة ماسة و مستعجلة والسبب عندي مشروع و أرغب في تحديد قواعد البيانات قبل البداية .

#46

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

الله يجزيك ألف خير عزيزي..

ويرزقك من حيث لا تحتسب..

طريقتك عزيزي في الشرح جد مشوقة وبسيطة جداً أرجو منك الإستمرار ويعطيك ألف عافية..

وتحياتي

#47

السلام عليكم يا أخ sum :

لك جزيل الشكر على دروسك الرائعة ...

بالنسبة لقواعد البيانات قد قمت ببناء مشروع صغير بناء على دروسك المفيدة ولكن للأسف بعد أن انتهيت من تصميم المشرع اتضح لي أن البيانات لا يتم حفظها وأظن أنك أشرت الى ذلك في المقدمة فأرجوا أن تعجل لنا بالجواب في كيفية حفظ البيانات ( لا تقل لي ارجع الى الخطوات 6-7-8 من الدرس الأول فهي لم تفدني شيئا ) .

(gift) (gift)

#48

يا أخ محمد معليش نحن تلاميذ الاستاذ الكبير SUM

حل مشكلتك في تحديد مسار الملف filename في خصائص الجدول

وبعدها يحفظ ان شاء الله

#49

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

صح المشكلة تكمن في خصائص Filename ..

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

عندي سؤال أرجو أن يتكرم أحد الخبراء بالرد عليه ..

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

السؤال :

كيف أقوم بفتح Form جديد بإزرار .. آسف بس أنا مبتدئ غشيم وأنا عارف إنه سؤال يدل على الغباء المستفحش فيني.. أرجوا من الأخوة الكرام التكرم بالإجابة.. ولكم جزيل الشكر..

#50

شكراً للأخوين midas و أبو نورة :o

لكن ما ذكرتماه ليس الحل فقد جربته مرارا وتكرارا .

بالنسبة للأخ أبو نورة :

اضغط new form من القائمة file ثم ضع button على form1 واضغط عليه ضغطا مزدوجا

واكتب الكود التالي بين begin و end :

form2.show;

أرجوا أن يفي هذا بالمطلوب:)

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…