Visual foxpro (VFP)

76
عهد التق ا/ موصلاسبات أنظمة ا قسم)عمليال( لبيانات ملزمة قواعد اVisual FoxPro اد إعدل ماهر طسعدي ايات هندسة بر ماجست مساعد مدرساسوب أنظمة ا قسم / موصلعهد التق ا2102 - 2105

Transcript of Visual foxpro (VFP)

Page 1: Visual foxpro (VFP)

موصل / المعهد التقني

قسم أنظمة الحاسبات

ملزمة قواعد البيانات )العملي(

Visual FoxPro

إعداد

الأسعديماهر طلال

ماجستير هندسة برمجيات

مدرس مساعد

المعهد التقني / موصل –قسم أنظمة الحاسوب

2102 - 2105

Page 2: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 1قواعد البيانات )العملي(

Visual FoxPro (VFP) نظامVisual FoxPro (VFP) is dedicated to manage the relational database. This

system can use Structured Query Language (SQL). The begin of

development of this system since 1980 with the spread of the personal

computer and its evolution, since started as FoxBase and which was

characterized by fast, and then evolved to FoxBase + , FoxPro 2.6 for Dos,

FoxPro For Windows, and lasted until Visual FoxPro 3.0, which was a

quantum leap to shift from just a database programming language and then

the latest version is Visual FoxPro 9.0 after passing versions that preceded

it. ام بإمكانية البرمجة باسصصصصصصتخدالنظام هذا متازيو ،لإدارة قواعد البيانات العلائقية مخصصصصصصص هو نظام

في بداية الثمانينات مع انتشصصصصار ال اسصصصص ا النظام يرجع تاريخ هذ ،SQL لغة الاسصصصصت سصصصصار الم يك ة إلىوالتي كانت تتميز بالسصصصصصصرعة ثم ت ورت FoxBaseبدأت ال غة باسصصصصصصم ، إذ شصصصصصصخصصصصصصصي وت ور ال

FoxBase+ إلىثم FoxPro واسصصصصصصصصصصصصصتمرت تىFoxPro 2.6 for Dos ثم جاءتFoxPro

For Windows واستمرت تىVisual FoxPro 3.0 والذي كان نق ة نوعية ل ت ول من مجردعد المرور ب Visual FoxPro 9.0إصصصصصصصصصصصصدار ل ا وهو آخرلغة برمجة ثم ظ ر إلىقاعدة بيانات

.بالإصدارات التي سبقته -: اولالجد

" Records" والتي تمثصل القيود"Rows"عبصارة عن مجموعصة من الصصصصصصصصصصصصصصص و -:Tables الجصداوللغرض خزن البيانات "، وتسصصصصصتخدم Fields" " التي تمثل ال قولColumnsومجموعة من الأعمدة "

.(1موظ ين )أنظر الشكل الخاصة بالمستخدم مثلا" جدول ال بة وجدول ال

الحقول والقيود في الجدول (0شكل )

تلميحات

ولكن تختلف في الحقولكل صف في الجدول له نفس العدد من

القيمة البيانية

جميع الحقول في الجدول تشترك بنفس النوع والحجم في العمود

الواحد .

الصفوف )القيود(

الأعمدة )الحقول(

Page 3: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 2قواعد البيانات )العملي(

-: VFPأنواع الملفات المستخدمة مع لغة .الجداوليمثل هذا النوع م ات -: Data Base File (DBF) الجدول م -1

: يمثل هذا النوع م قاعدة البيانات. Data Base container (DBC)م قاعدة البيانات -2

يمثل م ال رسة البسي الذي يتكون من ف رسة Index file (IDX) ال رسة البسي ة م -3 .أو البسي ةويسمى عادة بال رسة الم ردة الجداول

يمثل م ال رسة المركبة. Compound Index File (CDX)م ال رسة المركبة -4

م يتكون عند تكوين البرنامج وخزنه. -:Program File (PRG) م البرنامج -5

يتكون هذا الم عند تكوين التقارير . -:Report File (FRX) م التقرير -6

هو م يتكون عند تكوين واج ات الإدخال ل مستخدم .-:Form File (SCX) م الواج ة -7

VFP :- لغة إلىالدخول فتظ ر الشصصصصصصصاشصصصصصصصة الرئيسصصصصصصصية VFPبرنامج إلىبعد اختيار الأيقونة الخاصصصصصصصصة بالبرنامج يتم الدخول

(.2 الشكل )انظر Command window الأوامروالتي تضم نافذة ل برنامج

VFPالواجهة الرئيسية للغة (2شكل )ال

Page 4: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 3قواعد البيانات )العملي(

: Command Window الأوامرنافذة ن م ا وا د ا ويمكنك تن يذ أمر ،مباشصصصرةوتن يذها VFPامر لغة أو يمكنك من خلال هذ النافذة إدخال

امر )تع يمات( مرة أو تن يذ دفعة أو ،(Enterاح الإدخال)ثم ضصصصصصصصصصصصغ م ت الأمرخلال ا وذلك بكتابة وا دة.

ع ى الشصصاشصصة باسصصتخدام أمر Hello Worldسصصيقوم هذا السصص ر ب باعة ك مة فع ى سصصبيل المثال، ال باعة )؟(

تنفيذ سطر (3شكل )ال

لمتغيرين ثم جمع ا bوقيمة ل متغير aسصصصصصصصتقوم هذ الأسصصصصصصص ر بإ لال قيمة ل متغير وفي مثال آخر،

بتأشصصصير الأسصصص ر والضصصصغ ع ى الزر الأيمن و ،ثم باعة الناتج cووضصصصع الناتج في متغير الناتج (4 الشصصصصصصصكلأنظر ) الأوامر دفعة وا دةسصصصصصصصيتم تن يذ Execute Selectionس واختيار ك مة و ال م:-

تنفيذ مجموعة سطور دفعة واحدة (4شكل )ال

Menu Commandsأوامر القائمة الرئيسية

تكوين الجدول : -1 :لتكوين جدول باستخدام ايعازات القائمة الرئيسية يتم عن ريق اختيار

File New Table New file

Page 5: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 4قواعد البيانات )العملي(

تكوين جدول جديد (5شكل )ال

ذاو :C\ن صصصصدد مكصصصصان ال ظ مثلا ، ظ الم تظ ر قصصصصائمصصصصة يكون موقع ال ظ سصصصصصصصصصصصصصصلم ن صصصصدد ف ا ،My Documentالموجود داخل مج د Visual FoxPro Projectsالافتراضصصصصصصصصصصصصصي هو المج د

،Table Designerلت ديد مواصصصص ات الجدول تصصصصميم الجدول ندخل أسصصصم الجدول لتظ ر شصصصاشصصصة (.6 الشكل)أنظر جدول خا بمع ومات ال لا ف ي هذا المثال تم تكوين هيك ية ل

شاشة تصميم الجدول (6شكل )ال

-:Table Designerتتضمن شاشة ت ديد مواص ات الجدول 1-Name :- اسم ال قليمثل. 2-Type :- التالية : الأنواعيمثل نوع ال قل والذي يتضمن-

Page 6: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 5قواعد البيانات )العملي(

.جميع ال رو والأرقام والرموزعند عم ية إدخال البيانات بل ليتق -: Character رفي -أ

. ى العلامة العشريةوالذي يتقبل الأرقام ويمكن أن ي وي ع -: Numericالرقمي -

.False أو Trueيستخدم مع البيانات المن قية التي تتمثل -: Logical قي المن -ت

.(8) يستخدم ل تاريخ ويكون ول هذا ال قل -: Dateالتاريخ -ث

.نصو كبيرة : يستخدم ل ملا ظات ويمكن إدخال Memoالملا ظات -ج

3- Width :- أو الرموزالأرقام أويمثل ول ال قل لت ديد عدد ال رو.

4- Decimal :- عدد المرات العشرية بعد ال اص ةيستخدم لت ديد. 5- Index أو لاكان هذا ال قل م رس إذا: لت ديد ما. 6- Null أو لاكان هذا ال قل بإمكانه أن يمت ك قيمة فارغة إذا: لت ديد ما. ضغ اليتم ،ال قل ونوع ال قل و وله اسممن ت ديد مواص ات الجدول من يث الانت اءبعد و

.ن ن س الشاشة ليتم خزن المواص اتالموجود ضم OK زر ع ى -:الآتيتظ ر نافذة ت وي ع ى السؤال OKبعد الضغ ع ى زر

?Yes \ No Input Data Record Now؟ الآنهل ترغ بإدخال البيانات -:ع ى الكل الآتي يكون شري ال الة Noعند اختيار

شريط الحالة (7شكل )ال

ي توي ع ى أي قيود. في وضع الاستعداد وانه لاو م توح Studمعنى أن الجدول الذي اسمه ب -: (8 الشكل )انظرتظ ر شاشة لإدخال قيود الجدول yesوفي الة اختيار

شاشة إدخال البيانات إلى الجدول (8شكل )ال

Ctrl + End م تا ي القيود نسصصصصصصصصصصصصصصتخدم من إدخال الانت اءنقوم بإدخال القيود لكل ال و بعد ل ظ.

Page 7: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 6قواعد البيانات )العملي(

تعديل مواصفات الجدول : -2 View Table Designer باستخدام القائمة الرئيسية نختار

لعنوان قل ا ضصصصصافةوع ى سصصصصبيل المثال لإ ،تظ ر شصصصصاشصصصصة ت ديد مواصصصصص ات الجدول الذي تم تكوينهAddress ثم نختار قبل قل المعدل يتم التأشصصصصصصير ع ى قل المعدلInsert يضصصصصصصا قل جديد ل

ا ن دد مواصصصصصصص ات هذثم ،" في ال قل الجديدAddressال قل " اسصصصصصصميتم إدخال و ،قبل قل المعدل .ال قل من يث النوع و ول ال قل

، Deleteنضصع المؤشصر ع ى ال قل الم و ذفه ثم نختار Birthل ذ قل وفي مثال آخر، لخزن الصيغة الن ائية . OKالجدول نختار من تعديل مواص ات الانت اءوبعد

عرض بيانات الجدول : -3

-:(9الشكل )أنظر لتظ ر بيانات الجدولView Browse باستخدام القائمة الرئيسية نختار

Browsعرض الجدول باستخدام أمر (9شكل )ال

تعديل بيانات الجدول : -4 View Edit أخرىثم نختار مرة View Browse باسصصصصصصصصتخدام القائمة الرئيسصصصصصصصصية نختار .ضافة ومن الممكن التعديل ع ي التظ ر بيانات الجدول كما في نافذة الإ

بيانات للجدول : إضافة -4بيصانصات جصديصدة وذلصك إضصصصصصصصصصصصصصصصافصةمن الممكن Edit أو Brows في صالصة عرض البيصانصات ب ريقصة

View Append Modeباختيار فتح وغلق الجدول : -4نغير ثم م ، فتحلتظ ر نافذة File Open تح الجدول باسصصصصصصصتخدام القائمة الرئيسصصصصصصصية نختار ل

لكي تظ ر Table(*.dbf) إلى File Typeنوع الم صصات التي تظ ر في القصصائمصصة التي بجصصانصص ولغ ق الجصصصدول نختصصصار ، وبعصصصدهصصصا يتم اختيصصصار الجصصصدول الم و فت صصصه ،فق الجصصصداوللصصصدينصصصا م صصصات

FileClose.

Page 8: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 7قواعد البيانات )العملي(

تمارينAnswer the following questions by using VFP commands:

1. Create a new table named (Stud) contains the following fields:

ال ول النوع اسم ال قل تسمية توضي ية Stud_no N 3 رقم ال ال Stud_name C 15 اسم ال ال

Gender L 1 الجنس

Stage C 10 المر ة

Avg N 3 المعدل Address C 15 العنوان Birth D 8 المواليد

Notes C 40 الملا ظات

2. Append five students records to this table:

VFP Relationshipsالعلاقات بين الجداول في لغة

The relations in databases is the linking of data table with another table, this

relationship may be (One-to-One), (One-to-Many) or (Many-to-Many).

كي يصة ارتبصا بيصانصات جصدول بجصدول آخر، وقصد تكون العلاقصة بين هي قواعصد البيصانصات في علاقصات الأو كثير (One -to- Many)أو وا د لكثير (One -to- One)جدولين من النوع وا د لوا د

. (Many -to- Many)لكثير Bبعنصصصصصصصصصر وا د من الجدول Aتعتبر العلاقة وا د لوا د عندما يرتب عنصصصصصصصصصر وا د من الجدول

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

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

البيانات.بأكثر مع عدة عناصصصصصصصصصصصر من Aة عناصصصصصصصصصصصر من الجدول وأخيرا العلاقة كثير لكثير عندما يرتب عد

، )ع ى سصصصبيل المثال يدرس ال ال أكثر من مادة دراسصصصية وا د، والمادة الدراسصصصية يمكن Bالجدول ان يدرسص ا اكثر من ال ( وهذ العلاقة ق ي ة الانتشصار لأن ا تسصب ال ائضصية في البيانات وأيضصصا

مشاكل التكام ية.

Page 9: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 8قواعد البيانات )العملي(

قاتخطوات تكوين العلا

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

، إذ Locationمع جدول المواقع التدريبية لكل ال Studسصصصصصصصصصصصصصو نأخذ مثال جدول ال لا التدريبية والذي يرتب بأكثر من سصصجل ال يتدر يمكن أن تكون علاقة سصصجل في جدول المواقع -في هذا الموقع التدريبي في جدول ال لا :

نور المع د التقني ع ي

رنا جامعة الموصل سالم

هدى مركز ال اسبة ا مد

سين المكتبة المركزية فراس

ريم الك ية التقنية سامي

بين جدول الطلاب مع جدول المواقع التدريبية( العلاقة 81الشكل )

(dbc.)تكوين ملف قاعدة البيانات -8

لتكوين م قاعدة بيانات عن ريق ايعازات القائمة الرئيسية اختر File New Database New file

جديدة بيانات قاعدة تكوين( 91) الشكل

ا ظ الم في موقع معين .و db دد اسم لقاعدة البيانات ع ى سبيل المثال

Page 10: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 9قواعد البيانات )العملي(

(dbc.)فتح ملف قاعدة البيانات -2نغير نوع ،لتظ ر نافذة ال تحFile Open باستخدام القائمة الرئيسية نختار قاعدة البياناتل تح

لكي تظ ر Database(*.dbc) إلى File Typeالم صصات التي تظ ر في القصصائمصصة التي بجصصانصص ول نختار ولغ ق الجد، الم و فت ه م وبعدها يتم اختيار ال ،فق قاعدة البياناتلدينا م ات

FileClose .

تلميحات الأمر طريق عن الأوامر شاشة من بيانات قاعدة تكوين يمكن

CREATE DATABASE .

الأمر طريق عن الأوامر شاشة من بيانات قاعدة فتحيمكن MODIFY DATABASE .

جديدة فارغة بيانات قاعدة( 02) الشكل

Page 11: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 11قواعد البيانات )العملي(

إضافة الجداول إلى قاعدة البيانات -3

-( : 21)أنظر الشكل قاعدة البيانات يتم عند ريق شري قاعدة البيانات إلىلإضافة الجداول

بيانات قاعدة شريط أدوات( 09) الشكل

-( :22)أنظر الشكل Locationتكوين جدول جديد باسم باختيار الرمز الأول يتم

Location( نافذة تصميم جدول باسم 22شكل )ال

يتم عمل ق ين ل جدول، ال قل الأول لرقم الموقع التدريبي والثاني اسصصصصصصصصصصصصصصم الموقع التدريبي، ويكون

وع ى افتراض Indexال قل الأول م رس، أي يتم ت ديد الإشصصصارة تصصصصاعدي أو تنازلي ت ت البند هو ال قل Loc_noفيج ت ديد بأن ال قل Primary Key انه ي توي ع ى الم تاح الرئيسصصصصصصصصصصصي

-( :23)أنظر الشكل Typeت ت البند Primaryوثم ت ديد Indexesالرئيسي باختيار البند

إضافة جدول موجود

جدول جديد تكوين

جدول ذ

Page 12: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 11قواعد البيانات )العملي(

تكوين فهارس الجدول( 02) الشكل

،الرمز الثاني وهو إضصصافة جدول ريق موجود مسصصبقا فيتم اختيار Studوع ى افتراض أن الجدول ليكون هو الم تاح الثانوي Loc_noديل ع ى هذا الجدول بإضافة قل جديد وهو وأيضا يج التع

بصصدلا من Regularب صصذا الجصصدول، ويتم تعيينصصه ثصصانوي بن س الخ وات السصصصصصصصصصصصصصصصابقصصة ولكن النوع يكون Primary .

-( :24الآن أصبح لدينا الجدولين في قاعدة البيانات ولكن ل د الآن بدون علاقة )أنظر الشكل

قاعدة بيانات تضم جدولين بدون علاقة( 02) الشكل

Locationالآن لتكوين العلاقة وا د لكثير يتم وضصصصصصع الماوس ع ى الم تاح الرئيسصصصصصي من الجدول ليصبح الشكل التالي Studوالاستمرار بالضغ والس والإفلات إلى الم تاح الثانوي في الجدول

-: (25)أنظر الشكل

م تاح رئيسي

م تاح ثانوي

Page 13: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 12قواعد البيانات )العملي(

دة بيانات تضم جدولين بينهما علاقة واحد لكثيرقاع( 02) الشكل

علاقة وا د لكثير

Page 14: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 13قواعد البيانات )العملي(

VFPلغة امر أو التي تظ ر في الشصصصصصصصصاشصصصصصصصصة Command Windowفي شصصصصصصصصاشصصصصصصصصة الأوامر VFPتكت أوامر لغة

-:VFPالرئيسية ل برنامج وتشمل أوامر لغة

Creation Commandsالتكوين والإضافة والحذفأوامر

.دوهو الأمر الذي يستخدم لإنشاء جدول جدي -:أمر تكوين الجدول -0 -الصيغة العامة للأمر :

CREATE <table name> .إنشاؤ الجدول الم و اسميمثل table name حيث أن CREATE Stud -مثال :

تصصصصصصصصصصصصصصصميم أولإجراء التعديل ع ى هيكل الأمردم هذا يسصصصصصصصصصصصصصصتخ -: على الهيكلية أمر التعديل -2 .مواص اته أو قل اسمتعديل أو قل إلغاء أو قل جديد إضافةالجدول الذي تم تكوينه ك MODIFY STRUCTURE -الصيغة العامة للأمر :

-مثال:ضافةو Studلتعديل مواص ات الجدول -:نكت Addressل قل العنوانقبPhone قل ا

MODIFY STRUCTURE ثم Insertثم نختار Addressصصصصصصصصصصصصصصصص نضصصع المؤشصصر ع ى قل ال تصصصميم الجدولبعدها ت تح شصصاشصصة

. Phoneنضي قل .الجدول بياناتلإجراء التعديل ع ى الأمريستخدم هذا -: على البيانات أمر التعديل -3

EDIT -الصيغة العامة للأمر :يود ق إضصافةقيود ع ى الجدول ال الي ويمكن ضصافةلإ ضصافةامر الإأو تسصتخدم -:ضافةالإ مرأ -4

.الجدول إلىفارغة APPEND [BLANK] -الصيغة العامة للأمر : إلى أكثر أوقيد إضصصصصصصصصصصصصصافةتعني BLANKبدون APPEND الأمراسصصصصصصصصصصصصصتخدام في الة -:لا"أو

ال من إدخ نت اءالإعند و ،الجدول وذلك عن ريق ظ ور نافذة ل مسصصصصصصصصصصصصصصتخدم ت البه بإدخال القيود القيود. ل ظ Ctrl + w م تا ي القيود الم وبة يتم استخدام

إلى ن اية قيد وا د فارغ إضصصصصصصصصافةيتم APPEND BLANKالأمرفي الة اسصصصصصصصصتخدام -ثانيا" : .الجدول

.فتح الجدول الذي تم تكوينه سابقا لغرض الأمريستخدم هذا -الجدول:أمر فتح -5 USE [<table name>] -الصيغة العامة للأمر :

.اسم الجدول الم و فت ه table name حيث أن

Page 15: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 14قواعد البيانات )العملي(

USE Stud الذي تم تكوينه :Stud أفتح الجدول -مثال :

ملاحظات :( ل تح نافذة ? USE) الأمرسصصصصصصصصصصصصتخدم قم بإ ،موقعه أو* في الة عدم تذكر اسصصصصصصصصصصصصم م الجدول

تظ ر جميع م ات الجدول المتوفرة. توح اليا".الجدول يتم غ ق الجدول الم اسمبدون USE الأمر* وفي الة استخدام

Scopeالمدى دى ال الات ويشصصصصمل الم ،ع ي ا الإيعازأي القيود التي سصصصصيتم تن يذ ،الإيعازيمثل المدى مجال تن يذ

-التالية :0-All :- قيود الجدولجميع الإيعازيكون مجال تن يذ. 2-Next<n> :- (القيد الذي يق ع يه المؤشصصصصصصصصصصصصصصر)من القيد ال الي الإيعازمجال تن يذ يكون

.من القيودn إلى نزولا 3-Rest :- الأخير في الجدولالقيد إلىمن القيد ال الي الإيعازيكون مجال تن يذ. 4-Record<n> :- يكون رقمهع ى قيد وا د فق الذي الإيعازيكون تن يذ n.

تلميحات

في جميع الأمثلة سوف نستخدم الامرUSE Stud ولأول مثال فقط

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

تلميحات :

أي فقرة تحدد بين العلامتين > < تعني أن ما بداخلها يحدد من قبل •

.المستخدم

وجود الأقواس المربعة ] [ يعني أن ما موجود بداخلها يعتبر اختياريا •

.حيث يكتب حسب الحاجة

كتابة الأوامر الخاصة باللغة بالحروف تحسن وليس شرطا من المس •

ر أن اللغة غي علما ، الكبيرة وذلك لغرض تمييزها عن أسماء الحقول والبيانات

حساسة لحالة الأحرف.

Page 16: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 15قواعد البيانات )العملي(

Display Commands العرضامر أو -ي ي: ما الأوامروتتضمن هذ (قيود الجدول)لعرض م تويات الجدول الأوامرتستخدم هذ

LISTأمر -0 .لاستعراض بيانات الجدول الأمريستخدم هذا

-الصيغة العامة للأمر : LIST [FIELDS <field list>] [<Scope>] [FOR<expr>] [WHILE<expr>]

[<TO FILE <file name>] [TO PRINTER] -أن:حيث

FIELDS <field list>:- يمثل ال قول الم و اسصصتعراضصص ا وفي الة عدم ت ديد ال قول يتم عرض جميع قول الجدول.

Scope:- الإيعازيمثل مدى تن يذ. FOR <expr>:- الإيعازلتن يذ معين شر يمثل ت ديد.

WHILE <expr>:- تن يذها عن ويخت الإيعازت ديد شر لتن يذ For . TO FILE <file name>:- م إلى الإيعازعند اسصصصصصصصصصصصصصصتخدام هذا القرار يتم توجيه ناتج تن يذ

.ي دد المستخدم باسم Text fileنصي TO PRINTER:- ال ابعة . إلى الأمريتم توجيه ناتج تن يذ

Ex:

List Stud table records?

USE Stud LIST or LIST ALL

Ex:

List fields (Name), (Stage) for all records?

LIST St-name ,Stage

Ex:

List all records for passed students only?

LIST FOR (Avg>=50)

تلميحات الحالة الافتراضية للمدى للأمرLIST يع القيود.هو استعراض جم

تكون كلمةFIELDS اختيارية في أمرLIST مكن عدم كتابتها.يأي

Page 17: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 16قواعد البيانات )العملي(

Ex:

List records for students those in the first stage, and send the output to

a text file? LIST FOR (Stage="first")TO FILE F1.

FORو WHILEامر الشرط أو الفرق بين 1- FOR يث ،ع ى القيود التي ت قق الشصصصصصصصصصر الإيعازلغرض تن يذ الأوامر: يسصصصصصصصصصتخدم مع

لىو الأولب ث ل قيود من القيد (FOR)يعمل ي يتم ف الشصصصصصصصصصصر فو ،في الجدول الأخيرالقيد ا .الأخيرالقيد لىإ تقالالانيتم لاوا لقيد ع ى ذلك ا الإيعازف ي الة ت قق الشر يتم تن يذ ،كل قيد

2- WHILE ع ى القيود التي ت قق الشصصصصصصصصصصصصصصر الإيعازلغرض تن يذ الأوامر: يسصصصصصصصصصصصصصصتخدم مع، في الجصصصدول الأولمن القيصصصد WHILEيبصصصدأ ب ريقصصصة الب صصصث عن القيود، إذ FORواختلافصصصه عن

لقيد التالي ا إلىوينتقل عازالإيوفي الة توفر الشصصصصصصصصصصر ين ذ ،ويقوم بالب ث عن الشصصصصصصصصصصر الم و .الجداول المرتبةويستخدم عادة مع وتوق الإيعاز, وفي الة عدم ت قق الشر يتم الخروج

: DISPLAYأمر -2 .جدوللاستعراض بيانات ال الأمريستخدم هذا

-الصيغة العامة للأمر :DISPLAY [FIELDS <field list>] [<Scope>] [FOR<expr>] [WHILE<expr>]

[<TO FILE <file name>] [TO PRINTER]

Ex:

List all records for Stud table?

USE Stud DISPLAY ALL LIST

Ex:

List the fourth record?

DISPLAY RECORD 4

تلميحات

ولكن الفرق بينهما: LISTفي التنفيذ أمر DISPLAYأمر يشابه

ستخدام الأمر -1 ستعراض قيود الجد DISPLAYعند ا شة عند لا شا ول تقف ال

امتلاؤها مطالبة المستخدم بالضغط على أي مفتاح للاستمرار.

هو استعراض القيد الحالي )أي القيد DISPLAYالحالة الافتراضية للأمر -2

.LISTوليس جميع القيود كما في أمر الذي يقف عليه المؤشر(

Page 18: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 17قواعد البيانات )العملي(

Ex:

List records for students those lives in Mosul and in the first stage?

DISPLAY ALL FOR (address="Mosul").and.(Stage="first")

: BROWSأمر -3 .لاستعراض بيانات الجدول الأمريستخدم هذا

-الصيغة العامة للأمر :BROWS [FIELDS <field list>] [FREEZ<field name>][NOEDIT]

[NODELETE] [NOAPPEND] [FOR<expr>] [WHILE<expr>]

-حيث أن :FIELDS <field list>:- يمثل ال قول الم و اسصصتعراضصص ا وفي الة عدم ت ديد ال قول يتم

عرض جميع قول الجدول.FREEZ <field name> :- الوصصصصصصصصول أو)أي عدم إمكانية تغييرها تعني تجميد جميع ال قول

.إليه والتعديل يث بالامكان الوصول <field name>( ماعدا ال قل إلي اNOEDIT من شاشة التعديل ع ى القيود إمكانية إلغاء: تعنيBROWS.

NODELETE إمكانية ال ذ من شصصصصصصاشصصصصصصة إلغاء: تعنيBROWSيمكن ذ القيدكان ، إذ س ع ى جان القيد الم و و االتاشصصصصصصصصصصير بالم أو (Ctrl+T) م تا ي باسصصصصصصصصصصتخدامو بدون هذا الأمر

ذفه.NOAPPEND من شاشة قيودالإضافة :تع يل إمكانيةBROWS قيود إضافةيمكن ، إذ كان

.(Ctrl+Y) م تا ي باستخدامبدون هذا الامر و فارغة Ex:

List (Name), (Avg) fields for all records?

BROWS FIELDS Stud_name, Avg Ex:

Freeze all fields except (Avg) field? BROWS FREEZ Avg

تلميحات عند استتتتتخدامنا للأمرين(LIST , DISPLAY) لغرض استتتتتعراض

القيود قيود من ناحية الإضافة أو الحذف أو التعديل.لا يوفران السيطرة على ال -1 عملية الاستعراض تكون غير مرتبة العرض . إن -2

BROWSمع أسماء الحقول مع الأمر FILEDSيجب استخدام كلمة

Page 19: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 18قواعد البيانات )العملي(

Ex:

List fields (Name), (Stage) for all students those named "Ahmed", and

disable the delete operation? BROWS FIELDS Stud_name, Stage FOR Stud_name="Ahmed" NODELETE

Record Pointer Commandsامر تحريك المؤشر أو

Record pointer commands are used to move the record pointer from one

location to another, whereas the record pointer represents the sequence

number of record in the table. ل رقم يمث يث أن مؤشصصصر القيد آخر إلىامر ت ريك مؤشصصصر القيد لنقل المؤشصصصر من موقع أو تسصصصتخدم

.تس سل القيد في الجدول0- GOTO :

.د الم و القي إلىامر ت ريك المؤشر يستخدم أس و الق ز مباشرة أو وهو من الصيغة العامة للأمر :

GOTO | GO <n> | TOP | BOTTOM

-حيث أن :n وهي قيمة ص ي ة موجبة م صورة بين إليه: تمثل رقم القيد الم و الوصول عدد القيود( . - 1)

TOP في الجدول الأولالقيد إلى: يستخدم للانتقال. BOTTOM ي الجدولف الأخيرالقيد إلى: يستخدم للانتقال.

Ex:

List the first record in Stud table ? USE Stud

GOTO TOP

DISPLAY

Ex:

List the fifth record in Stud table ? GO 5

DISPLAY

2- SKIP : .من القيود (n)لنقل مؤشر القيد بمقدار الأس ل أو الأع ى إلى الإزا ةأس و الأمريستخدم هذا

SKIP [<n>] : الصيغة العامة للأمر

Page 20: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 19قواعد البيانات )العملي(

حيث أن :n عندما تكون قيمة الأع ى إلى الإزا ةوتكون ،الإزا ة: قيمة صصصصصصصصصصصصصصص ي ة تمثل مقدارn موجبة،

الإزا ةقيمة تكون nوفي الة عدم ت ديد قيمة ، الأسصصصصصصص ل إلى الإزا ةتكون أما إذا كانت سصصصصصصصالبة ف=1 .

Ex: List the record that in before the last? USE Stud

GO BOTTOM

SKIP -1

DISPLAY

Deleting Commandsامر الحذف أو مجموعة قيود من الجدول وهنالك نوعين من ال ذ : أويقصد بال ذ عم ية مسح قيد

: Logical Deletingالحذف المنطقي -0 يتم مسصصصصصصصص ه من لامجموعة قيود ل ذ يث أن القيد المؤشصصصصصصصصر ل ذ أويد هو عم ية تأشصصصصصصصصير ق ذ المؤشصصرة لوفي هذا النوع من ال ذ يمكن اسصصترجاع القيود ، شصصر ل ذ الجدول ولكن فق يؤ

لغاءالتراجع و أي .عم ية التأشير ل ذ ا : Physical Deletingالحذف الفيزيائي -2

.استرجاع ا لا يمكنو ذ مس ا ن ائيا من الجدوللهو عم ية مسح القيود المؤشرة

Logical Deleting Commandsامر الحذف المنطقي أو : DELETEأمر -0

.لغرض تأشير القيود ل ذ الأمريستخدم هذا -الصيغة العامة للأمر :

DELETE [<Scope>] [FOR<expr>] [WHILE<expr>]

EX:

Delete logically the third record

USE Stud

DELETE RECORD 3

تلميحات

هو تأشير القيد الحالي )الذي DELETEللأمر الحالة الافتراضية للمدى

يقف عليه المؤشر( للحذف .

Page 21: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 21قواعد البيانات )العملي(

EX:

Delete logically the last four records

GO BOTTOM

SKIP -3

DELETE REST

: RECALLأمر -2 .تأشير القيود ل ذ إلغاء لغرض الأمريستخدم هذا

-الصيغة العامة للأمر :RECALL [<Scope>] [FOR<expr>] [WHILE<expr>]

EX:

Undelete third record USE Stud

RECALL RECORD 3

EX:

Undelete the records from third to seventh GO 3

RECALL NEXT 5

( )DELETEDدالة -3ي )الذي يق ع يه تسصصصصصصصصصصصصصصتخدم ل الة القيد ال ال F أو Tوهي دالة من قية تقوم بإرجاع قيمة

تقوم وأ ،القيد مؤشصصصر ل ذ كان إذا T الصصصصوا قيمةوتقوم بإرجاع ،لا مأالمؤشصصصر( هل تم ذفه ذ .مؤشرا لالقيد لم يكن إذا F الخ أ قيمةبإرجاع

EX:

Delete logically the records of failed students, and make sure the last

record is deleted or not.

USE Stud

DELETE FOR (Avg<50)

GO BOTTOM

? DELETED( )

SET DELETEأمر -4 ONهي (STATE)فعندما تكون ال الة ،لت ديد الة القيود المؤشصصصرة ل ذ الأمريسصصصتخدم هذا

(STATE)وعندما تكون قيمة ال الة ،عم ية أيشراك القيود المؤشرة ل ذ في يعني عدم إف ذا

تلميحات

تأشير القيد الحالي إلغاءهو RECALLالحالة الافتراضية للمدى للأمر

)الذي يقف عليه المؤشر( للحذف .

Page 22: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 21قواعد البيانات )العملي(

الة وهي ال الأوامر أوي إشصصصصصصصصصصصصصراك القيود المؤشصصصصصصصصصصصصصرة ل ذ في تن يذ الع ميات يعنف ذا OFFهي .الافتراضية

-الصيغة العامة للأمر :SET DELETE <STATE>

EX:

Delete logically the first three records USE Stud

GO TOP

DELETE NEXT 3

SET DELETE ON

BROWS

SET DELETE OFF

BROWS

Physical Deleting Commands الفيزيائي امر الحذفأو : PACKأمر -0

.استرجاع ا لا يمكنلمسح القيود المؤشرة ل ذ مس ا ن ائيا و الأمريستخدم هذا PACK -الصيغة العامة للأمر :

EX:

Delete physically the records from second to seventh USE Stud

GO 2

DELETE NEXT 5

PACK

: ZAPأمر -2 .جاع ايمكن استر ل ذ القيود المؤشرة وغير المؤشرة ل ذ مس ا ن ائيا ولا الأمريستخدم هذا

ZAP -الصيغة العامة للأمر :

EX:

Delete physically all table records

USE Stud

ZAP

Page 23: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 22قواعد البيانات )العملي(

Sortingالترتيب Sorting is the process of rearranging the table data on the basis of a one or

more field, and data can be arranged in ascending or descending order. د أو أكثر من قل، ويمكن ترتي هي عم ية إعادة ترتي بيانات الجدول ع ى أسصصصصصصصصصصصصصصاس قل وا

البيانات تصاعديا أو تنازليا . Sorting Commandأمر الترتيب

: SORTأمر

يستخدم هذا الأمر لترتي قيود الجدول ع ى أساس قل وا د أو أكثر. -الصيغة العامة للأمر :

SORT TO <dbf-file> ON <field1> [/A , /D , /C ]

[, <field2>[/A , /D , /C ]…] [FOR<expr>] -حيث أن:dbf-file تم تكوينه بشكل مباشر عند تن يذ الأمر ي: يمثل اسم الجدول الذيSORT ل ظ البيانات المرتبة فيه.

field1 . )اسم ال قل الأول الم و الترتي ع ى أساسه )ال قل الرئيسي : field2 ال قل الثانوي( .: اسم ال قل الثاني الم و الترتي ع ى أساسه(

/A تعني أن الترتي يكون بشكل تصاعدي :Ascending .

/D تعني أن الترتي يكون بشكل تصاعدي :Descending .

/C الة الأ ر ساسية : تمثل Case Sensitive وتستخدم مع ال قول ال رفية والمكتوبة بال غةفسيتعامل مع ا Smallأو Capitalنت )أي سواء كا وهي تعني تجاهل الة الأ ر ،الإنك يزية

.بشكل وا د

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

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

،تكون الحالة الافتراضية هي سفي حالة عدم تحديد أسلوب الترتيب

الترتيب التصاعدي.

:من مشاكل الترتيب

ويحتوي على عدد كبير من في حالة أن الجدول يكون كبير جدا .1

؛ ستكون عملية الترتيب بطيئة.قيودال

ة إضافة أو حذف أو تعديل على الجدول سيؤدي إلى تغيير في حال.2

يجب إعادة الترتيب مرة أخرى. االبيانات في الجدول الأصلي لذ

Page 24: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 23قواعد البيانات )العملي(

Ex:

Sort stud table data based on stud name field ascending, and save the

results in a new table named SortStud, and then display the sorted data. USE Stud

SORT TO SortStud ON Stud_name /A

USE SortStud

BROWS

Ex:

Sort stud table data based on stud avg field descending, and stud name

field ascending, save the results in a new table named Sort2Stud, then

display the sorted data.

SORT TO Sort2Stud ON Avg /D , Stud_name /A

USE Sort2Stud

BROWS

Indexingالفهرسة Indexing is the process of configuring index file to support the data file, and

it used for the purposes of fast access to data. ريع الوصصصول السصص لإغراضويسصصتخدم ،مسصصاند لم جدول البياناتم رس وهي عم ية تكوين م

ن من م ات ال رسة:بيانات الجدول وهنالك نوعا إلى : Simple Index Fileملف الفهرسة البسيطة -1

Simple index file is creating at the indexing process that basis of one field

of the table, index file takes (idx) extension and is usually used to fast up the

searching in the data table. خذ م ويأ ، قل وا د من الجدول أساسون م ال رسة البسي عند كل عم ية ف رسة ع ى يتك

ويستخدم عادة لتسريع الب ث في بيانات الجدول. (idx)ال رسة الامتداد يتكون م ال رسة البسي من ق ين فق :

.هأساس: وهو ال قل الذي تتم ال رسة ع ى Key Fieldال قل الم تا ي -1 .هو تس سل القيد في الجدول الأص ي: و .Rec Noتس سل القيد -2

الجدول الأصلي قبل عملية الفهرسة( 01الشكل )

Page 25: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 24قواعد البيانات )العملي(

الاسم أساسعلى الجدول الأصلي بعد عملية الفهرسة( 00الشكل )

Rec No. Key Field

Stud_Name

1 Ahmed

3 Ali

2 Noor

4 Rana

5 Salim

الاسمحسب Studالبسيط المتكون من عملية فهرسة الجدول ملف الفهرسة( 02الشكل ) Simple Index File Commands امر تكوين ملف الفهرسة البسيط أو

: INDEX ONأمر -0 . قل معين أساسع ى لتكوين م م رس بسي الأمريستخدم هذا

-الصيغة العامة للأمر :INDEX ON <key field> TO <index file name>

-حيث أن :key field هأساس: يمثل اسم ال قل الم و ال رسة ع ى.

index file name : المراد تكوينه والذي يأخذ الامتداد م ال رسة اسميمثل(idx) .

تلميحات

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

فتح جدول البيانات المطلوب فهرستهِ .

ة.سيطتترتب البيانات في الجدول تصاعديا فقط في الفهرسة الب

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

جدول البيانات )إضافة قيود , حذف , تعديل( فيتم التعديل على

ملف الفهرسة المفتوح تلقائيا .

Page 26: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 25قواعد البيانات )العملي(

:SET INDEXأمر -2 .الذي تم تكوينهبسي ال ةسال ر م تح ل الأمريستخدم هذا

-غة العامة للأمر :الصيSET INDEX TO <index file name>

-حيث أن :index file name م و فت هم ال رسة ال اسم: يمثل .

:REINDEXأمر -3

ف ي الة كون م ،التعديلات الجديدة أسصصصصصصصصصصصاسف رسصصصصصصصصصصصة م ع ى عادةلإ الأمريسصصصصصصصصصصصتخدم هذا ول خ أ في صصص إلىفان هذ العم ية تؤدي ،توح وتم التعديل ع ى جدول البياناتال رسصصة غير م .ل رسةا عادةايعاز لإعدد القيود بين الم ين ل ذا يتم استخدام وذلك لعدم توافق م ال رسة

REINDEX مر :الصيغة العامة للأ-

Ex: Create a simple index file based of Name field. USE Stud

INDEX ON Stud_name TO m1

BROWS

Ex: Create a simple index file based of Avg field. INDEX ON Avg TO m2

Ex: Open the index file based on the Name field. SET INDEX TO m1

BROWS

Ex: Open the index file based on the Avg field. SET INDEX TO m2

BROWS

تلميحات

SETبدون اسم ملف الفهرسة الإيعازلغلق ملف الفهرسة يمكن كتابة

INDEX TO .

تلميحات

. REINDEXة المطلوب إعادة فهرسته قبل استخدام الأمر يجب فتح ملف الفهرس

Page 27: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 26قواعد البيانات )العملي(

Ex: Add a new record to the table and reindex. Append

Reindex

:Compound Index Fileالفهرسة المركبة ملف -2When you configure a simple index file basis of one field, one simple index

file is created, and if we are indexing the data table based on another field,

another simple index file is created, therefore a set of index files are created

basis on a number of fields required, therefore we have to use the compound

index file that consist of a set of simple index files, and we can to access to

the desired file by using (TAG) name of this file. ذاو ،يتكون م ف رسصة بسصي وا د قل وا د أسصاسع ى ل رسصة البسصي م ا عند تكوين أردنا ا

لذلك سصصصو يتكون ،آخرسصصصو يتكون م ف رسصصصة بسصصصي آخر قل أسصصصاسف رسصصصة الجدول ع ى اكل لذلك من مشصص ،ع ى عدد ال قول الم و ف رسصصت امجموعة من م ات ال رسصصة البسصصي ة لدينا

ات لذلك نسصصصصصتخدم م ، ة البسصصصصصي ة وجود م ات كثيرة )كل م سصصصصص قل معين (م ات ال رسصصصصصالذي يأخذ وا د و جمع م ات ال رسصصة في م م رس مرك أسصص و ال رسصصة المركبة التي تعتمد

ن و داخل م ال رسة المرك عالم الم إلىالوصول أوويتم الاستدلال ،(cdx)الامتداد ل م الم و داخل ال رسة المركبة . (TAG)ي الرمز الاسم ريق

TAG

T2 TAG

T1

Rec No. Key Field

Avg

Rec No. Key Field Stud_Name

5 33 1 Ahmed

3 53 3 Ali

2 63 2 Noor 1 73 4 Rana

4 75 5 Salim

وحسب المعدل الاسمحسب ملف الفهرسة المركب يحتوي على اسمين رمزيين( 03الشكل ) Compound Index File Commands مركبةامر تكوين ملف الفهرسة الأو

: INDEX ONأمر -0 قل معين. أساسع ى تكوين م م رس مرك ل الأمريستخدم هذا

-الصيغة العامة للأمر :INDEX ON <key field> TAG <tag name> [ ASSENDING] |

[ DESSENDING] | [UNIQUE]

Page 28: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 27قواعد البيانات )العملي(

-حيث أن :key field ه.أساس: يمثل اسم ال قل الم و ال رسة ع ى tag name داخل م ال رسة المركبةم ال رسة ل الرمزي الاسم: يمثل.

ASSENDING يانات بشكل تصاعدي وهو الافتراضي: ترتي الب. DESSENDING ترتي البيانات بشكل تنازلي :.

UNIQUE عدم تكرار البيانات :.

: SET ORDERأمر -2

يتم التنقل لم ال رسة المرك و التنقل بين م ات ال رسة الداخ ية أول ت ويل الأمريستخدم هذا .الرمزي ل ارس الداخ ية الاسمباستخدام

-الصيغة العامة للأمر :SER ORDER TO <tag name>

-حيث أن :tag name ال رسة داخل م ال رسة المركبة.الرمزي لم الاسم: يمثل

Ex:

Create a compound index file based on name and average fields. USE Stud

INDEX ON Stud_name TAG t1

INDEX ON Avg TAG t2

Ex: Do indexing based on the name field SET ORDER TO t1

Ex:

Do indexing based on the average field SET ORDER TO t2

تلميحات

يكون أسم ملف الفهرسة المركبة بنفس أسم الجدول المراد

.(cdx)فهرسته ولكن بالامتداد

)عند فتح ملف الجدول فأن ملف الفهرسة المركب )في حالة وجوده

يفتح بشكل تلقائي دون الحاجة إلى استخدام أمر فتح ملف

.سة المركبةالفهر

تلميحات

مكن غلق ملف الفهرسة المركب أو إلغاء تفعيله عند استخدام الأمر بدون ي

. SET ORDER TOالاسم الرمزي

Page 29: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 28قواعد البيانات )العملي(

Searchالبحث Search is used to access certain information in the data table, and searching

process is depending on a particular condition that can be a simple or a

complex condition.

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

وهنالك نوعان من الب ث : : Sequential Searchالبحث التسلسلي -1

Sequential search is the simplest types of data search and be slow; because

it depends on matching the condition with all table records. The search

process depends on the matching of a first record in the table, if the record

is not found they go next, and so on to the end of the table. ع ى ي عم ية الب ثيعتمد ف لأنهوذلك ؛هو أبسصصصصصصص أنواع الب ث ويكون ب هذا النوع من الب ث ول في الجد الأولم ابقة القيد يتتم عم ية الب ث فإذ ،جميع قيود الجدولم ابقة الشصصصصصصصصصصصصصصر مع

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

: LOCATEأمر -0 .ل ب ث عن قيد معين الأمريستخدم هذا

-الصيغة العامة للأمر :LOCATE FOR < expr >

-حيث أن :expr شر القيد الم و الب ث عنه: يمثل.

Ex: Search for the student that name is Ahmed? USE Stud

LOCATE FOR (Stud_name="Ahmed")

DISPLAY

Ex: ? Search for the failed

student LOCATE FOR (Avg<50)

Page 30: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 29قواعد البيانات )العملي(

DISPLAY

: CONTINUEأمر -2ث عن قيد ب ل LOCATEامر ف ي الة تن يذ ،للاسصصصصتمرار في عم ية الب ث الأمريسصصصصتخدم هذا

يد كان هناك ق إذاولكن ،فأن المؤشصصصصصر سصصصصصو يق ع ى القيدتم العثور ع يه و معين سصصصصص شصصصصصر لكي تتم عم ية الاسصصصصصصصصصصصصصصتمرار في CONTINUE الأمرفلابد من كتابة ي قق ن س الشصصصصصصصصصصصصصصر آخر

.خرىالب ث والعثور ع ى القيود الأ -الصيغة العامة للأمر :

CONTINUE Ex:

Search for all students those names are Ahmed? USE Stud LOCATE FOR (Stud_name="Ahmed")

DISPLAY

CONTINUE

DISPLAY

CONTINUE

DISPLAY

: ( ) FOUNDالدالة -3رجع ن الدالة ت، إذ ألا أو و الب ث عنه موجود ن القيد المأوهي دالة من قية تستخدم ل تأكد من

عدم العثور في الة F الخ أ وترجع قيمة ،في الة العثور ع ى القيد الم و T الصصصصصصوا قيمة . LOCATEجم ة آخرع ى القيد الم و وتعمل هذ الدالة مع

تلميحات :

شرط يقف بعد أن يتم العثور على القيد المطلوب في حالة تحقق الوفي حالة عدم العثور على القيد ،المؤشتتتتر على القيد المطلوب

.إلى نهاية الجدول ينتقل المؤشر

تم العثور إذارقم القيد إلىتظهر في شريط الحالة رسالة تشير

ند عدم العثور على ع End of Locate Scopeعليه وتظهر رسالة

.القيد المطلوب

تلميحات :

يجب كتابة أمرCONTINUE بعدد القيود التي تطابق الشرط ويتم

عدم أو End of Locate Scopeرسالة إلىحين الوصول إلىالتوقف

DISPLAY أمراستعراض أي قيد باستخدام

Page 31: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 31قواعد البيانات )العملي(

( ) FOUND -الصيغة العامة للأمر :

Ex: Search for the student that named is Ahmed, and make sure is found?

USE Stud

LOCATE FOR (Stud_name="Ahmed")

? FOUND ( )

: Index Searchالبحث المفهرس -2

This type of search is faster than sequential search, and the table must be

indexed by a field required to search. The search process will be done in an

index file. ل رس سصصص ال قويج أن يكون الجدول م ، أسصصصرع في عم ية الب ثهذا النوع من الب ث يكون

م لال قل الم تا ي أسصصصصصصصصاسع ى داخل م ال رسصصصصصصصصة عم ية الب ث تتم و ، الم و الب ث فيه .ال رسة

Index Search Command المفهرس ر البحثمأ

: SEEKأمر .جدول الم رسفي ال ل ب ث عن قيد معين الأمريستخدم هذا

<SEEK <value -الصيغة العامة للأمر : -حيث أن :

value الم رسضمن ال قل الم تا ي ل م االم و الب ث عن القيمةمثل : ت . Ex: Search for the student that name is Ahmed? USE Stud

INDEX ON Stud_name TAG t1

SET ORDER TO t1

SEEK "Ahmed"

DISPLAY

Ex: Search for a student who has 80 degree?

USE Stud

INDEX ON Avg TAG t2

SET ORDER TO t2

Page 32: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 31قواعد البيانات )العملي(

SEEK 80

DISPLAY

Calculation Commandsامر الحساب أو

Calculation commands are used to the purpose of summation, average,

greater value, smaller value, or other calculations depending on one or more

field of the data table.

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

: SUMأمر -0 .ةمن ال قول الرقمي أكثر أول سا مجموع بيانات قل الأمريستخدم هذا

-الصيغة العامة للأمر :SUM <field list> [<Scope>] [FOR<expr>] [WHILE<expr>]

[<TO <memory var.>] -حيث أن :

field list:- المجموع ل ا إيجادال قول الم و أويمثل اسم ال قل. memory var.:- مثل متغير الذاكرة الذي يتم خزن ناتج الجمع فيهي.

Ex:

? Calculate the sum of degrees USE Stud

SUM Avg TO s1 ? "the sum of Avg is :" , s1

Ex: Calculate the sum of degrees for passed students? SUM Avg FOR (Avg>=50) TO s2 ? "the sum of Avg for pass student is :" , s2

Ex: Calculate the sum of degrees and ages of students? SUM Avg , Age TO s3 , s4 ? "the sum of Avg is :" , s3

? "the sum of Age is :" , s4

تلميحات :

أمرلا يمكن استخدام الشرط المركب مع SEEK

من الممكن استخدام دالةFOUND( ) مع البحث المفهرس .

Page 33: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 32قواعد البيانات )العملي(

: AVERAGEأمر -2

ة.من ال قول الرقمي أكثر أول سا معدل بيانات قل الأمريستخدم هذا -الصيغة العامة للأمر :

AVERAGE <field list> [<Scope>] [FOR<expr>] [WHILE<expr>]

[<TO <memory var.>]

Ex:

Calculate the average of degrees for students? USE Stud

AVERAGE Avg TO a1 ? "the average of Avg is :" , a1

Ex

Calculate the average of degrees for males and those in the second

stage? AVERAGE Avg FOR (Gender=.T.) AND (Stage="second") TO m2 ? "the average of Avg is :" , m2

Ex:

Calculate the average of ages from the third to the seventh record? GO 3

AVERAGE Age NEXT 5 TO m3 ? m3

: COUNTأمر -3 عدد القيود س شر معين. أول سا عدد القيود الك ي في الجدول الأمريستخدم هذا

-الصيغة العامة للأمر :COUNT [<Scope>] [FOR<expr>] [WHILE<expr>] [<TO <memory

var.>]

Ex: Calculate the number of table records?

USE Stud

COUNT TO c1

تلميحات :

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

سوف يطبعومتغير لان الناتج إلىالناتج إضافةم مكن عدي •

مباشرة على الشاشة .

Page 34: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 33قواعد البيانات )العملي(

? "the no. of records is :" , c1

Ex:

Calculate the number of females those in the first stage? COUNT FOR (Gender=.F.) AND (Stage="first") TO c2 ? c2

Ex: Calculate the number of record for students those average is greater

than 70 ? COUNT FOR (Avg>70) TO c3 ? c3

: CALCULATEأمر -4

باستخدام عدد من الدوال. سا ل الأمريستخدم هذا -الصيغة العامة للأمر :

CALCULATE <expr. list> [<Scope>] [FOR<expr>]

[WHILE<expr>]

[<TO <memory var.>] -حيث أن :

expr. list:- الدوال التالية : إ دىيمثل- 1- AVG (<field list>) : أكثر أووا د ل سا المعدل ل قل . 2- SUM (<field list>) : أكثر أول سا المجموع ل قل وا د . 3- CNT ( ) . ل سا عدد القيود: 4- MAX (<field list>) : ا اكبر قيمة ل قل ل سfield . 5- MIN (<field list>) : ل سا اصغر قيمة ل قلfield . 6- STD (<field list>) : المعياري ل قل را الانل ساfield .

8- VAR (<field list>) : ل سا التباين ل قلfield .

تلميحات

وهي دالة لحساب عدد قيود الجدول وهي تشابه عمل ( ) RECCOUNTدالة

ولكنها ترجع عدد القيود الكلي فقط بدون أي شرط . COUNT أمر

Page 35: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 34قواعد البيانات )العملي(

Ex:

Calculate the number of records by using CALCULATE command? USE Stud

CALCULATE CNT ( ) TO cc ? "the no. of records is :" , cc

Ex:

Calculate the average of degrees for males and those in the first stage? CALCULATE AVG (Avg1) for (Gender=.T.) AND (Stage="first") TO

ca ? ca

Ex:

Calculate the lower degree of students from the fourth to the last

record? GO 4

CALCULATE MIN (Avg) REST to cm ? cm

تلميحات

امر أوفيMAX وMIN أوقل المستخدم رقمي يكون الح أنمكن ي

حرفي.

Page 36: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 35قواعد البيانات )العملي(

VFPالبرمجة في لغة VFP system have a programming language of its own, and it includes a set

of commands such as variables declaration, condition, loops, in addition to

the possibility of writing functions and procedures. وتتضصصصصصصصصصصصصصصمن هذ ال غة ،با توائه ع ى لغة برمجية خاصصصصصصصصصصصصصصصة به VFPقواعد البيانات نظام تميز ي

.جراءاتوالإإمكانية كتابة الدوال إلى ضافةبالإ ، قات التكرار، امر الشر أو مجموعة من نافذة البرمجة : امرأو -1 : MODIFY COMMAND التكوين أمر -0

ذة تظ ر ناف الأمربعد تن يذ هذا ، Command Window الأوامرفي شاشة الأمريتم كتابة هذا م تا ي باسصصصصصصصصصصصصصصتخداممن كتابة البرنامج يتم الخروج من هذ النافذة الانت اءوبعد ،لكتابة البرنامج(Ctrl + W) الأوامرشاشة إلىالبرنامج والرجوع ظ ل.

-الصيغة العامة للأمر :MODIFY COMMAND <program name>

-حيث أن :Program name :- يمثل اسم البرنامج الم و عم ه.

: DOأمر التنفيذ -2من مباشصصصصرة تن يذ البرنامج أيضصصصصا ويمكن ، لغرض تن يذ البرنامج المكتو مسصصصصبقا الأمريسصصصصتخدم هذ

.(14)أنظر الشكل (Ctrl+E) م تا ي بالضغ ع ى أو شري الأدوات بالضغ ع ى زر

<DO <program name -الصيغة العامة للأمر :

-حيث أن :Program name :- . يمثل اسم البرنامج الم و تن يذ

Page 37: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 36قواعد البيانات )العملي(

نافذة البرمجة ( 04) شكلال

: Constant & Variables Declaration الثوابت والمتغيراتتعريف -2 الثوابت :تعريف – 0

: DEFINEأمر .لغرض تعري الثوابت الأمريستخدم هذا

-الصيغة العامة للأمر : DEFINE <constant name> = <value> #

-حيث أن :constant name :- الثابت المراد تعري هيمثل اسم.

value :- قيمة الثابت.يمثل Ex: # DEFINE pi=3.14

# DEFINE x="computer"

# DEFINE flag=.T. :تعريف المتغيرات – 2

:PUBLICأمر .لغرض تعري المتغيرات الأمرتخدم هذا يس

-الصيغة العامة للأمر :PUBLIC <var. name> [ , <var. name2> , ….]

-مثال :PUBLIC x1,x2

x1=10 x2=20

Page 38: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 37قواعد البيانات )العملي(

: Conditional statementsالشرطية مرالأوا -3 أمر الشرط البسيط : – 0

-الصيغة العامة للأمر :IF <Lexpr>

statement (s)

ENDIF

-حيث أن :Lexpr :- مثل الشر ي .

statement (s) :- ن ذ في الة ت قق الشر الجمل التي تت أوالجم ة.

-: الانسيابيالمخطط

IF( المخطط الانسيابي لإيعاز 05) الشكل

Ex:

Write a program to print the message "The Record is Found" if Ahmed's

record if found.

MODIFY COMMAND IfTest

USE Stud

LOCATE FOR (Stud_name="Ahmed")

IF (FOUND( ))

? " The Record is Found "

ENDIF

أمر الشرط المركب : – 2 -الصيغة العامة للأمر :

IF <Lexpr>

. statement (s)

ELSE

. statement (s)

ENDIF

-: الانسيابيالمخطط

شر

طStatement (s)

ENDIF

Page 39: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 38قواعد البيانات )العملي(

المركب IF( المخطط الانسيابي لإيعاز 06) الشكلEx:

Write a program to print the message "The Record is Found" if Ahmed

record's if found, and print the message "The Record is Not Found" if

it's not found.

MODIFY COMMAND IfTest2

USE Stud

LOCATE FOR (Stud_name="Ahmed")

IF (FOUND( ))

? " The Record is Found "

ELSE

? " The Record is Not Found"

ENDIF

:Loop Commandsامر الدوران أو :شرطيةال امر الدورانأو – 0A - أمر DO WHILE :

ق قف الما الشصصصصصصصصر مت ،اعتمادا ع ى شصصصصصصصصر معين أكثر أولتكرار تمثيل جم ة الأمريسصصصصصصصصتخدم هذا . DO الأمريستمر تن يذ

-الصيغة العامة للأمر :DO WHILE <condition>

statement (s)

[EXIT]

ENDDO

-الانسيابي:المخطط

شر

ط

Statement1 Statement2

ENDIF

شر

طStatement (s) ENDDO

Page 40: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 39قواعد البيانات )العملي(

DO WHILE( المخطط الانسيابي لإيعاز 07) الشكل

Ex:

Write a program to display the student's name, stage, and average by

using DO WHILE loop.

MODIFY COMMAND DoTest

USE Stud

DO WHILE (!EOF())

DISPLAY Stud_name , Stage , Avg

SKIP

ENDDO

Ex:

Write a program to calculate the number of passed and the number of

failed students.

MODIFY COMMAND DoTest2

PUBLIC p,f

p=0

f=0

USE Stud

DO WHILE (!EOF())

IF (Avg>50)

p=p+1

ELSE

f=f+1

ENDIF

SKIP

تلميحات هناك دوال مهمة تستخدم عادة مع عبارةDO WHILE :

دالةEOF ( ) وهي مختصر لت :End Of File وهي ،دالة نهاية الملف

وتكون ،نهاية الملف إلىلتأكد من الوصتتول دالة منطقية تستتتخدم لفي الحالات Fعندما يكون المؤشتتتتر في نهاية الجدول و Tقيمتها

. خرىالأ دالةBOF ( ) وهي مختصتتر لتتتتتت :Begin Of File اية الملفدالة بد،

،ية الملفتستتتخدم للتأكد من الوصتتول إلى بدا وهي دالة منطقيةية الجدول و في بدعندما يكون المؤشتتتتر Tوتكون قيمتها في Fا

. خرىالحالات الأ

Page 41: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 41قواعد البيانات )العملي(

ENDDO

? " the no. of pass is :", p

? " the no. of fail is :", f

B - أمر SCAN: ل ويتم نق ،ية الدوران الشصصصصصصصصر ية بالاعتماد ع ى شصصصصصصصصر معين عم إجراءلغرض الأمر يسصصصصصصصصتخدم هذا

.SKIP الأمربدون استخدام القيد التالي في الجدول ذاتيا إلىالمؤشر

-الصيغة العامة للأمر :SCAN [<Scope>] [FOR<expr>] [WHILE<expr>]

statement (s)

ENDSCAN

Ex:

Write a program to calculate the number of passed and the number of

failed, for students those in first stage only by using SCAN command.

MODIFY COMMAND ScanTest1

PUBLIC p,f

p=0

f=0

USE Stud

SCAN FOR (Stage="first")

IF (Avg>50)

p=p+1

ELSE

f=f+1

ENDIF

ENDSCAN

? " the no. of pass is :", p

? " the no. of fail is :", f

Ex:

Write a program to display the student's name, average, and stage for

the last five records by using SCAN command.

MODIFY COMMAND ScanTest2

USE Stud

GO BOTTOM

SKIP -4

SCAN REST

DISPLAY Stud_name , Avg , Stage

Page 42: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 41قواعد البيانات )العملي(

ENDSCAN

:شرطيةالغير امر الدوران أو – 2 : FOR أمر

ع ى القيمة الابتدائية عتمادا الشصصصصصصصصصصصصصصر ية إ غير عم يات الدوران إجراءلغرض الأمريسصصصصصصصصصصصصصصتخدم هذا .FORوالن ائية لمتغير جم ة

-الصيغة العامة للأمر :FOR <var> = <start value> TO <end value>

[step <value>]

statement (s)

ENDFOR

-:حيث أنvar :- متغير .

start value :- . القيمة الابتدائية ل متغير end value :- . القيمة الن ائية ل متغير step value :- . مقدار الزيادة ل متغير

Ex:

Write a program to calculate the number of males and the number of

females by using FOR command.

MODIFY COMMAND ForTest1

PUBLIC m,f

m=0

f=0

USE Stud

FOR i=0 to RECCOUNT( )

IF (Gender = .T.)

m=m+1

تلميحات

، RECCOUNT) ( دالة وهي FOR عبارة مع عادة تستخدم مهمة دالة كلهنا •

.القيود عدد لإرجاع هي الدالة هذه وظيفة

ك أيضا دالة لوهناRECNO( ) لمعرفة رقم القيد الحالي.

Page 43: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 42قواعد البيانات )العملي(

ELSE

f=f+1

ENDIF

SKIP

ENDFOR

? " the no. of male is :" , m

? " the no. of female is :" , f

Ex:

Write a program to calculate the number of students those average is

greater than 70, by using FOR command.

MODIFY COMMAND ForTest2

PUBLIC s

s=0

USE Stud

FOR i=0 to RECCOUNT( )

IF (Avg>70)

s=s+1

ENDIF

SKIP

ENDFOR

? s

Page 44: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 43قواعد البيانات )العملي(

: Procedures and Functions الإجراءات والوظائف : Procedureالإجراءات -0

The essential part of structure programming is divided the program up

into smaller procedure or modules, this make the program easier to

develop, maintain& debug.

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

: Procedures Fileملف الإجراءات Contain modules of program codes that stay in memory for the duration of

your program.

ي توي م الإجراءات ع ى رموز برمجية ل و دات والتي تبقى في الذاكرة خلال تن يذ البرنامج.. يمكن Main-programداخل البرنامج الرئيسي Sub-programوالإجراء هو برنامج فرعي

ج أن يخت اسم كل إجراء عن الآخر.ل برنامج أن ي توي ع ى أكثر من إجراء، ولكن ي الصيغة العامة للإجراء:

PROCEDURE <Procedure Name>

[ LPARAMETERS parameter1 [ ,parameter2] , … ]

Commands

[ RETURN [ eExpression ] ]

DO (procedure name) WITH ( parameter list )

حيث أن:Procedure Name :ءاسم اختياري ل ذا الإجرا يمثل.

Page 45: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 44قواعد البيانات )العملي(

Parameters : لإرسال بيانات من البرنامج الذي يستدعي الإجراء إلى المتغيرات الم ية الموجودة داخل الإجراء.

Return : .جم ة ت توي ع ى ما يسترجعه هذا الإجراء من بيانات Do: .يستخدم لتن يذ الإجراء مع إرسال قيم المع مات للإجراء

Ex:

Write a procedure to add two numbers?

PROCEDURE procAdd

parameters n1,n2

r=0

r=n1+n2

RETURN r

عند الاستدعاء :Do procAdd WITH 10, 20

Ex:

Write a procedure to calculate the average of four numbers?

PROCEDURE procAvg

parameters n1,n2, n3, n4

r=0

r=(n1+n2+n3+n4)/4

RETURN r

عند الاستدعاء :Do procAvg WITH 70, 40, 80, 30

:Functionsالوظائف -2 Main- programيوجد في داخل البرنامج الرئيسي Sub-program الوظي ة هي برنامج فرعي

وظي ت ا تشابه وظي ة الأجراء مع بعض الاختلافات التي سو نذكرها لا قا . :للوظيفة الصيغة العامة

FUNCTION <FunctionName >

[ LPARAMETERS parameter1 [ ,parameter2 ] , …]

Commands

[ RETURN [ eExpression ]

Ex:

Write a function to add two numbers?

FUNCTION funcAdd

parameters n1,n2

r=0

r=n1+n2

Page 46: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 45قواعد البيانات )العملي(

RETURN r

عند الاستدعاء :s= funcAdd (10,20(

?s

Ex:

Write a function to calculate the maximum value between two

numbers?

FUNCTION funcMax

parameters n1,n2

If (n1 > n2)

RETURN n1

ELSE

RETURN n2

عند الاستدعاء :s= funcMax (10,20(

?s

Write a function to print a message "Hello World"

FUNCTION funcMsg

? "Hello World"

عند الاستدعاء :funcMsg( )

Procedures Vs. Functionsالإجراءات و الوظائف الفرق بين

Syntactically there is no difference between FUNCTION and ROCEDURE

statements in VFP. In other languages, that have both statements, a function

can return a value and a procedure cannot. In VFP the difference comes in

the way a procedure/function is called. By default VFP passes parameters

by value in call to the functions, by reference to the procedures.

:تلميحات جملة الرجوع يمكن عدم كتابةReturn ،القيمة التي وأن مع الوظيفة

ويتم استدعاء الوظيفة مباشرة بكتابة ةمنطقيتكون تم إرجاعها سي ( ) Avمثل الاسم والقوسين بعدهم.

د ، وعنوعدم كتابة المعلمات لوظيفةليمكن عدم إرسال قيم بيانية ( )Avg = Avمثل سوف تترك الأقواس فارغة. الاستدعاء

Page 47: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 46قواعد البيانات )العملي(

في ، ولكنVFPوالوظائ في فرق بين الإجراءات ليس هناكمن خلال بناء الجم ة نلا ظ أنه يمكن ولا Returnمن خلال وظي ة إرجاع قيمة ل يمكن ع ى هذ الجمل التي ت توي خرىالأ غات الأو جراء التي يتم استدعاء الإ ةال ريق من خلالال رق يكون VFP عمل ذلك. ولكن في جراءللإالوظائ ، عند الاستدعاء في By Valueيث القيمة من المع مات تمرر بشكل افتراضيفلوظي ة. ا

مع استخدام عند الاستدعاء في الإجراءات By Referenceوتمرر المع مات من يث المصدر .عند استدعاء الإجراء Doك مة

Replace Commandأمر الإحلال : REPLACEأمر

من قول الجدول. أكثر أو قل إلىقيمة إدخال أولغرض إ لال الأمريستخدم هذ -الصيغة العامة للأمر :

REPLACE [<Scope>] <field1> WITH <expr1> [, <field2> WITH

<expr2>,….] [FOR<expr>] [WHILE<expr>]

-حيث أن : field:- إليهالقيمة إضافةيمثل اسم ال قل الم و. expr1:- معادلةن عبارة عتكون أنمكن يفي ال قل و إ لال االقيمة المراد.

Ex:

Add two degrees to the failed students?

USE Stud

REPLACE Avg WITH (Avg+2) FOR (Avg<50)

Ex:

Add blank record to the end of table, and insert new data to it by using

REPLACE command?

:تلميحات

اإذامر المدى أوولذلك نستخدم ،الإحلال على القيد الحالي فقط أمرينفذ

من قيد . أكثرعلى الأمررغبنا بتنفيذ

Page 48: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 47قواعد البيانات )العملي(

APPEND BLANK

REPLACE Stud_no WITH 8 , Stud_name WITH "Reem" , Stage WITH

"second" , Address WITH "Mosul" , Avg WITH 55 , Gender WITH .F. ,

Age WITH 22 , Birth WITH {^1987/5/5}

Ex:

Update the address field with "Mosul" for Ali's record?

REPLACE Address WITH ("Mosul") FOR (Stud_name="Ali")

String Functionsالدوال النصية :( ) LEFT دالة -9

.ة اليسارمن ج أ ر تستخدم هذ الدالة لاستق اع مجموعة -الصيغة العامة للدالة :

LEFT (string , count) -حيث أن :

string:- ( رفيمن النوع اليكون قل أنمكن ييمثل الن الم و استق اع ال ر منه ). Count :- عدد الأ ر الم و استق اع ا.

Ex:

x="computer" ? LEFT (x,4) comp

OR ? LEFT ("computer",4) comp

Ex:

Write a program to print the first character from all students' names?

MODIFY COMMAND LeftTest

USE Stud

FOR i=0 to RECCOUNT( )

? LEFT(Stud_name,1)

SKIP

ENDFOR

Page 49: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 48قواعد البيانات )العملي(

: ( ) RIGHT دالة -0 .من ج ة اليمين أ ر تستخدم هذ الدالة لاستق اع مجموعة

RIGHT (string , count) -الصيغة العامة للدالة : Ex: x="computer"

? RIGHT (x,4) uter

OR

? RIGHT ("computer",4) uter

:( ) SUBSTR دالة -3

من موقع يتم ت ديد . اع عدة أ ر من ن معين ابتداء تستخدم هذ الدالة لاستق -:حيث أن

start:- تمثل موقع بداية الق ع. SUBSTR (string , start , count) -الصيغة العامة للدالة :

Ex:

x="computer"

? SUBSTR (x,3,3) mpu

Ex:

Print the second and third character from student name that in the

seventh record?

USE Stud

GO 7

? SUBSTR (Stud_name,2,2)

: ( ) LEN دالة -4 تستخدم هذ الدالة ل سا ول الن .

LEN (string)-الصيغة العامة للدالة :Ex: x="computer"

? LEN (x) 8

OR

L= LEN (x)

? L 8

Page 50: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 49قواعد البيانات )العملي(

: ( ) UPPER دالة -5 .أ ر كبيرة إلىالصغيرة الإنك يزيةتستخدم لت ويل الأ ر UPPER (<expr>) -الصيغة العامة للدالة :

Ex:

x="computer"

? UPPER (x) COMPUTER

: ( ) LOWER دالة -5 .أ ر صغيرة إلىالكبيرة الإنك يزيةتستخدم لت ويل الأ ر LOWER (<expr>) -الصيغة العامة للدالة :

Ex:

x="Computer"

? UPPER (x) computer

Viewملف العرض View file is a file contains a specific data from a table, many tables or

another view file, it is considered as a window overlooking to the specific

data from a table by a particular query, and differs from the data table as it

logical file whereas a data table is physical.

آخرمن م عرض أوعدة جداول أوعرض بيانات م ددة من جدول ستم العرض هو م يف و يعتبر نصافصذة ت صل ع ى بيصانصات م صددة من جصدول سصصصصصصصصصصصصصصص ، أخرىعصدة م صات عرض من أو

دول ن م الج، إذ أويخت عن م الجدول بأنه من قي وم الجدول فيزيائي ،اسصصصصتعلام معين ت من الجدول الأصصصص ي ت ت شصصصر ى البيانات الأصصصص ية وم العرض ي توي ع ى بياناي توي ع

.معين Steps to Create New Viewخطوات تكوين ملف العرض

:القائمة الرئيسية أختر أوامر باستخدام Viewلتكوين م عرض File New View New file

Page 51: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 51قواعد البيانات )العملي(

تكوين ملف عرض جديد( 02) الشكل

أو ت البك باختيار جداولم جديد تظ ر نافذة التصصصصصصصصصصصصصصصميم وبجانب ا نافذة صصصصصصصصصصصصصصصغيرة اختياربعد

ت توي ع ى Dbلدينا قاعدة البيانات وفي مثالنا ،من قاعدة البيانات الم ددةم ات عرض أخرى -:(27))أنظر الشكل Addاختر الجدولين ثم أضغ ع ى زر ، Locationو Studجدولين

نافذة منبثقة تطالب بإدخال الجداول أو ملفات العرض الأخرى( 27الشكل )

)أنظر Viewنافذة تصصصصصصصصصصميم م العرض إلىم هذ الجداول يار الجدولين سصصصصصصصصصو تضصصصصصصصصصتبعد اخ -: (28 الشكل

تلميحات

مسبقا بيانات قاعدة لديك يكون أن يجب عرض ملف لتكوين

Page 52: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 51قواعد البيانات )العملي(

Viewنافذة تصميم ملف العرض ( 28الشكل )

-كالأتي:تصميم الاستعلام وهي ت توي نافذة التصميم ع ى عدة اختيارات لعم ية

0- Fields :- ت ديد ال قول المراد عرض ا في م العرض.يستخدم هذا الاختيار لغرض -مثال :

يتم اختيار ال قول الم ددة ثم الضصصصصصغ ع ى زر ، لعرض اسصصصصصم ال ال والمعدل فق ولجميع القيودAdd ,بالضصصصصصصصصصصصصصصغ ع ى أو ذالعم ية واسصصصصصصصصصصصصصصتعراض الناتج نضصصصصصصصصصصصصصصغ ع ى زر التن ي ولتن يذ

(Ctrl+E) (29, )أنظر الشكل:-

مضهاعر استاختيار حقلين و ( 29الشكل ) ذا الاسصصصصصصصصصصصصصصتعلام عن ريق لنتيجة ت قائيا التي تكونت SQLومن الممكن اسصصصصصصصصصصصصصصتعراض أوامر لغة

ليظ ر الناتج : View SQLواختيار الأيمنالضغ بزر الماوس

ال قول التي سو تعرض

Page 53: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 52قواعد البيانات )العملي(

SELECT Stud.stud_name, Stud.avg;

FROM ;

db!location ;

INNER JOIN db!stud ;

ON Location.loc_no = Stud.loc_no

2- Order By :- و سصص أم تنازليا سصصواء تصصصاعديا الناتج يسصصتخدم هذا الاختيار لغرض ترتي . أكثر أو قل وا د -مثال :

-(:33 الشكل )أنظر تصاعديا الاسملترتي ناتج الاستعلام السابق س

ترتيب ناتج العرض( 31الشكل )

-ل ذ العم ية : SQLأوامر SELECT Stud.stud_name, Stud.avg;

FROM ;

db!location ;

INNER JOIN db!stud ;

ON Location.loc_no = Stud.loc_no;

ORDER BY Stud.stud_name

3- Filter :- ض تص ية الناتج باستخدام شر أو أكثر .يستخدم هذا الاختيار لغر -مثال :

-: (31)أنظر الشكل عرض ق ي اسم ال ال والمعدل ول ناج ين فق ل

س الاسمترتي

تصاعديا

Page 54: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 53قواعد البيانات )العملي(

استخدام الشرط ( 30الشكل )

-ل ذ العم ية : SQLأوامر SELECT Stud.stud_name, Stud.avg;

FROM ;

db!location ;

INNER JOIN db!stud ;

ON Location.loc_no = Stud.loc_no;

WHERE Stud.avg > 50;

ORDER BY Stud.stud_name

-: مثال

-: (32)أنظر الشكل ول مر ة الأولى ل ناج ين والمعدل ال ال اسم ق ي لعرض

Valueالقيمة

العلامة المن قية Fieldال قل

Page 55: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 54قواعد البيانات )العملي(

استخدام الشرط المركب( 32الشكل )

-ل ذ العم ية : SQLأوامر SELECT Stud.stud_name, Stud.avg;

FROM ;

db!location ;

INNER JOIN db!stud ;

ON Location.loc_no = Stud.loc_no;

WHERE Stud.avg > 50;

AND Stud.stage = "second";

ORDER BY Stud.stud_name

4- Group By :- يستخدم هذا الاختيار لعم ية تجميع البيانات س قل معين.

-مثال : -:باستخدام عم ية التجميع الإناثعدد الذكور وعدد عرض ل

ال ال .جنس Genderيتم اختيار قل -1وهصصصصو Expression Builderيصصصصتصصصصم تصصصصكصصصصويصصصصن صصصصقصصصصصصصل ثصصصصصصصانصصصصي مصصصصن مصصصصنشصصصصصصصصصصصصصصصصص الصصصصتصصصصعصصصصبصصصصيصصصصر -2

COUNT(Stud.gender) . أسصصاسأي يتم تجميع البيانات ع ى By Groupضصصمن الاختيار Genderيتم اختيار ال قل -3

عم ية التكرار . لغاءلإلجنس قل ا

رب شر ين

الشر الأول

الشر الثاني

Page 56: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 55قواعد البيانات )العملي(

تجميع على أساس حقل الجنس ( 33الشكل )

-ل ذ العم ية : SQLأوامر SELECT COUNT(Stud.gender), Stud.gender;

FROM ;

db!location ;

FULL JOIN db!stud ;

ON Location.loc_no = Stud.loc_no;

GROUP BY Stud.gender

تلميحاتهو برنامج يساعدك على تكوين Expression Builderمنشئ التعبير

وتضاف المعادلة كحقل جديد الى سهلةالمعادلات والدوال الجاهزة بصورة

.الجدول ولكنه حقل وهمي يعرض النتائج فقط

تجميع ع ى أساس هذا ال قل

Fieldال قل

Page 57: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 56قواعد البيانات )العملي(

( منشئ التعبير34الشكل )

5Join - :- ب لغرض الاستعلام .يستخدم هذا الاختيار ل ر

ربط الجداول لغرض الاستعلام( 35الشكل )

جدول اليسار جدول اليمين

نوع العلاقة

جدول الثانيم تاح ال م تاح الجدول الاول

دوال سابية

دوال التاريخ

دوال نصية

علامة من قية

التعبير المنشأ

متغيرات

ف التعبير

قول الجدول

Page 58: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 57قواعد البيانات )العملي(

الاستعلام:لربط لغرض ا أنواع1- Inner Join :- جميع قيود الجدولين التي ت قق الشر . يعرض

Inner Joinجدول يعرض اسم الطالب والموقع التدريبي باستخدام ( 36الشكل )

-ل ذ العم ية : SQLأوامر SELECT Stud.stud_name, Location.loc_name;

FROM ;

db!location ;

INNER JOIN db!stud ;

ON Location.loc_no = Stud.loc_no

2- Left Join :- يع ي جميع سصصصصصصجلات الجدول الأول ومع ما ين بق ع يه الشصصصصصصر في الجدول الثاني.

Left Joinريبي باستخدام جدول يعرض اسم الطالب والموقع التد( 37الشكل )

-ل ذ العم ية : SQLأوامر SELECT Stud.stud_name, Location.loc_name;

FROM ;

db!location ;

LEFT OUTER JOIN db!stud ;

ON Location.loc_no = Stud.loc_no

3- Right Join :- ر في يع ي جميع سجلات الجدول الثاني ومع ما ين بق ع يه الش الجدول الأول.

Page 59: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 58قواعد البيانات )العملي(

Right Joinجدول يعرض اسم الطالب والموقع التدريبي باستخدام ( 38الشكل )

-ل ذ العم ية : SQLأوامر SELECT Stud.stud_name, Location.loc_name;

FROM ;

db!location ;

Right OUTER JOIN db!stud ;

ON Location.loc_no = Stud.loc_no

4- Full Join :- . يع ي جميع سجلات الجدولين سواء ين بق الشر أو لا

Full Joinجدول يعرض اسم الطالب والموقع التدريبي باستخدام ( 39الشكل )

-ل ذ العم ية : SQLأوامر SELECT Stud.stud_name, Location.loc_name;

FROM ;

db!location ;

FULL JOIN db!stud ;

ON Location.loc_no = Stud.loc_no

Page 60: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 59قواعد البيانات )العملي(

Formsالنماذج Forms are the user interfaces that are mostly used to be the front of the table.

.النماذج هي واج ات ل مستخدم تستخدم في الغال لكي تكون واج ة ل جدول Steps to Create Formsالنماذج خطوات تكوين

-:أختر Studجديد ل جدول Form لتكوين نموذجFile New Form Wizard

تكوين ملف نموذج جديد( 22) الشكل

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

OKثم الأولقم باختيار الخيار : عمل نموذج لجدول واحدطريقة -1

النموذجاختيار نمط ( 29) الشكل

تظ ر نافذة ت البك باختيار جدول أو م عرض وال قول المتا ة ،جدول وا دنم بعد اختيار .Nextثم جميع ال قول أض ثم Stud قم باختيار الجدول

Page 61: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 61قواعد البيانات )العملي(

اختيار الجدول والحقول التي ستظهر في النموذج( 20) الشكل

اختيار شكل النموذج( 22) الشكل

الجداول

قول الجدول

ال قول التي ستظ ر في النموذج

نوع الأزرار

شكل النموذج

Page 62: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 61قواعد البيانات )العملي(

ترتيب العرض على أساس حقل معين( 22) شكلال

تصميم النموذج نافذة اكتمال( 22) الشكل

يمكن وأيضصصصصصصالاسصصصصصصتعراض النموذج Previewمكن اختبار تصصصصصصصميم النموذج بالضصصصصصصغ ع ى زر ي -: (64)أنظر الشكل Return to Wizardالرجوع لتغيير التصميم عن ريق الزر

الترتي ع ى أساس هذا ال قل

اختبار التصميم

Page 63: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 62قواعد البيانات )العملي(

Studالنموذج ( 22) الشكل

لاختيصار نموذج ي توي ع ى جصدولين بين مصا علاقصة يتم اختيصار طريقة عمل نموذج لجدولين: -2جدولين وبعدها يتم اختيار One-to-Many Form Wizard نافذة وهو أولالاختيار الثاني من

-:(47)أنظر الشكل شر العلاقة نافذة من وا د ليتم ظ ور بدلا

لجدولينشرط العلاقة بين ا( 24) الشكل

و بإتباع الخ وات السابقة ن صل ع ى النموذج التالي :

الم تاح الثانوي الم تاح الرئيسي

Page 64: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 63قواعد البيانات )العملي(

نموذج لجدولين بينهما علاقة( 24) الشكل

الموجود في شري الادوات زر وبالامكان التعديل ع ى تصميم النموذج بالضغ ع ى : (64لتظ ر نافذة التصميم )أنظر الشكل

تعديل النموذج( 21) الشكل

الخصائ

أدوات التصميم

Page 65: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 64قواعد البيانات )العملي(

Reportsالتقارير

Reports are pages that displays the data in a suitable manner for print. .ص ات تعرض البيانات بصورة مناسبة ل باعةهي التقارير

Steps to Create New Reportsخطوات تكوين التقارير

-:أختر Studجديد ل جدول Reportلتكوين تقرير File New Report Wizard

جديدملف تقرير تكوين ( 22) الشكل

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

.OKثم لجدول وا دقم باختيار الخيار :طريقة عمل تقرير لجدول واحد -1

عمل تقرير لجدول( 29) الشكل

تا ة جميع ال ق Studاختيار الجدول .Nextثم ول ل عرضوا

Page 66: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 65قواعد البيانات )العملي(

تحديد الجدول والحقول( 20) الشكل

ومن ثم يتم اختيصصصار ى،الأول الخصصصانصصصةتجميع البيصصصانصصصات ع ى أسصصصصصصصصصصصصصصصصاس قصصصل يتم اختيصصصار في يمكن Grouping options اتركه فارغا ثم ،د العم يةي دلتNext.

Groupingالتجميع ( 22) الشكل

.Nextثم الأنما اختر ا د يرالتقر نم وفي الشاشة التالية يتم ت ديد

تجميع ع ى أساسهال قل الذي يتم ال

Page 67: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 66قواعد البيانات )العملي(

التقرير تحديد نمط( 22) الشكل

.Nextوفي الشاشة التالية يتم ت ديد شكل التقرير اختر ا د الأشكال ثم

تحديد شكل التقرير( 22) الشكل

.Next مث الاسماختر قل ،وفي الشاشة التالية يتم ترتي بيانات التقرير س قل معين

الاتجا

أعمدة أو ص و

Page 68: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 67قواعد البيانات )العملي(

رتيب بيانات التقريرت( 22) الشكل

تصميم التقرير اكتمالنافذة نهاية ( 24) الشكل عم ية التصميم. إلىالرجوع وأيضا Previewمكن ف التقرير بالضغ ع ى زر ي

Page 69: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 68قواعد البيانات )العملي(

Studتقرير للجدول ( 24) الشكل

.OKثم ين لجدولقم باختيار الخيار :مرتبطين بعلاقة ينطريقة عمل تقرير لجدول -2

اختيار تقرير لجدولين مرتبطة بعلاقة (21) الشكل

Page 70: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 69قواعد البيانات )العملي(

التي ستظهر في التقرير التابعة لهما والحقول اختيار الجدولين( 22) الشكل

شرط العلاقة( 29) الشكل

رير كما في وا د يتكون التقوبعد اكتمال الخ وات الباقية والتي تكون مشصصاب ة لتقرير متكون لجدول -:الشكل

Page 71: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 71قواعد البيانات )العملي(

ر لجدولين مرتبطين تقري( 20) الشكل

Page 72: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 71قواعد البيانات )العملي(

Projectالمشروع The project file is a file that contains all VFP files, it can be useful to

simplify the work in the organization of multiple files, that is, tables, forms,

and reports .. Etc., as well as to build the application, which needs all of

these files. العمل انه يس لوفائدته ، VFP بنظامم ي توي ع ى جميع الم ات الخاصة المشروع هوم

والذي بيق في بناء الت وأيضصصصصصصا ،الخ ..الجداول والنماذج والتقارير :الم ات المتعددة مثلا في تنظيم .جميع هذ الم ات إلىي تاج

Steps to Create New Projectات تكوين المشروع خطو

-:أخترجديد Project مشروعلتكوين File New Project Wizard

تكوين مشروع جديد( 22) الشكل

تحديد اسم المشروع وموقعه( 22) الشكل

Page 73: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 72قواعد البيانات )العملي(

نافذة تصميم المشروع( 22) الشكل

معلومات مصمم المشروع( 22) الشكل

إدراج جداول أو قاعدة بيانات مكونة مسبقاً أو أنشاء جداول او قاعدة بيانات جديدة( 24) الشكل

أيقونة البرنامج

اسم المشروع

صورة المشروع

إنشاء جديد

اختيار م جديد

Page 74: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 73قواعد البيانات )العملي(

إضافة نماذج إلى المشروع ( 24) الشكل

تقارير إلى المشروعإضافة ( 21) الشكل

لتصميم المشروع إضافيةخيارات ( 42) الشكل

م المساعدة

إضافة شري الأدوات

Page 75: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 74قواعد البيانات )العملي(

ظ ر نافذة إدارة المشصصصصروع والتي من خلال ا ت OKبعد اختيار الاعدادات الأولية والضصصصصغ ع ى زر داخل المشصصصصروع ويمكن الإضصصصصافة وال ذ من ا وأيضصصصصا يمكن كن الت كم بجميع الم ات الموجودة يم

-( :11)أنظر الشكل Buildبناء الت بيق عن ريق زر

نافذة إدارة المشروع( 49) الشكل

جميع الم ات

برامج مكتبات النماذج والتقارير والقوائم م ات البيانات

بناء الت بيق

Page 76: Visual foxpro (VFP)

إعداد: أ. ماهر طلال الأسعدي Visual FoxPro 75قواعد البيانات )العملي(

Building Applicationبناء التطبيق

ضافةو م المشروع إلىجميع الم ات الم وبة إضافةلبناء الت بيق يتم ثم الضغ ,الإعدادات ا -( :72)أنظر الشكل لتظ ر نافذة بناء الت بيق Buildع ى زر

نافذة بناء التطبيق( 40) الشكل

تح هصذا الت بيق من مكن ف، وييتم بنصاء الت بيقل OKضصصصصصصصصصصصصصصغ ع ى زر أبعصد اختيصار نوع الت بيق .تم تكوينهالمسار الذي تلميحات

ال , فعلى سبيل المثداية تشغيل التطبيقب فيمكن تحديد الملف الذي سوف ينفذ ي -( :73هو الذي يعمل أولا )أنظر الشكل Studسوف نجعل النموذج

لكي يعمل أولاً Studاختيار النموذج ( 73الشكل )

إعادة بناء الت بيق

appم ت بيق من نوع

exeم ت بيق من نوع