- שנה: 2000
- מחבר: Rick Dobson
- מו"ל: הוד-עמי
- פורמט: ספר
- נמסר ע"י: הוצאת הוד-עמי
- תגיות: MS-Access
OCR (הסבר)
המדריך השלם
6660555 0
/
5 ז501סזשו!/!ו
יש להתעלם מכל מה שנכתב על התקליטור
את קוד המקור ניתן להוריד מאתר הוד-עמי
בתיקיה "קבצי תרגול לספרים"
עורך ראשי ומקצועי: יצחק עמיהוד
תרגוס: במילים אחרות תיעוד בע''מ
עריכה לשונית ועיצוב: ענת קדם צבי, שרה עמיהוד
עריכה מקצועית : ארז ירון
איל גוטליב, מנהל מרכו התמיכה של מיקרוסופט ישראל
אינדקס: זהר עמיהוד
עיצוב עטיפה: סטודיו מצגר
שמות מסחריים
שמות המוצריס והשירותיס המוזכריס בספר הינס שמות מסחריים רשומיס של החברות שלהסם. הוצאת
5 11070500)6%] והוצאת הוד-עמי עשו כמיטב יכולתן למסור מידע אודות השמות המסתריים
המוזכרים בספר זה ולציין את שמות החברות, המוצרים והשירותים. שמות מסחריים רשומים
(%7806708785 7691556760) המוזכריס בספר צוינו בהתאמה.
5וססחו/ ו-066106 הינס מוצריס רשומיס של חברת 167050%].
הודעה
ספר זה מיועד לתת מידע אודות מוצריס שונים. נעשו מאמציס רביס לגרוס לכך שהספר יהיה
שלס ואמין ככל שניתן, אך אין משתמעת מכך כל אחריות שהיא.
המידע ניתן יכמות שהוא' ("5ו 85"). הוצאת 655ז 670506 והוצאת הוד-עמי אינן אחראיות
כלפי יחיד או ארגון עבור כל אובדן או נזק אשר ייגרס, אס ייגרס, מהמידע שבספר זה, או
מהתקליטור המצורף לו.
לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד. ספר זה מיועד לגברים ונשים
כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים/ות.
ב) טלפון: 09-9564716
ב) פקס: 09-9571582
[) דואר אלקטרוני: |ו.60.וחב06000-3+חו
ב אתר באינטרנט: |60.1. ווח ב -100].שעש
המדריך השלם
0 66655
ה
ריק דובסון
60ח6ו658ס
וו
הוצאת הוד-עמי " זא פוססחו
לספרי מחשבים | 7555/ ]4/07/0508 | 000608
0 66655/ +60501ו1] הווהוחבּיוטסיוק
הס5סכ א6ו₪ ץ
5 )111670504 עכ 60ח8!ו|סוק
הווחה .1 :זס0=
הסוס זסכןזס6 050%ה6ווי] עס 1999 .6 %ח8הץקס6
.ח0050כ א6ו₪ עט 1999 %ח8הץק60 הסחו60 1300806 הפוופַחם |החופוזס
,5 1167050 ,זסח5ו|סטק |החוףוזס 6ח+ חטוצו +ה6וח6שחהזוהּ עס הסתפוופטק סח ווה
,ח0ל0חוח35/ , הסור ₪60 ,הסטהזסקזס6 50%סזסו 01 חסופוצום בּ
ץם 60ח8ו!ס טכ הס0ו60 00806ח3! עוסזסס
0 66 %ח8הץ600 .10 ווחהה-0סז
)0(
כל הזכויות שמורות
הוצאת הוד-עמי
לספרי מחשבים בע'ימ
ת.ד. 6108 הרצליה 46160
טלפון: 09-9564716 פקס: 09-9571582
|ו.סס6.וַהְהִבּ-00 06+חו
אין להעתיק או לשדר בכל אמצעי שהוא ספר זה או קטעים ממנו בשום צורה ובשום אמצעי
אלקטרוני או מכני, לרבות צילום והקלטה, אמצעי אחסון והפצת מידע, ללא אישור בכתב
מאת ההוצאה, אלא לשם ציטוט קטעים קצרים בציון שם המקור.
הודפס בישראל 2000
(כולל התאמה לעברית)
0/ 5סחטו ווה
.יש! זוזה-ססוז
8ן|2ז6 ,6108 .0.8.ק
0 ,15851
מסת'יב 965-361-206-9 158%
תוכן עניינים מקוצר
פרק 1: היכרות עם 23 :בי בכ:52::ובב 2
פרק 2: מודלי גישה לנתונ'ים........:5555999999999099990י5.55555. 85
פרק 3: עיצוב טבלאות :5.2 155
פרק 4: טיפול בנתונים באמצעות שאילתות ...........111155556 199
פרק 5: בניית ממשק משתמש באמצעות טפסים.............. 269
פרק 6: יצירת דוחות .2121 307
פרק 7: מודולי מחלקה, טופס |ד1155555555555000999990.......0. 335
פרק 8: אובייקטי 011166 11070501%] ::1551555555555559999999990. 369
פרק 9: שילוב 466655 עם יישומי 014166 אחרים .......1111566 409
פרק 10: עבודה עם מסדי נתונים מרובי-משתמשים ........... 439
פרק 11: שכפול מסדי נתונים ......:111111.566555555559999009999 467
פרק 12: בניית פתרונות עם 1505 ופרויקט' 66655( ........ 497
פרק 13: 2000 466655 |[ה-762/ ...1515555555555556500999999990. 537
פרק 14: מהדורת 2000 0111606 למפתחים (11555........)025 567
אינדקס הוו.ההההההההההההההה ה ההההההה ה הההההה ה ה ההההה ה ה הההה ה ההההה התה .הויו 1
תוכן עניינים מקוצר | 5
תוכן עניינים
הקדכ ה::::::::,,:::::וווווווווווו,יווווווווווווווווווווווווווווויייי:: 15
על 2000 06655 ...15
רכיביסם חדשיס ב- 2000 66655 1
על הספר 1
קהל חיעד ב 19
תולת קול המק 1000007006
מוסכמות בהן נעשה שימוש בספר )זה 2
פרק 11 היכרות עם :שג 21
אוספים, אובייקטים, מאפיינים, שיטות ואירועיס 7
אוספיס ואובייקטיס 2
אירועיס ל
שגרות ומודוליס 27
שגרות משנה 7
שגרות פונקציה 7
שגרות מאפיין ןו
מודוליס .2
ממשק 85 0
חלונות ם8 2.15
סורק האובייקטיס 0
%, סוגי נתוניס והצהרות 0
1% 1
סוגי נתוניס .|
הצהרות ...47
לוגיקה של התניות ומבני לולאה 7
הסחד.. .1 50
6) 56606 ל
%%)...זס ל
6%)... 86 זסת ו- הזו\ סחם... האוע ל
תוכן עניינים | 7
פונקציות מוכללות 6
תקציר פונקציות נבחרות 2
ניפוי באגיס ולכידת שגיאות 0
לכידת שגיאות - תחביר בסיסי ...4
דוגמאות ללכידת שגיאות 7
העלאת שגיאות 0
פקודות מאקרו ]||
תכנון פקודות מאקרו 1
84 לעומת פקודות מאקרו .8
פרק 2: מודלי גישה ורי 5
סקירה כללית על 0גס ...0.1
סביבות העבודה של 360 2
סביבות העבודה של 00860176 7
אובייקטיס המשותפיסם לסביבות העבודה של 26% ו-1766פ0086 577
אובייקטי סביבת העבודה של 360% 0
אובייקטי סביבת העבודה של 00860160 6
סקירה כללית על 00 7
הספריה 08סכג ב 1
הספריה אססג 1
פרק 3: עיצוב טבלאות הההההההההההההההה ה ה ההההה ה ה ההההה ה[ ההההה םהה .ה הויו 15
טבלאות ומסדי נתוניס יחסייס 1
נרמול 1
קשרי גומלין בין טבלאות ...159
יצירת טבלאות באמצעות אשפים 1
אשפי מסד הנתוניס 162
אשף הטבלאות ו
בונה השדות 1
יצירת טבלה באופן ידני .165.5
סוגי נתוניס 165
אימות נתוניס 1
יצירת אינדקסיס 1
יצירה וניהול של טבלאות באמצעות קוד 1
יצירת טבלה .34 ...178.0
עבודה עס אינדקסים 1
אכלוס טבלה באופן דינמי :188.10
עבודה עס נתוניס בתבניות אחרות 1
406655 2000 8 8
פרק 4: טיפול בנתונים באמצעות שאילתות .........11111155666 0 199
סקירת סוגי שאילתות 2
שאילתות בחירה 56|660) .2002
שאילתות פעולה (ח600) 0
סוגי שאילתה אחריס ו ל 20
פעולות להגדרת נתוניס 2
עבודה עס מקורות נתוניס מרוחקיס 20
עיצוב שאילתות באופן ידני 07
שימוש באשפיס 20
שימוש בתצוגה עיצוב 2
שאילתות בחירה מיוחדות 0 2
שאילתות פרמטר ד 2
שאילתות פעולה ...24
שאילתות עדכון 2
שאילתות הוספה 2
שאילתות מחיקה 2
שאילתות יצירת טבלה 2
תכנות שאילתות באמצעות 501 ו-400 0
משפטי ז60= 551 ל
פונקציות הגדרת נתוניס 9
תצוגות ושגרות מאוחסנות - 1
הפעלת שאילתות על מקורות נתוניס מרוחקיס 2
הפעלת שאילתות על מקורות 0086 מקושרים .201
הפעלת שאילתות בפרויקט נתוניס של 4606655 0
תכנות שאילתות עבור מסדי נתוניס מרוחקיס 6
פרק 5: בניית ממשק משתמש באמצעות טפס'ם.............. 269
טופס מסך פתיחה 27
יצירת מסך פתיחה 0
בקרה על משך התצוגה 2
טופס מסך ניווט 110 בג4ב-... 272
ניווט בעזרת היפר-קישוריס 2
ניווט באמצעות קוד 2-7
קישור טפסים לנתוניס 2
שימוש באשף הטפסיס האוטומטייס 76
עיצוב מותנה ל .277.41
טפסי משנה 2
בדיקת מידע והצגת נתוניס ו 0 הוולו ...281.0
יצירת טופס בדיקת מידע 1
הצגת מידע דינמית - 0
תוכן עניינים | 9
יצירת תרשיס מקבוצות משנה של נתוניס
טיפול בקבציס באמצעות 88
מספור טפסים ופקדיס
הסתרה והצגה של טפסים
מספור טפסיס בפרויקט אחר
שימוש במחלקות טופס
הצגת מאפייניסם ושיטות של מחלקת טופס
טיפול במחלקות טופס
הפניות למופעי מחלקת טופס
פרק 6: יצירת דוה|([:::::::::ו::::ו:ו:וואוצוווואוצוווווווווווו::::: 201
כיצד ליצור דוח
שימוש באשף הדוחות האוטומטייס
שימוש באשפים נוספיס
יצירה ידנית של דוח בתצוגת עיצוב
מקרה לדוגמה: ספר האורחים של סחָ628חסז=
ייבוא נתוניס
המרת מבנה הנתוניס
יצירת תוויות מען
יבירת מכתב אחיד
מיון, קיבוצ וחישוב
יצירת דוחות מרובי עמודות
שימוש באשף הדוחות
יצירת דוח מותאס אישית
הפצת דוחות באמצעות תמונות
יצירת תמונה
הצגת תמונה 00ח805ח5)
שימושיס נוספיס בתמונות
הפיכת דוח לדינמי
עיצוב והוספת תוכן
סיכוס ערכי דף
עדכון דוח באופן דינמי
טיפול בדוחות ובפקדי דוח באמצעות קוד
מספור דוחות - ה
שינוי מאפייני פקד דוח
משלוח תמונות
0 חש 2000 460655
פרק 7: מודולי מחלקה, טופס וד||]::::::אוווווואוווווווווווו::::: 225
סוגי מודוליס 6
מודולי מחלקה .330
פונקציות מאפיין ושיטות מותאמות אישית .-//-/-/- 0
יצירת מופעים של מחלקות 2
מחלקות ואירועיס מותאמיס אישית ה
שיטות ומאפייניס מותאמיס אישית 0
חשיפת מאפיינים באמצעות משתנה ציבורי 8
חשיפת מאפייניס באמצעות פונקציית מאפיין ל
משתניס ציבורייס לעומת פונקציות מאפיין 2
מודולי מחלקה ומקורות נתוניס 2
מקרה לדוגמה: תכנות ממשק כניסה בסיסי 0
טופס הכניסה הראשון .34220
טופס הכניסה השני 2
תכנות אירועיס לתוך מחלקות מותאמות אישית 0
שתי מחלקות אירועים מוכללות 2
שימוש במילת המפתח שח6עםחטו/\ ללכידת אירועיס שהופצו 0
מודוליס סטנדרטיים הגורמיס לאירועיס 7
שימוש באוספי 411 0
מאפייני 6665500166 2
האוספים ||4 2
מספור חברי האוסף ||4 מ
התאמה לסוגי הקבצים פ0ח.* ו-ס80.* ...360
5וחוס=|!ג. ו-65!טססוו|ה 200
עריכת מודולים באמצעות קוד ...302
גישות עריכה 7
הוספת טקסט למודוליס 6
מחיקת טקסט ממודוליםס 2
הוספת טקסט למודולי מחלקת טופס 26
מחיקת טקסט ממודולי מחלקת טופס 300
פרק 8: אובייקטי 011106 +11070501] ::11511555555555559999999999 369
שימוש באובייקטיס המשותפים של 07666 ל
האובייקט ה656876!= 0
ניהול חיפוש קובץ בסיסי 7
מיון הקבוצה המוחזרת .374
חיפוש המבוסס על תוכן הקוב 7
הכללת קריטריוני חיפוש מרוביס 2
האובייקט %ח25515%8 0
מסייעים 2
תוכן עניינים | 11
האובייקט 31 חח 60 םפש מ
ספירת האלמנטים בסרגלי פקודות 2
טיפול בסרגלי פקודות מוכללים 7[
יצירת סרגלי פקודות מותאמיסם אישית ...401
שינוי סרגלי פקודות מותאמיס אישית .0
יצירת סרגלי פקודות מוקפציס 7
מחיקת סרגלי פקודות מותאמים אישית 0
פרק 9: שילוב 466655 עם יישומי 014166 אחרים .......1115265 409
קישור 8460655 ליישומי 0866 אחריס .410
מנהלי 15416 ברי התקנה 10
השיטה 0309500706 חק ב
אוטומציה 0 050 05 0 ד ו 1
עבודה עס |68א5 מתוך 60655 ל
עבודה עס ערכים מתוך גליונות עבודה של |66א= 1
יצירה דינמית של טבלאות 8466655 המבוססות על גליונות עבודה של |66א5 144
הפעלת שגרות |66א5 מתוך שגרות 06655 2
עבודה עס 000% מתוך 60655 0
ספירת פריטיס בתיקיה אנשי קשר ו
הוספת פריט לתיקיה אנשי קשר 0
מחיקת פריט מהתיקיה אנשי קשר ל 0 42
הוספת פריטיס מרוביס לתיקיה אנשי קשר 0
מחיקת פריטיס מרוביס מהתיקיה אנשי קשר 8 12
עבודה עס 6זס/\ מתוך 60655 2
אוטומציה של 6זס/ מתוך 406655 0
הפקת תוויות מען בל 43
הפקת מכתב אחיד - ו
פרק 10: עבודה עם מסדי נתונים מרובי-משתמשים .:.......... 439
שיתוף קבציס 7
המאפיין | שחס60 חס66חהח0ס6 ב 7
רשימת המשתמשיםס 1
שיתוף טפסיס 0.1 447
נעילת רשומות באופן ידני 1
רענון ערכי שדה :אי ו:---....402.0
נעילת רשומות באמצעות קוד ו
שיתוף ערכות רשומות ב
נעילה ברמת השורה ...2.0 7-ה
נעילה ברמת עמוד 7
2 החש 2000 460655
חלופות לאבטחה ברמת-משתמש -ְְ[|/|// 0
בקרה על אבטחה ברמת-משתמש באמצעות קוד 0
טרנזקציות |[
פרק 1: שכפול מסדי נתונים הה,ה,הההההההההההההההההההההההה ההא ההות 57
כיצד עובד השכפול 6
שכפול בעזרת סמל המזוודה בר
פקודת השכפול 0
תכנות ₪0 [// ה
מנהל השכפול 0
סינכרון דרך האינטרנט 2 ב בש בש 55 0 1
שינוייס בעיצוב השכפול ...472
חידושיס בתחוס השכפול ב- 2000 66655 7
שכפול דו-כיווני ב- 56/6 .360-501 0
עדכוניס ברמת-עמודה 0
רמות החשיפה של עותק משוכפל 7[
פתרון התנגשויות המבוסס על קדימויות 7
שכלוליס שוניס 7
טכניקות פיתוח ב- 380 0
הפיכת מסד נתוניס לבר-שכפול 7
יצירת עותקיםס מלאים נוספים 8
יצירת עותק משוכפל חלקי, ומסנניס 4
סינכרון עותקיס משוכפליס 0
עבודה עס עותקיס משוכפליס הנמנעיס ממחיקות 7
עבודה עס מאפייני עותק משוכפל 7
דחיסה והצפנה של עותקיס משוכפליס 7[
פרק 12: בניית פתרונות עם 1505 ופרויקט' 66655( ........ 497
מנגנון הנתוניס של 6-050₪ון₪ (₪ס5!ו) 1
505 לעומת 166 0
פרויקטי 66055 05 5
חיבור פרויקט 866655 עס מסד נתוניס 0
לימוד ממסדי הנתוניס 65שחושוחזזסאא ו- 5טטק 0
דיאגרמות וטבלאות של מסדי נתוניס 0
מיפוי קשרי גומלין באמצעות דיאגרמות של מסדי נתוניס 0
ניהול דיאגרמות של מסדי נתוניס מרוביס 1
עריכת טבלה בחלון של דיאגרמת מסד נתוניס 1
עריכה ויצירה של טבלאות באמצעות גיליון עבודה 1
תצוגות ושגרות מאוחסנות 1
שימוש בתצוגות .5180
תוכן עניינים - 123
שימוש בשגרות מאוחסנות 0
דוחות וטפסים 0
מיון ועיצוב באמצעות דוחות, ועוד 50
הוספת היפר-קישוריס 1
עריכה והצגה של נתוניס באמצעות טפסיס 2
סינכרון מחדש של טופס באמצעות נתוני יחיד לרביס 7
סוגיות של תכנות 5
עבודה עס טפסיס 5
עבודה עס מודוליס עצמאייס 520
פרק 3: 20000 5" וה-60] הוהההההההההההההההה|ה|ההה ה .הוה 7
גישות מסורתיות 5
פרסום גליונות נתוניס .55
שימוש בטפסי וד - ו
שימוש בתמונות ק1- עס דפדפני 46056306 0
שימוש בהיפר-קישורים .519.5
סוגיס של היפר-קישוריס 0
סוג הנתונים אחווזספעו 7
הוספה ועריכה של היפר-קישוריס 0
דוגמאות של חיפר-קישוריס 5
יצירת דפי גישה לנתוניס והשימוש בהס 55
יצירת דף גישה לנתוניס 0
יצירת דף טורי פשוט והשימוש בו ...555
קיבוצ רשומות 0
רכיבי פ6\ של 2000 01606 בדפי גישה לנתוניס 559
נושאי תכנות הקשוריסם בדפי גישה לנתוניס .562
פרק 14: מהדורת 2000 0111606 למפתחים (11555........)025 567
סקירה כללית על פס ...568
כלי 84 לפריון עבודה 0
גישה לנתוניס ל
הטמעה וניהול 5700
ספרן הקוד 1
פתרונות אריזה והטמעה 5/0
גישה לנתוניס ביישומיס שאינס 460655 7-ו
חתימה דיגיטלית של פרויקטי 84 57
אינדקס הו..,הההההההההההההההההההההה ה[ ה הההה ה ה ה הההה ה ה ה ההה ה ה ההההה םהה .וו 1
14 ם,/ 2000 460655
הקדמה
על 2000 466655
היישום 466655 הוא מערכת פיתוח פופולרית נפוצה ביותר, עקב היותו חלק מקבוצת
יישומי 07066 050%יסו1. לקוחות רבים מעונייניס שיישומי 406655 יפעלו בשיתוף עס
שאר יישומי 0866 בצורה ברורה וקלה לתחזוקה, ללא צורך בתמיכת איש הפיתוח.
הטכניקות המתוארות בספר יסייעו לך לענות על ציפיות אלו (לקבלת תמיכה נוספת,
בקר בשני אתרי 167050 : /01866/ח506.60סז6וח.צוצוצו העוסק ביכולות הכלליות של
5, ו- /011106000/ח05010.600ז6!וח. אואואו, הסוקר את רכיבי הפיתוח של המוצר).
רכיבים חדשים ב- 2000 ₪06655
0 860655 מתקדם באופן משמעותי בתחומיס רביס. 1670506 יצרה מוצר הכולל
חידושיס רבים, אך מתנהג עדיין כמו הגירסה המוכרת של 160655. הספר מדגיש את
החידושיס בחמישה תחומיס עיקריים:
4 אובייקטי נתוניס של א6ע460 - 400 (09[16600 88 6%ע60ה),
תפקודיות מורחבת של ז8/ז56 501 בסביבות מחשוב שונות,
5 ו8סו!קק זסז 88516 |ה0פו/ (הפצ) והרתבות אריזה (05ח6 366 חח6 8ַחו6630הכ),
שיפורי מנגנון 26%,
צא / /- /
תפקודיות פ6/ משופרת בסביבות מחשוב שונות.
הקדמה 15
אובייקטי נתונים של 6%עו6%/
אובייקטי נתונים של 466% - ססג, מחליפים כמעט את כל פונקציות הגישה
לנתוניס שבוצעו באמצעות אובייקטי גישה לנתונים (220 - 00[66₪5 466655 מּז08).
0 46660585 מציע תפקודיות 400 באמצעות שלוש ספריות : 8ססס, אססג ו-סחנ.
הספריה 2.1 09[66%5 בז03 6%/על46 (8פסס) כוללת פונקציות עיבוד גישה לנתוני
ליבה. האובייקטיס העיקריים של 0008 הס: חהס660הה60, ₪660,050%
ו-0חְהּוחוח60. אפשר להשתמש באובייקטיםס אלה, במאפיינים ובשיטות (005ח6%ח)
שלהם, כדי להתחבר ולטפל במקור נתוניס. לאובייקט ח6000חחס6 ממשק לטכנולוגיה
חדשה של ספק 8 0]5. לטכנולוגיה זו חשיבות חיונית עבור גישה אוניברסלית
לנתוניס - 65 (460055 8%8 |הפזסטוח( 0506ז6י) המספקת גישה עתירת ביצועיס
למיגוון תבניות נתוניס (יחסיות ולא יחסיות כאחד). טכנולוגיית 004 מאפשרת עיבוד
משולב של מקורות נתוניס מקובלים, כגון 26 ו- 56706 501, עס מקורות פחות
מקובלים, כגון דואר, ספריות קבציס ואפילו וידאו. 004 מייצגת התקדמות
התפתחותית מעבר לממשקי הנתוניס המקובלים כיוס, כגון קישוריות מסד נתוניס
פתוחה (02806 - שע660חהחה60 6פַהּפַַזהכ תח6ק0), אובייקטי נתוניסם מרוחקיס
(₪00 - 00[666 28%8 0%6ח56) ו-סמס.
הספריה (400%) 566010 6חה3ּ וספ זסז 2.1 .%א= 400 50%סזסו1 מציעה גישה
מבוססת-אובייקט להגדרת נתוניס ולאבטחה ברמת-משתמש. היא מספקת אוספי
משתמשים וקבוצות (פקטסזס 800 0565) ברמת משתמש מקובלת של 166. היא גס
קושרת הרשאות בקבצי מסד נתוניסם אל חברים (00675ח96) באוספי משתמשים
וקבוצות שבקוב מידע של קבוצת עבודה (8!6 חסטאחזס)חו קטסזטאזסו). מודל אססא
של ספריה וו מטפל במטלות הגדרת נתוניס באמצעות אובייקטים כגון טבלאות
(30!65ד), עמודות (פחוחט!60), אינדקסים (65א06ח1), מפתחות (5ש6א), תצוגות (פאוסו/)
ושגרות (65זט600סזק). תוכל לנצל אובייקטים אלה כדי להגדיר בצורה דינמית
טבלאות, אינדקסיס וקשרי גומלין חדשיס בין טבלאות. תוכל גס להגדיר שאילתות על
טבלאות.
הספריה 2.1 02[66%5 7|!630078ק₪6 חב 76% 16-050%/ (0א1) מספקת בעיקר
שירותי שכפול (חס₪פסו!ק₪6) של מנגנון 36 באמצעות ממשק ססג. המודל החדש ססא
מאפשר לנצל את היתרון של רכיבי השכפול המתוכנתיס של מסד הנתונים ז26. בנוסף,
המודל כולל פונקציות של מנגנון 26%, כגון דחיסת מסדי נתונים ורענון המטמון.
הגברת הפעילות המשולבת של ו6עו56 .501
0 800058 מאפשר לטפל במסדי נתונים מסוג 6פקזסטחם באותה קלות בה
מטפלים במסדי נתוניס מבוססי 36, קישוריות 400 היא חלק מהסיבה לכך. סוג
הקוב החדש פרויקט 60655( (800.), מאפשר גס השתלבות הדוקה עס גרסאות 6.5 ו-7
של ]5606 |50. סוג קובץ וה עובד עס מסדי נתונים מבוססי 566% |50
ו- 6חופַחם 8% 06פסזסווא (0פ!וא) בדיוק כפי שקבצי טסוח מאפשריס לטפל במסדי
6 ם,/ 2000 460655
נתונים מבוססי 360. 6505 הוא מנגנון מסד נתוניסם חדש שמבוסס על מודל
7 ז6/ז56 .501. הוא מיועד לפתרונות עבור קבוצות עבודה קטנות, ומשליס את תפקודי
המנגנון המקובל 266. תוכל לבחור לפתח פתרונות בעזרת 36% או =ספ!.
הפרויקטים של 8460655 מגלים תצוגות ושגרות במסגרת המוכרת של מסד הנתונים.
תוכל להתחבר מיידית למסדי 501 מרוחקיםס תוך שימוש בממשק הגרפי הפשוט
והמוכר ממסדי נתוניס מסוג 3%. תוכל גס לנצל את נתוני ז6ז 56 501 בעבודה עס
טפסיס ודוחות של 460655 (בדיוק כפי שאתה נוהג עס נתוני 16%).
לרשותך גם יכולת פעולה שקופה של 8 015 עם ז9/ז56 .501 ומקורות נתוניס עורפיים
(0ח=-886%) בסביבות מחשוב שונות. השימוש באובייקט ח0ו664חח 60 של 00 ובספק
8 015 מאפשר להתחבר למקורות נתונים מרוחקים ולהפנות (66ח60076ז) אליהם
באמצעות קוד עבור יישומיס מותאמיס אישית.
88/ והרחבות האריזה
0 8606558 ממשיך בהתאמת גרסת %8 שלו ל-84פ% של שאר יישומי 0006.
0 6060585 כולל עורך - 8₪/ (ז0ס0/6= 88516 וה180/) שממשק המשתמש שלו זהה לוזה
של 6זס/, |06אם ו-)חוסקזפוסק. ניתן להעביר את מיומנויות ניהול הקוד והפיתוח
ישירות אל שאר היישומים, ועל ידי כך להעשיר אותס בפונקציות גישה לנתוניסם.
מהדורת הפיתוח של 2000 0666 כוללת אפשרויות אריזה והפעלה משופרות. לדוגמה,
ניתן להפעיל פתרונות באמצעות 505 ופתרונות המתבססים על מסדי נתוניס
דמוי-ז6/ז56 .501. סידור גה מאפשר לקבל את עושר התצוגות והשגרות של הממשק
הגרפי וממשק התכנות. הדבר חשוב במיוחד במקרה של יישוס קטן שמתפתח וזקוק
מעתה ליכולות של מסד נתוניס ז8/ז56 .501.
ל- 2000 460655 יכולת הטמעה חדשה המאפשרת להפיץ חבילות התקנה מותאמות
אישית (פססַ8א86כ 56002 הח6500) באמצעות האינטרנט. כך תוכל להרחיב במידה רבה
את תחוס לקוחותיך. מאגר הלקוחות הפוטנציאלייס שלך יגדל ויקיף את כל מי
שמחובר לאינטרנט, גם אס הוא נמצא בקצה העולס.
שיפורים במנגנון 36%
0 8066585 כולל את גירסה 4 של מנגנוו מסד הנתונים 360, המציעה שיפוריס
בתחומיס תפקודיים אחדים. מצודדת במיוחד היא זמינות נעילת דף ברמת השורה
(9חו066! 806 |6ע6!-שוסז). הנעילה הנמוכה ביותר של גרסאות קודמות של 406655
היתה ברמת הדף. אחת הסיבות להכללת נעילה ברמת השורה היא ומינות תמיכת
6 בתווי טקסט. ב- 2000 07866 ניתן לייצג נתוני טקסט בשפות שונות ביישומיס
רב-לשוניים. שיטת הקידוד החדשה של שדות טקסט מגדילה את הזיכרון הדרוש
לאחסון תו בודד מבית אחד לשני בתים, והדף גדל מ-260 ל-465. מאז העליה בגודל
הדף, 1670506 אפשרה לנעילה ברמת השורה לצמצסם את אפשרות נעילת דף בו-זמנית
ביישומיס מרובי משתמשים.
17 המדקה
גם בשכפול מסד נתוניס חלו מספר שיפורים, אחד מהם הוא זמינות שכפול ברמת
העמודה (ח60|!6800 |6/8!-חוחט!|ס6). גרסאות 365 קודמות זיהו התנגשויות ברמת
השורה, שני עותקיס התנגשו אפילו אס שינו שדות שוניס באותה רשומה. שכפול
ברמת העמודה משפר את הביצועים על ידי הסרת התנגשויות אלו. 2000 06655 כולל
גם שכפול דו-כיווני בין מסדי הנתוניס 265 ו-ז8/ז56 .501. הגירסה הקודמת אפשרה
שכפול חד-כיווני בלבד, מ- ז6/ז56 .501 אל 160.
עוד שיפור ראוי לציון הוא בקרה תכנותית שבאמצעותה משניס את ערך שדות
המספור האוטומטי (ספוחטאססטה). בעת יצירת טבלה תוכל להגדיר את הערך
ההתחלתי ואת ערך הצעד (כ5%) של שדות מספור אוטומטי. תוכל גס לשנות ערכיס
אלה לרשומה הבאה. בפרויקט 860655 ניתן להגדיר שדות מספור אוטומטי מתצוגת
עיצוב טבלה (ח0ו265 6|מ18). אפשר גסם לשנות ערכיס אלה לאחר היצירה הראשונית
של הטבלה.
6% אף מציע גישה ברמת 501 לתצוגות ושגרות. שיפורי 501 של 36 מאפשרים ליצור
או לשנות את שני הסוגיס של מודולי אובייקט מסד הנתונים.
הגברת הפעילות המשולבת ב-60/
אחת התכונות החדשות והמשמעותיות של 2000 66655 הוא דפי גישה לנתוניס,
המתנהגיס כמו טפסיס ודוחות 866655 ב-60/. תוכל לעצב דפי פ6) הקשוריס ישירות
למקורות נתונים מסוג ז6ז56 501 או 260. דפים הפועלים כטפסיםס מאפשריס
למשתמש לערוך, להוסיף ולבטל רשומות בצורה גרפית מתוך הדף. תוכל להשתמש
בכלי זמן-עיצוב (0₪06-ח06514) כדי לבקר באופן תכנותי תכונות אלו, וגם כדי לנצל את
יכולות המיון והסינון. הדפים אינס מאפשריס יצירת טפסי-משנה, אך ניתן ליצור
דפיס מקובציס של גישה לנתוניס (28065 806655 0868 60קטסז6) שגדליס באופן מותנה
בהתאס לקלט המשתמש.
דפי גישה לנתוניס יכוליס לשמש גס כמארחים של רכיבי אינטרנט חדשים, וניתן
להשתמש בהסם ליצירת דפיס המכילים גליונות אינטראקטיבייס, תרשימים דינמייס
וטבלאות ציר (190!65 זסטוס). ניתן גם לקשור את רכיבי ה-9פ/ של גליונות ותרשימיס
לנתוניס המוצגיס בדפיס מקובציס או בלתי מקובציס של גישה לנתונים. משמעות
הדבר היא שבאפשרותך להציג חישוביס ותרשימים המשתנים בצורה דינמית בעת
המעבר מרשומה אחת לבאה אחריה. דפי גישה לנתוניס המכילים טבלאות ציר אינס
מתקשרים עם מקורות נתונים אחרים בדף, אלא מספקים ייסידור בטבלת ציריי
(פחטסטוס) בסגנון |66אם, על ידי הנעה גרפית של חלקי נתוניס בתצוגה נפרדת. בנוסף,
ניתן לנצל טבלאות ציר לניתוח סוגי נתוניס רבים, לרבות מקורות נתוניס של
501, 26% ועיבוד ניתוחי מקוון - קה 01 (0חו6655סזק |068/|החה 6חו[חס).
8 ם,/ 2000 460655
על הספר
סגנון הלימוד של הספר מיועד להעניק לך יכולת מעשית כאיש פיתוח, ולהשיג תפוקה
גבוהה בעבודה עס הרכיביס החדשים. הלימוד הוא בסגנון הבט, ראה, פעל! דוגמאות
הקוד הרבות שתמצא בספר ממחישות את התפיסות שניתן לשלב ביישומיס באופן
מיידי. התייחס אליהן כאל מתכונים לביצוע מטלות פיתוח מוגדרות. נסה להפעילן
ייכמו שהןיי, ואחר כך התאס אותן לעבודה עס הנתוניס שלך ובהקשר של היישוס
שיצרת. הדוגמאות פשוטות למדי, קלות להבנה ולשימוש חוזר, עובדות שתדרבנה
אותך ליישמן.
קהל היעד
ספר זה מיועד למפתחי מסדי נתוניס המתכווניס לפתח יישומים מותאמים אישית
באמצעות 2000 260655 67050%6ו1). הספר דן ברכיביס ההופכים את 460655 50%6סזסו]!
לכלי המועדף על מפתחים, ובחידושים המיוחדיסם של 2000 860655. הספר מציג
דוגמאות קוד רבות המדגימות את טכניקות הפיתוח העיקריות, וכליס לפיתוח
יישומים מהיר. פשטות העיצוב נשמרה בקפדנות, כדי לאפשר לקורא לאמ את קטעי
הקוד שבספר ליצירת יישומיס מותאמיס אישית, או ליישוס הטכניקות השונות
במהלך עבודתו. התקליטור המצורף לספר מכיל את כל דוגמאות הקוד שבספר.
הספר מיועד לספק מענה לצרכי מיגוון קוראים. אנשי פיתוח ותיקים ימצאו בו מידע
חיוני על הרכיביס המתקדמים הכלולים ב- 2000 66055. קהל יעד נוסף הוא אנשי
פיתוח שעובדים בסביבה שונה מזו של 07050%ו1, כגון 08856 או אססְפזפק. אלה
מתמצאיס במושגי פיתוח, אך אינס יודעיס בהכרת כיצד ליישס את המושגיס בסביבת
5. קבוצה נוספת היא של משתמשיס מקצועניס השואפים ללמוד לפתח פתרונות
באופן עצמאי במינימום ומן.
תוכניות וקוד המקור שבספר
כל קטעי הקוד המופיעיס בספר מסופקים בתקליטור המצורף. תוכל להשתמש בהס
בשלמותם כדי לחסוך זמן, ולמנוע טעויות הקלדה במהלך העבודה.
התקליטור המצורף
בתקליטור המצורף תמצא את תיקיית קבצי הקוד הרלוונטייס לספר ה - תיקיה בשס
27 הנמצאת בתיקיה 80065. צור תיקיה בשס 266655 פחווחוחפזטסזק בכונן 6
ואחר כך העתק אליה את תיקיות הפרקים שבתיקיה 59237 (קטעי הקוד הרלוונטיים
לפרק מסוים, מופיעים בתיקיה ששמה כשם הפרק).
להרחבה על תכולת התקליטור ואופן השימוש בו, פנה לקובצ 5פ0%6 שבתקליטור--
19 המדקה
מוסכמות בהן נעשה שימוש בספר זה
הספר משתמש במספר מוסכמות ואלמנטים מיוחדים כדי להדגיש נושאיס מסוימים,
ולהקל על הקריאה והשימוש. מומלצ להתבונן בהס בטרס תחל בקריאה.
הרשימה שלהלן מפרטת את המוסכמות בהן עושה הספר שימוש:
4
מיליס ומשפטיםס המדגישים את כוונת המחבר, כמו גס מונחיס חדשים, מופיעיס
באותיות מודגשות.
קטעי קוד ופקודות לדוגמה מופיעיס בגופן 8וחסחּד וברקע אפור.
חלקיס שוניס בקטעי הקוד מופיעים מדי פעם בגופן נטוי כדי לציין שאלה חלקיס
אשר עליך להוסיף או לשנות (למשל פקודות או שמות משתנים). שיטה זו מאפשרת
לך לראות מה עליך להוסיף או לשנות על פי ההקשר.
בשל מגבלות הרוחב של עמודי הספר, נאלצנו במקריס מסוימיס לשבור שורות קוד
ארוכות במיוחד למספר חלקים. במקרים אלה, מופיע בסוף השורה השבורה סימן
המשך שורה ( ). בעת העתקת הקוד למחשב תוכל להשמיט את סימני ההמשך
ולכתוב את הקוד במלואו בשורה בודדת או לחילופין - להעתיקו כפי שהוא מופיע
בספר. 460655 יידע לפרש את הקוד בכל אחת מהצורות שתבחר.
הערה:
כל התמונות המופיעות בספר לקוחות מהגירסה האנגלית של 2000 06666.
בדיקות נכונות המידע בוצעו על הגירסה העברית, עם התייחסות לגירסה
האנגלית בסוגריים.
הערה נוספת: כאשר תמצא התייחסות ל-8 |66אם, הכוונה היא ל-97 |66א5.
0 ם,/ 2000 460655
1
היכרות עם 2
לפני יותר מעשור שנים הציע ביל גייטס שפת מאקרו אוניברסלית ליישומיס
שולחניים. שפת פחסוטפסו|סק זסז 88516 |הטפוש (מ8/) היא הגשמת החלום ויותר מזה.
של 2000 606055 11670506 משותף לכל יישומי 01666, ואפשר למצוא אותו גס
במוצרי תוכנה של יצרניס נוספיס. 84/ עומד גס בכל כללי התחביר של שפת התכנות
העצמאית 88516 |1508/. 84 מאפשר למפתחיס להשתמש בשפת תכנות יחידה בעשרות
הקשרים, כשכל שעליהס לעשות הוא ללמוד מודל אובייקט חדש. 84/ הוא היידבקיי
של יישוס 66655 : הוא מחזיק הכל יחד ומעניק ליישוס צורה.
ל- 2000 460655 ממשק חדש - עורך 8856 |508ו/ (85/), המופיע ביישומי 086. אך
בוודאי תמצא עצמך מוסיף קוד 84/ לטפסי 460655 המוכרים, ולא לטפסי המשתמש
שבשימוש יישומי 06666 אחרים. זיווג טכנולוגיות זה ייראה לך טבעי מאוד.
בפרק וה נציג את %88 כפי שהוא מופיע ב- 2000 60655, ונסקור את עקרונותיו
הבסיסייס בהקשר לפיתוח יישומים. כמו-כן נציג את חידושי 84/ העיקריים ונדגיס
טכניקות תמיכה בטפסיס באמצעות קוד. אומנס מדובר בסוגיית פיתוח מקובלת
ב-466655, אך קיימיס מספר שינוייס באופן בו מממשיס אותה באמצעות 88/.
הפרק ידון בשבעה היבטי 84/ ב-66055א, ויסתיים בתיאור קצר של פקודות מאקרו.
> אוספים (00|!660075), אובייקטים (00[609), מאפיינים (פ6חזסקסזק), שיטות
(1660005) ואירועים (פזחסעם),
שגרות (65זט660סזק) ומודולים (65וגוססוז),
ממשק 85/,
%, סוגי נתוניסם והצהרות,
לוגיקה מותנית ומבני לולאה,
פונקציות מוכללות,
/ 4 / / / /
ניפוי ולכידת שגיאות.
פרק 1: היכרות עם 84 | 21
אוספים, אובייקטים, מאפיינים,
שיטות ואירועים
0 60055 תומך ב-84/, מה שמאפשר פיתוח מונחה-אובייקטיס. בסעיפים הבאיס
נעסוק בפיתוח מונחה-אובייקטיס בהקשר של 8 ו- 2000 860655. המידע מיועד
למשתמשיס מתקדמים העובריס לפיתוח יישומיס מתוכנת, ולמשתמשיס ברמה
בינונית המעונייניס לסקור את נושא התכנות המונחה-אובייקטיס בעזרת ב8/.
אוספים ואובייקטים
0 4600055 מהווה סביבת פיתוח מונחה-אובייקטים. חלון מסד הנתוניס שלו מאפשר
למשתמש לגשת לטבלאות, שאילתות, טפסים, דוחות, מודולים ופקודות מאקרו. 84
הופך את כל הרכיביס האלה לזמיניס יחד עס מיגוון רחב של תבניות מתוכנתות, כגון
ערכות רשומות (פ66070560ז) ואובייקטים של זספפופבּד. כדי להפיק מ-84/ את מירב
התועלת ב-466655, עליך להבין את נושא האובייקטיס ומושגיס נוספיס הקשוריס
לנושא זה.
אובייקט 600[פס) הוא עצם, כגון מכונית, טלפון או מכשיר וידאו. לכל האובייקטיס
יש מאפיינים. מכוניות למשל, מוגדרות באמצעות מאפייני הצבע, הדלתות, המנוע
ומאפייניס נוספים. מאפיינים יכוליס להגדיר מופעים של אובייקטים כללייס.
התנהגות מונחית-אובייקטיס מאפשרת להגדיר מופעים ייחודיים של אובייקטיס
בהתאם למאפייניהם. לדוגמה, מכונית אדומה ומכונית שחורה הן שני מופעיס
ייחודיים של האובייקט יימכונית'י.
מאפייני האובייקט משתניס בהתאסם למחלקת האובייקט שאליה הם מתייחסים.
למכונית יש קבוצת מאפיינים שונה מזו של מכשיר טלפון. שני האובייקטיס
מאופייניס באמצעות צבע, אך לטלפון יכול להיות גס מאפיין רמקול. למכוניות לעומת
זאת, יש מנועים בנפחיס שונים. יש אובייקטיס שמהווים מכולות (615ח%91ח60) עבור
אובייקטיס אחריס. גס לאובייקטים המוכלים יש מאפיינים משלהם. מנועיס מיוצריס
במיגוון נפחיס ותצורות, בעוד שלרמקולים יש בקרי עוצמה ומאפייני איכות צליל.
מאפיינים יכולים להגדיר גס מופעים ייחודיים של מחלקות אובייקטים מוכלים.
לטלפון עס רמקול (ז50686) קבוצת מאפייניס שונה מזו של מכשיר טלפון רגיל.
בנוסף למאפיינים, אובייקטיס כולליס גם שיטות. שיטות של אובייקט הן הפעולות
שהוא מסוגל לבצע: מכשיר הטלפון משמש להתקשרות, מכונית נוסעת. אובייקטיס
רביס כוללים שיטות רבות. לדוגמה, מכשיר הטלפון מאפשר לבצע שיחות מקומיות
ושיחות בין-עירוניות.
מפתחיס בסביבת 60658 אינם מטפלים באובייקטים פיסיים, אלא בתבניות
מתוכנתות, כגון טפסיס, טבלאות ושאילתות שיכולים לייצג אובייקטיס ופעולות שהס
מבצעים. החלון מסד נתונים (ס2808085) של 2000 266655 מציג חלק ממחלקות
האובייקטים של מסד הנתוניסם בסרגל הכליס המזכיר את זה של אססשטס (ראה
2 הח 2000 460655
תרשיס 1.1). לחיצה על לחצן טפסים (פוחזס) שבסרגל הכלים פותחת תצוגה של
אובייקטי טופס ומציגה שתי אפשרויות ליצירת טפסים חדשים. אובייקטי טופס
מסוגליס להכיל אובייקטיס נוספים שנקראיס פקדים (5!|סשחס6). אובייקטים מוכלים
מגדיריס אובייקט בדיוק כפי שפקדיס בטופס מגדירים את מראהו והתנהגותו.
00 ב
| סח שסמך והפפתן אש 06 6 |
| - 3 8 | ]| - 8 | - מ )| כ | ₪ א | > 3 ₪6 ש םן
6 : [וס)קבח:) א
זזה 12:00:00 זה 12:00:00 סוי הפס חו חזזס] 076866 5
1:00 12:00:00 קווש חופנ עֶם חזזס] 76866 ₪
חחזס= ...:7:17 08/08/1998 = ...7:17:1 08/08/1998 1 0|-חז]
חס ...:7:39 08/16/1998 == ...7:39:4 08/16/1998 02 3/0 הז ב
חס | ...:7:55 08/16/1998 = ...7:55:0 08/16/1998 8/0303 חח >6זסקפת 7
הז | ...10:0 08/08/1998 = ...:10:08 08/08/1998 04 )הז = |5:
זט | ...:3:22 08/18/1998 = ...3:22:5 08/18/1998 3/0300 והז = |5
חחזס= | ...:8:36 08/10/1998 א 1 ב
זט | ...:3:15 08/10/1998 א 0 = זס= זז ל
חס ...:8:54 08/17/1998 = ...8:54:1 08/17/1998 5 וח | ₪005 ||
זט ...:1:26 08/08/1998 = ...1:26:3 08/08/1998 56 חח
בי
בי
בינ
בי
טב 1
תרשים 1.1: החלון מסד נתונים ובו אוסף של אובייקטי טופס ושתי אפשרויות ליצירת
טפסים חדשים (שים לב, התרשים לקוח מהגירסה האנגלית)
תרשים 1.1 מציג אובייקטי טופס אחדים. אובייקטים אלה מהוויס אוסף (ח00|!6000).
באופן טיפוסי, יישומי 8460655 כוללים אוספי טפסים, טבלאות, שאילתות ואובייקטיס
נוספיס. החלון מסד נתונים עצמו ממיין אובייקטים לפי מחלקות. לחיצה על סרגל
הכליס בחלק הימני (או השמאלי בגירסה האנגלית) מציגה בחלון את כל האובייקטיס
שבאוסף.
אוספיס דומיס מאוד לאובייקטים. לכל אוספי 460655 יש מאפיין זחטס6 (מונה)
שמגדיר את מספר המופעים באוסף. 6 (פריט) הוא מאפיין נוסף של אוסף. תוכל
לנצל את המאפיין ו6₪פ1 לקריאה בלבד, כדי להתזיר טופס יחיד מתוך האוסף
5חזזס=!1ה (כל הטפסים). חברי (5ו6טחחסוח) האוסף הס אובייקטים יחידים, ולכן אין
להס מאפיין %חט60. אובייקטי אוסף משמשים למטרות שונות. מכונית בעלת גג
מתקפל יכולה למלא פונקציות שונות מאלו של מכונית משפחתית רגילה, אך שתיהן
יכולות להשתייך לאוסף המכוניות של משפחה מסוימת.
מאפיינים ושיטות
המאפיינים והשיטות מאפיינים את מראה והתנהגות האובייקטים. תחביר ההפניה
למאפיינים ושיטות הוא שזפקסזק.160%[פ0 ו-66%.06170005[פס, בהתאמה. המונת 166[פס
(אובייקט) יכול להתייחס לאובייקט יחיד או לאוסף אובייקטים. לדוגמה,
פרק 1: היכרות עם 84 | 23
זס|886660. 1+טסח01 מציין את מאפיין צבע הרקע של תיבת טקסט בטופס, ואילו
(1:6705)0. 5וחוס=||ה מתייחס לטופס הראשון באוסף הטפסיס. אס שס הטופס הראשון
51 חז), ניתן להפנות אליו בתור ("61!ק580 ")16 5רחזוס=|!|ה.
אפשר להציג את מאפייני אובייקט מסד הנתונים על ידי בחירתו בתצוגת עיצוב
(ח0ו65כ) ולחיצה על לחצן מאפיינים (65וזז6קסזק) שבסרגל הכלים. תרשים 1.2 מציג
טופס בתצוגת עיצוב ביחד עס גיליון המאפיינים שלו. גיליוו המאפיינים מציג ערך
מותאס אישית, חסטק63 %|80ו6 ץא במאפיין כיתוב (ח₪0ק609). המאפיין לחצן סגירה
(חסט8 01056) נבחר. תוכל ללחו על שורת המאפיין לחצן סגירה ולבחור לא (סא).
שינוי הערך של המאפיין יציג באפור את הלחצן סגירה כאשר הטופס יופיע בתצוגת
טופס (חחזסת). שים לב שגיליוו המאפייניס מכיל כמה דפיםס (כרטיסיות). תרשים 1.2
מציג את הכרטיסיה תבנית טפוחזס=) שבגיליון המאפייניס. הכרטיסיות מסדרות את
המאפייניס בקבוצות, מה שמאפשר שליפה מהירה.
הרה מה
[ ₪ | אס | 6% [ 3 | סז [
. וקב 686 עזי 0
רהצי שו 30%
ו
. 561660075 66070
זט הטויב
. . 1065 הַואם.
. 65006 60
. 6606 טסוו
0091 55/08 .
. 80% 00001
. . 80000005 15 חווי
. . חסזום 61056
תרשים 1.2: טופס פשוט בתצוגת עיצוב יחד עם גיליון המאפיינים שלו
הערה:
ב- 2000 66055 גיליון המאפיינים זמין גם בתצוגת טופס, ולא רק בתצוגת
עיצוב. משמעות הדבר היא שניתן לשנות ולשפר את מראה הטופס בצורה קלה
ופשוטה תוך כדי הצגתו בתצוגת טופס.
האובייקט 060 הוא מקור שיטות עשיר למפתחי יישומי 460655 בכל הרמות, אך
מפתחים מתחילים ימצאו בו עזר רב בעבודה בסיסית עס שיטות. אובייקט ה כולל
שיטות רבות, 6!056, חס ח6קס, |סה0ס06ד60, 0זס6ש סחו= ו-סחהההותס6חטח. שיטות
רבות של אובייקט ה דורשות ארגומנטיס המציינים את אופן הביצוע שלהן. שיטות
אחרות כוללות ארגומנטיס נדרשים או אופציונליים. אם אין מצייניס ערכיסם של
ארגומנט אופציונלי, השיטה מנצלת את הגדרות ברירת המחדל. השיטה סחההחוחס6חט
חביבה מאוד על משתמשים מתקדמיס שעוברים לתכנות; ניתן לנצלה כדי לבצע את
הפקודות הזמינות בתפריטיס ובסרגלי הכלים של 60655(.
ב-460655 אפשר לסגור טופס באמצעות השיטה 6!056 של האובייקט סוחס6סס. לשיטה זו
שני ארגומנטיס נדרשיס ואחד אופציונלי. הארגומנט הנדרש הראשון מציין את סוג
האובייקט המיועד לסגירה. לסגירת טופס השתמש ב-חזס-80 (7ס-86 הוא קבוע
מוכלל של 860655 שערכו מורה לשיטה 610566 כי ברצונך לסגור טופס. לקבלת מידע
4 ם,/ 2000 460655
נוסף על קבועיס מוכללים ב-60655, עיין בסעיף ייסורק האובייקטים'י). הארגומנט
השני הוא שס הטופס. ערך זה מופיע במאפיין שם (סוחא8) בגיליון המאפייניס של
הטופס. הצב את השס בין מרכאות. הארגומנט האופציונלי מורה ל-466655 אס לשמור
שינוייס כלשהם בטופס. ברירת המחדל היא לבקש את אישור המשתמש לביצוע
הפעולה. השתמש בשיטות 8658/6%65 או 8658/6%0 לסגירת הטופס תוך שמירת
השינוייסם או ללא שמירתם. להלן תחביר המשתמש בשיטה 61056 לסגירת טופס :
ס]3658/6 , "סרה הוה זס+" ,וח'זס-36 6|056. חספ
שיטות רבות של 00700 חלות ישירות על אובייקטים יחידיס. לדוגמה, השיטה
06000 601 מעבירה את המיקוד לפקד מסוים בטופס. ניתן להשיג ואת גס באמצעות
השיטה 5606-0005 שבוחרת את הפקד. נוח להפעיל את שתי השיטות כאשר על היישוס
להעביר את המיקוד לשס קליטת נתוניס חדשים, או לתיקון מידע שגוי.
אירועים
אירועים הם מרכיבים חשובים מאוד בתכנות 88/. ניתן לנצל אותס כדי ליצור
יישומים דינמייס ואינטראקטיביים. אירועיס של אובייקטיס ואוספיס משמשים מעין
נקודות הפעלה לקוד מותאם אישית שיצר איש הפיתוח. במהלך העבודה עס טפסים
תוכל לנצל אירועים לביצוע מטלות, כגון אימות נתונים, הפיכת פקדים לזמינים או
בלתי ומינים, העברת המיקוד לפקד אחר, ופתיחה וסגירה של טופס.
עליך להבין את תזמון האירועיס וגס את סדר הפעלתם. פתיחת טופס מפעילה שורת
אירועיס : ח6ק0, 1080, 865126 ו-%ח6זט6. האירוע ח6ק0 מתרחש בעת שטופס מתחיל
להיפתח, אך בטרס הוצגו רשומות כלשהן. האירוע 1080 מתרחש לאחר האירוע ח006
וגורס להצגת רשומות הטופס. קוד הגורס לטופס לשנות את גודלו או מיקומו
באמצעות השיטות 6526עס!!, 26וחוחוא, 26וחואהּ!) או 6ז0ז₪65 של האובייקט 6ח6ספם,
מפעיל את האירוע ₪6526. האירוע )ח6זזט₪ הוא האחרון שמתרחש בדרך-כלל בעת
פתיחת טופס. אירוע זה מסמן את הרגע בו רשומה מסוימת הופכת לרשומה נוכחית או
לרשומה ומינה. האירוע מופעל גסם כשהמשתמש מנווט לרשומה חדשה, מפעיל
שאילתה, או מרענן טופס.
ניגשים לאירועי טופס על ידי בחירת הטופס או הפקד בתצוגה עיצוב ואחר כך בוחריס
בכרטיסיה אירוע טחפעם) שבגיליון המאפיינים. לחיצה על הלחצן בניה (0וו80)
שבשורת כל אחד ממאפייני אירוע, גורמת לפתיחת תיבת דו-שיח המאפשרת לפתוח
את מודול הקוד שמאחורי הטופס. בחירה בבונה קוד (06ו01ו8 6006) גורמת לפתיחת
שגרת אירוע ב-85/. שגרת האירוע מקבלת את השס 6008 600806[פס, כאשר
6ח00[60008 הוא שס האובייקט ו-6וחזחפע= הוא שס האירוע. למשל, אס בוחריס
טופס ולוחציס על לחצן בניה להפעלת האירוע 61056 (בעת סגירה), שגרת האירוע
תקבל את השס ₪056 חזס". אס יוצרים שגרת אירוע עבור האירוע 6|6%ח0 (בעת
לחיצה) של תווית הנקראת 6חודט!ו, היא תקבל אוטומטית את השם 616% 6שודטו.
פרק 1: היכרות עם 084 | 25
לפניך שלוש שגרות אירוע המתייחסות לטופס המוצג בתרשיס 1.2: ח6ק0 חחסם,
4 הס ו-א6ו01 שטודט!. בעת פתיחת הטופס בפעס הראשונה בתצוגת טופס,
מופיעה תיבת הודעה ובה הודעה '"60ח6קס וחזס+ פחדיי (הטופס נפתח). אישור ההודעה
גורס להצגת הודעה נוספת, ''8060ס! וחזס+ 6חדיי (הטופס טעון). בתוס טעינת הטופס,
לחיצה על התווית גורמת לפתיחת תיבת הודעה שלישית, ''|306! 6 וחסי סוו6'י.
(%6067ח1 45 |08066)ח6כ0 החזס- 500 6זפטוזק
,הסו8וזס?ח1טץ ,".60ח6קס סז סד" 80% 5וו
"2000 266655 116705000 הווה וחה סק"
סט5 0חם
()080.] וחזס= 500 סזעוזק
55006 6|קרחו5 8 15 פוחד '
= ,8000ו0ז0+ח1ש ,".3060ס! סז סד" אס 15
"2000 266655 1670500 הווה וחה סק"
.זז קסזקן 8 5665 פוחד '
"ח0ו6300 צוס)]" = ח00ק6.68ו₪
.5 | 60 3 פחוטוף זס? 600005 סע ס6זבּ סזסר '
"600% דשא" |סחס6ס ד0.00ות6סק - '
5 .א )אס דאס 116
.סקז 8 5665 0 / ,60אזסצ 6000 6+ 8%ח אוסא '
"[6זסח+ ,ור" = %א6 ך.א60א6 דץ 006 6
סט5 0חם
()61166 6ודופ! פט5 6פעווק
,הס זס+ח1סע ,".!306!| 6+ חס סוו6]" א0 50
"2000 266655 16705000 הווה וחה סק"
סט5 0חם
שגרות האירוע גורמות להצגת תיבות ההודעה. לחיצה על תווית מפעילה את שגרת
האירוע א6ו01 ששוזפו. בשיגרה וו משפט יחיד שמציג את תיבת ההודעה (הקו התחתון
בסוף השורה הראשונה של המשפט, מציין שהפקודה ממשיכה בשורה הבאה). שגרת
האירוע ח6ק0 וס כוללת אף היא משפט אחד. שגרת האירוע 1080 חזס" כוללת
משפטיס אחדים נוסף לאה שמציג את תיבת ההודעה. שגרת אירוע זו מגדירה בצורה
דינמית את כיתוב הטופס, דבר זה שימושי במיוחד לטופס שממלא שני תפקידים או
יותר באותו יישוס. השיגרה גס מעבירה את המיקוד לתיבת הטקסט שנקראת
אסא דוס ואחר כך מציבה את המחרוזת *!6זסל ,וי במאפיין 6%ד של הפקד.
שגרת אירוע זו מדגימה שתי טכניקות נפרדות לקביעת מיקוד. הראשונה מבוססת על
השיטה 560-0605 והשנייה על השיטה |ס₪ח601060. הגרש בתחילת שורות מסוימות
מציין שהשורות הן הערות המיועדות לאנשיס הקוראיס את הקוד ו-466655 אינו
מתייחס אליהן. שיס לב כי אחת הטכניקות מופיעה בשורת הערה.
6 הח 2000 460655
שגרות ומודולים
שגרות הן מכולות (9ז6חוסח0ס6) של קוד ב8/. קיימיס שלושה סוגי מכולות:
שגרות משנה (06600765ז00ט5), שגרות פונקציה (65זו660סזק חסטסחט)) ושגרות מאפיין
(65זט660סזק /זסקסזט). למרות החפיפה במספר תפקודים, לכל שיגרה מטרה מוגדרת
וייחודית לה בלבד. 860655 כולל שני סוגי מכולות בסיסיים: מודוליס סטנדרטייס
ומודולי מחלקות. מודולי מחלקות יכוליס להיות מחלקות מותאמות אישית עבור
טפסיסם ודוחות. תוכל לנצל אותס כדי להגדיר בעצמך מחלקות, ולפשט את השימוש
החוזר בקוד של מטלות שגרתיות כגון הוספת עובד חדש, ביצוע הפקדה לחשבון או
משיכה ממנו.
שגרות משנה
שגרות משנה יכולות לבצע פעולות, לחשב ערכים, לעדכן ולשנות הגדרות מאפיין
מוכללות (לעיתים שגרת משנה נקראת בקיצור יישיגרהיי). כפי שלמדנו, 2000 66655
מפעיל אוטומטית שגרות כאשר מתרחשים אירועים, אך תוכל להרתחיב את השימוש
בשגרות אלו. שגרות לעולס אינן מחזירות ערכים וגם אינן מגדירות מאפייניס
מותאמיס אישית של טופס, דוח או מודול מחלקה.
שיגרה מכילה סדרת משפטי הפצ בין המשפטיס טש5 ו- פט5 506 התוחמיס אותה.
המשפט טט5 חייב להצהיר על שם שיגרה. שגרות אירוע מקבלות שמות מסוגנניס מאוד
(כגון +ח6/6 60%[פס), אך שמות של שגרות נקבעיס לפי כללי מתן שמות למשתניס.
עליהס להתחיל באות, אורכס אינו יכול לעלות על 255 תוויס, אין לכלול בתוכס סימני
פיסוק או רווחים וגם לא מילות מפתח, שמות פונקציות או שמות אופרטוריס של
הפצ. שגרות יכולות לקבל ארגומנטיס הבאיס לאחר שס השיגרה. אס השיגרה כוללת
יותר מארגומנט אחד, יש להפריד את הארגומנטיס בפסיקים.
אחת הדרכיס להכיר טוב יותר את נושא השגרות היא השימוש באשף לחצני פקודות
(2870ו/ הסט הוח 60), אשר כותב קוד 88/ למעל 30 פונקציות. כל שעליך לעשות
הוא לבחור הגדרות חדשות בתיבות הדו-שיח. האשף מחבר שגרות פשוטות למדי, ולכן
הן מהוות מקור יעיל ללימוד הנושא. גס מפתחיס ברמה בינונית ומפתחיס מתקדמיס
יצאו נשכרים משימוש באשף, מכיון שהקוד שהוא יוצר יכול לשמש כשלד בסיסי
שעליו אפשר להוסיף קוד מפורט יותר. מפתחיס מתחילים יכוליס לנצל את האשף כדי
להפוך תהליכים לאוטומטיים, כמו ניווט בין רשומות, תחזוקת מסד נתונים, טיפול
כללי בטופס ובדוח, הפעלת יישומים נוספים ומטלות שונות נוספות, כגון הפעלת
שאילתה או חיוג מספר טלפון.
את האשף מפעילים מארגז הכלים שבתצוגת עיצוב טופס. בחר בלחצן אשפי בקרה
(28705ו) |סשח0ס6) ואחר כך בחר לחצן וצייר את הפקד על הטופס. תיפתח תיבת
הדו-שיח המוצגת בתרשים 1.3. בכל קטגוריה מוצעות מספר פעולות. לאחר שתסייס
את המעבר על תיבות הדו-שיח, תוכל להציג את הקוד ב-85/. לחץ על לחצן קוד
(6006) שבסרגל הכליסם עיצוב טופס (חט!65כ וחזסת) כדי לעבור אליו.
פרק 1: היכרות עם הפ 27
הזז : [ חס ] ₪3
בו
= ["] |פפ 46
ש 6 3
₪ :
על ['. = 5 הסססנום שחל השחויו הסקקבח ל לחבצי וס 0 חסו36 לבח
5 ם ?וזו
זסח305 ה636 זס] 3/3306 76ב 5חסו360 לחשזפ/ום
יו וי
ז 0 בח 5חסו30 67 66070
זו 00 0+ 0130005 חחזזם=
355 סל סב 30005 ז6ק2) +זסקסת
₪0 065 60 0ב חסוסב6ווקק ה
ויז 50 0 05פחב!5001ו1]
תרשים 1.3: אשף לחצני פקודות מאפשר ליצור שגרת אירוע מלאה תוך שימוש בתיבות
דו-שיח אחדות
מפתחיס רבים מעדיפים לכתוב שגרות מהתחלה (מבלי להתבסס על שיגרה קיימת).
תוכל לפתוח את חלון הקוד וליצור שגרת אירוע כפי שתואר לעיל, או ליצור שיגרה
רגילה. קיימות שתי דרכיס להתחיל שיגרה כזו, ואת בהתאס למקוס בו תציב אותה.
אס השיגרה מיועדת לטופס או לדוח, לחץ על הלחצן קוד (0006) שבסרגל הכליס
עיצוב. אס הקוד יופיע במודול סטנדרטי שאינו מיועד לטופס או לדוח מסוימים, בחר
כלים (100|!5), מאקרו (סז416ּ!)), ז0ז/6ם ₪3516 [ב156₪/, או לחילופין הקש 11=+):|.
חלון 85/ ייפתח. בחר 156% (הוספה), 66606סזפ (שיגרה), הקלד שס בתיבת
הדו-שיח 5066006 ₪66 ואשר את בחירת ברירת המחדל של לחצן האפשרות טש5.
כך תיווצר מעטפת לשיגרה, ובה המשפטיס 540 ו- פט5 6חם. כעת תוכל להוסיף
לשיגרה קוד.
השתמש בידע שרכשת על מודל האובייקט של 8460655 וכתוב מספר פעולות. וזכור כי
האובייקט 00ח6סכ כולל שיטות רבות. הקלד 606סכ ואחר כך הקלד נקודה. תופיע
תיבת רשימה נפתחת ובה כל הערכיס החוקייס שיכולים להופיע לאחר 606ספ.
במהלך הקלדת הערך, תוצג רשימת ערכיס אפשרייס התואמיס להקלדה (תרשים 1.4).
אס אינך בטוח בערך שעליך להקליד, גלול את רשימת הערכיס ואתר את השיטה
המבוקשת. טכניקה וו מתאימה לכל האובייקטיס ולא רק ל- 6ס6סכ. 670504
קוראת לתכונה זו 1561156056, מכיון שהיא מזהה בצורה נבונה את התשובות
האפשריות. התכונה 56ח556ו!|6ח1 מבצעת למעשה שתי פעולות: מציגה את השיטות
והמאפייניס החוקיים בכל שלב של הרכבת משפט 88/, ומספקת נתוני תחביר על
תכולת השדות הדרושים למשפטי 84/ שבבנייה. פעולות אלו מצמצמות באופן ניכר
את שגיאות התחביר בקוד, ומסייעות לך להתחיל במהירות.
406055 2000 ₪ 8
|<1)- | בא ו =
| |5)=. קפ אוסטחועע 500-105 105 חצ₪ הטספ > ספת שופוע פובם 6|ם %
< <שץ )א ,08095 ₪00-4 5
() עשמשקסנעסץץ1 כעום 6ג11סגוק
מע . ספ
קז ווח %:
. חק 9 | | 4
0
508 00 ':
8
- יח %:
תרשים 1.4: התכונה 56ח%8|!!56ח1 מסייעת להשלים משפט ב8/ באובייקט 6וח6סס.
בהקלדת תחילת המשפט, 56ח16|!!556ח1 מציגה רשימת ערכים חוקיים התואמים לטקסט
שהוקלד
להלן שיגרה פשוטה הכוללת שלוש שורות. השורה הראשונה מקצה מיקוס בזיכרון
לתוצאה מחושבת. השנייה מחברת שני קבועים. השורה השלישית מדפיסה את
התוצאה בחלון 1016613%6 (מיידי). חלון זה משמש כפנקס לאחסון תוצאות בינייס
במהלך בדיקת הקוד. כדי להציגו בחר שפו/ (תצוגה), שסשחו/ 6ז6013וח1. ניתן
להפעיל את השיגרה מתוך עורך 8 על ידי לחיצה במקוס כלשהו בשיגרה ואחר כך
לחיצה על הלחצן וחזס:ו050 / פט5 חטח שבסרגל הכלים הרגיל.
()5008]6013%07זו= עו 5
ווחוס
2 + 1 = ₪650
>חוזק. פטס
סט5 0ח=
במצבים אופייניים יותר, תוכל לקרוא לשיגרה באחת משתי דרכים. תוכל לכלול את
שמה בשורה עצמאית; אם השיגרה כוללת ארגומנטיס כלשהם, תוכל לכלול אותס
לאחר שמה, כשהם מופרדיס בפסיקים. לחילופין, תוכל להקדים את מילת המפתת
וו63 לשס השיגרה. ||63 היא מילת מפתח של %84 המשמשת לקריאה לשיגרה. אם
תשתמש במילה ||68, תחוס בסוגרייסם את הארגומנטים המופיעיס לאחר שס
הפונקציה.
להלן גירסה גמישה מעט יותר של פונקציית המחשבון הבסיסית. בדוגמה מופיעות
שתי שגרות. השיגרה שנקראת 068!60|3%01ח₪5660 מחברת שני מספרים, ומדפיסה
את התוצאה בחלון 8%66ו60חח1. השיגרה קולטת את המספרים באמצעות שני
ארגומנטיס שנשלחיס אליה. השיגרה השנייה קוראת לשיגרה שמבצעת את פעולת
החיבור. תוכל לשנות את המספריסם שהשיגרה מסכמת, על ידי שינוי ערכי
הארגומנטיס שבשיגרה הראשונה. בגירסה מתוחכמת מעט יותר של יישוס וּה, אפשר
לקשור את ערכי הארגומנטיס למשתניס או לשדות טופס.
פרק 1: היכרות עם 84 29
()ז3%0]ט068]6ח68|!5660 ספ
3 ,1 ז068]60|3%0ח5660ץ
סט5 0חם
(566000 ,150 )8|60|8%07 06ח5660ץ פט5
ווחוס
6000 + 6פזן= = ₪650]6
זחוזק. פטטסס
סט 0ח=
שגרות פונקציה
שגרות פונקציה, הנקראות בדרך-כלל פונקציות (פחסטסחט=), שונות משגרות רגילות
במספר מובנים. ראשית הן מחזירות ערך, ולכן ניתן לנצלן בביטויים כאילו היו
משתנים. שנית, הן אינן משמשות כשגרות אירוע. שגרות ופונקציות יכולות לבצע
מטלות. למעט הנקודות שצוינו, ניתן לנצל את שני הסוגיס לביצוע מטלות והות רבות.
פונקציה היא אוסף משפטי 88/, תחומים בין משפטי חסוש6חט] ו- הסוזס6חט- 0חם.
פונקציה יכולה לקבל ארגומנטים בדיוק כמו שיגרה. היא יכולה להכיל ביטוי אחד או
יותר, שלפחות אחד מהם יכול לקבוע את הערך שיוחזר בשס הפונקציה. אפשר לסייס
פונקציה לאחר קביעת ערכה, באמצעות המשפט חסופסחטם זואם. כל פונקציה יכולה
להכיל כמה משפטי חסטסחגת זואם.
פונקציה מסוגלת להחזיר ערך, אך אינה חייבת לעשות כך. פונקציה יכולה להיות
אוסף משפטים המפעילים שיטות ומגדיריס מאפיינים, מבלי להחזיר ערך. זו אחת
התכונות המשותפות לפונקציות ולשגרות.
אתה מתתיל פונקציה ושיגרה באותה דרך, אך בתיבת הדו-שיח 16ט660סזק 06, יש
לבחור באפשרות חסחסחט" במקוס באפשרות טש5. ניתן להפעיל פונקציה על ידי
לחיצה על הלחצן 50/0500 חט₪ שבסרגל הכליס 0ז08ח8ז5 של 85/. תוכל להפעיל
פונקציה גס מתוך החלון 1661316ח1: הקלד סימן שאלה ואחריו שס פונקציה. אס
הפונקציה כוללת ארגומנטים, יש להציבס בסוגריים ולהפרידס בפסיקים. מתוך חלון
זה תוכל להפעיל פונקציות שכתבת בעצמך וגס פונקציות מוכללות של 606655.
תרשים 1.5 מציג את %85 עס פונקציה פשוטה הקובעת אס התאריך המופיע
כארגומנט, חל במילניוס השלישי. כדי לעמוד בכללים המקובלים, נתייחס למילניוס
זה כאילו הוא מתחיל בשנת 2000 במקוס בשנת 2001. הפונקציה 16%א2ז68צ קולטת
תאריך ומחזירה 3 אס התאריך חל במילניוס השלישי, או 0 בכל מקרה אחר. החלון
חח המוצג מתחת לחלון 6006, מציג את תוצאת הפעלת הפונקציה על שני
תאריכים שוניס. החלון 180186 שבתרשים 1.5 מאשר את התוצאה על ידי החזרת
הערך 3 לארגומנט שהוא היוס הראשון בשנת 2000, ואת הערך 0 עבור היוס הראשון
בשנת 1999. שיס לב כי עליך לתחוס את התאריך בין תווי %.
0 הח 2000 460655
|<ום]=. א ו
] 66 - | ] + - |
ססצת 25 (מ023661ם46) 1532221655 מסנפסטסמגוץ שג1גגוק
3 וגגו1ממ1116 86ע3 מ202 7532221656 '
0 = 82%1656צ
מסשמך 812/31/19998 < מ80028861 +1
3 = 76-2076565
5 תס
מסנפסתגוץ הבמס
ב |
2758227550 )81/1/20008(
9
2758227550 )81/1/19998(
0
תרשים 1.5: פונקציה פשוטה שמופעלת מתוך החלון 601806וחוח1
הדוגמה הבאה מציגה גישה מתוחכמת יותר לזיהוי המילניום. הפונקציה פותחת
בהצהרה על טווח התאריכים המדויק. לאחר מכן היא בודקת את הארגומנט כנגד שני
תאריכי ציון. אס התאריך אינו חל במילניוסם הראשון או השני, הפונקציה מניחה
שהוא חל במילניוס השלישי. משפט תיבת ההודעה ההתחלתי מציין את טוות
התאריכים שבו הפונקציה מחזירה תוצאות מדויקות.
6 25 (ח8%61כ 0% )והטוחפ!!ווזה !טוקס הסטססחט= ס6ווטוק
= ,".1/1/3000 6ז06]0 30 12/31/0099 זס10ה 08005 זס1 5אזסעע פוחד" אס ₪5
"2000 60655 167050 חהווהותהזפסזק" ,הסטפווס+ה1סצ
הסחך 212/31/999% => ח61כ 00 +1
1 = וחטוחס6!!וויזה!טקסק
הסחד 212/31/1999% => ה[6ז3 הז ]₪561
2 = וחטוחפו!וויזה!טקסק
6
3 = והטוחסו!ווז ה!טוססק
0ח=
חססס6חט= 6ח=
טווח התאריכיס החוקי של 2000 8460655 הוא 1/1/100 עד 31/12/2999. טווח זה מספק
את דרישות מרבית היישומיס השולחניים. אס תידרש לטפל בתאריכים החורגיס
מטווח זה, שקול תכנות תאריכיס בנפרד ממערכת התאריך הסדרתי של ₪00055.
פרק 1: היכרות עם הפצ 31
הערה:
0 066055 תואם לשנת 2000. כמו גרסאותיו הקודמות, הוא מאחסן את
ערך השנה בארבע ספרות. היישום גם מטפל בצורה תקינה בשנים מעוברות: שנה
שמתחלקת ב-4 היא שנה מעוברת, אלא אם היא מתחלקת ב-100. לעומת זאת, שנה
שמתחלקת ב-400 היא כן שנה מעוברת. שנת 2000 מתחלקת ב-400, ולכן היא שנה
מעוברת. כלל זה הוא קריטי כשמחשבים את ההפרש בין שני תאריכים. תבנית
התאריך הכללי ותבנית התאריך הקצר של 866655 מנצלות את אפשרויות תבנית
התאריך הקצר של מערכת ההפעלה, כדי לקבוע כיצד להציג את התאריך בצורה
תקינה. אם תשנה את ההגדרות האזוריות שבלוח הבקרה להצגת השנה באמצעות
ארבע ספרות, כל תבניות התאריך הכללי תצגנה את השנה כך.
החוקים שתוארו אינס כופיס עליך לפתח יישומיס באופן שמבטיח אותם מפני בעיית
שנות 2000. למרות ש- 2000 66655 תואס לשנת 2000, כל יישוס שלו מועד לבעיה.
בקר באתר 6670050%]: (06180|.00(0/א6372ץ/0165+/+6 חת%66/ 60.ש670501ורח. אווצצ)
לקבלת סקירה על הנושא, ומאמריס ייחודייס על מוצריס והתאמתם לשנת 2000. אתר
5 (5ז6ק8ק 2000 זה6 א ]וזח א06ח/5זק 603 ו 6.60הו5ח+. אושאו) מציג עמדה שונה
בסוגיה זו. 5" משווקת מוצר שנקרא ז105066)0 4600655 |%סד שאמור לזהות בעיות
תאימות שנת 2000 ביישומיס מבוססי 00055(.
תוכל להשתמש בשגרות ובפונקציות כדי לפתח פתרון לבעיה. תרשים 1.6 מציג טופס
שמבוסס על שגרות ופונקציות. הטופס מאפשר למשתמש להקליד ערכים בתיבות
הטקסט שתוויותיהן 1 זפוט ו- 2 זסטוחטא. לחיצה על לחצני /, *, - או +, גורמת
לחישוב התוצאה והצגתה בתיבת הטקסט שז₪6501.
[< )= | הזז ] : [זס)הּ!טוסוהּ:)חזז) ₪3
תרשים 1.6: טופס זה משמש כמחשבון פשוט. פונקציות 8 מאפשרות שימוש בלחצני
הטופס ומציגות את התוצאה בתיבת הטקסט פס בהתאם לערכים שבשתי תיבות
הטקסט האחרות
קוד 54 של הטופס שבתרשיס 1.6 מנצל רק ארבעה זוגות שגרות, כפי שמתואר
בהמשך. ארבע שגרות מטפלות באירועי הלחיצה על לחצני האופרטורים לחישוב.
הטיפול באירועים ממוצה בקריאה לפונקציה ששולפת ערכיס מתוך שתי תיבות
2 החש 2000 460655
טקסט, מבצעת פעולת חישוב באמצעות האופרטור שמצוין על הלחצן שנלחצ, ומחזירה
את הערך שחושב לשגרת האירוע. בתגובה, מציבה שגרת האירוע את הערך המוחזר
מהפונקציה בתיבת הטקסט השלישית בטופס. שיס לב לשימוש האופציונלי בקידומת
6 לפני שמות תיבות הטקסט. משוס שהקוד הינו קוד הטופס שכולל את תיבת
הטקסט, אין חובה לצייןו את שס הטופס. שגרות האירוע מנצלות את הקידומת 6
במקוס שס המחלקה הארוך והרשמי של הטופס, 071ז3|ט68|6וח חחזסם.
6 6065 הסטקס
+וסוקאם הסטקס
6פטסס 15 00565016 הזוס
()א116 חהס 6000 500 סזפטוזק
= ]00650 16
סט5 0חם
()00617 ץע הססס6חטת 6זהעוזק
(2ז6ס רת טאס)|פכ6 + (1זספותטא)ס)!פכ6 = 6506חופט
0050 = זסססתשץו
חסססחט= סח=
()א116 007860 6050 500 6זפטוזק
סש = ]04650 16
טפ 0ח=
()זס86% 07 1/5 הסס6חט= 6זהעוזק
(2 זו טא )6 - (1זספותטא6)ס)|פכ6 = 6506חופ
| = זס86%פט5ץו!
חסססחט= סח=
()66ו61 הססתסו|ק!ט ח6 סט5 6סהעוזק
זסו|קם|טואץוא = 06506 6
סט5 0חם
()זסו!קטוטואץו הסטס6חטת 6זפעוזק
(2ז6 סרח )ופ * (1זסטותטא)ס)!פכ6 = 6506חופ
פוטס = זסווקטוטץו
חססטסחט- 0חם
()א6ו61 חסופוטוכ 0וח6 סט5 6סהּעוזק
ועו ץ א = 6.0650
סט5 0חם
()ז06ועוכ עו הסטסחט= 6זפעוזק
(2ז6 ו טא )6 / (1זסטוטצט)ס)|פכ6 = 6506חופ
0 = זססוטוסץו
חססטסחט- 0חם
הפונקציות והשגרות נמצאות במודול הקוד של הטופס. המשפט חחום שבראש המודול
מצהיר על משתנה שכל שגרות המודול יכולות לגשת אליו. המשתמשים יכוליס ללחוצ
על לחצן אופרטור אחד בלבד בזמן נתון, ולכן ניתן לשתף את 00!₪6505. משפט
פרק 1: היכרות עם 88 33
+וסו|ץא= הסושק0 כופה הצהרה על משתנים בטרס שימוש בהם, כדי להימנע משגיאות
דפוס המהוות מקור שכיח לשגיאות בתוכנית. 2336 6ז3קוח60 הססקס הוא
מפרט ברמת-מודול המקצה משתני מחרוזת ממויניס בסדר שנקבע בלוח הבקרה.
זוג השגרות הבא מדגיס את רוב הנושאיס הקשורים לשגרות, פונקציות ושיטות בהס
עסקנו בתחילת הפרק. הטופס 2ז17168|60!300 כולל שני פקדיס בלבד: תיבת טקסט
שנקראת זטסח1ט ולחצן פקודה שנקרא ז605000876. כשהמשתמש לוחצ על הלחצן,
הטופס מחשב את השורש הריבועי של הערך שבתיבת הטקסט. השיגרה מציגה את
התוצאה בתיבת הודעה.
6 6 60 הסטקס
+וסו|קאם חסטקס
6פטסס 15 00565016 הזוס
()א6116 605008767 500 סזפעוזק
טח 2 30| 68|60חז חס זס זה טף5עוו
סט 0ח=
(6!פטסכ 45 זסטוחטא6ר06ץז)זסז ץז פטפ 6וופטק
רחשו * זסטותטאו6ר06סץוא = 6506אוטפס
אס 50
5 0 056 6 0ח50780]|! 65ח5598%616 |החסשקס '
"0610" |סשחס6ס ד0.00ות6סס - '
5 פטס '
3658/60 ,"2זס68160!3%ז)" ,וח'זס-36 6|056. חספ
סט 0ח=
שגרת האירוע 6|66 6065008767 מפעילה את השיגרה זסז8ט50ץ₪ ומעבירה לה
כארגומנט את תוכן תיבת הטקסט זטסח1)אס. זסזהוף5ץוא מחשבת את התוצאה ומציגה
אותה בתיבת הודעה.
שלוש שורות ההערה האחרונות מציעות פעולות נוספות לביצוע. השורה הקוראת
לשיטה |₪0ח601060 מתארת כיצד להעביר את המיקוד מהלחצן אל תיבת הטקסט.
השורה הבאה (560-0605) מציעה דרך חלופית להשיג תוצאה והה. השיטה 6|056
מתארת סגירת טופס. שיס לב ששורה זו מציינת שס נוסף 2ז168!60!800, באמצעותו
היא מפנה לטופס. יש חשיבות לשימוש בקבוע 8658/60 מכיון שהוא מאפשר לסגור
טופס ללא בקשת אישור שמירה מהמשתמש.
שגרות מאפיין
שגרות מאפיין משמשות להגדרת מאפיינים מותאמים אישית לטפסים, דוחות ומודולי
מחלקה. בסעיף הבא נעסוק במודולי מחלקה, בפרק 7 נציג דוגמאות לשגרות מאפיין.
יש שלושה סוגי משפטי מאפיין: 66% שזזוסקסזק, 16% וקסוק ו- 56% ץצזסקסזס.
תוכל לנצל משפטים אלה להוספת מאפיינים מיוחדיס לטופס. המשפט 066 ץזזוסססזק
ובו ווגו שזסקסזק 0ח= יכוליס להתחזיר ערך, בדיוק כפי שעושה פונקציה. אס מגדיריס
4 ם/ 2000 460655
מאפיין בעזרת משפט 660 שזסססזק בלבד, המאפיין יהיה לקריאה בלבד. מאפיין כזה
נוח לשימוש אס אתה יכול להציג ערך כלשהו, אך לא לשנותו. למשל ציוני מבחניס.
קיימיס מאפיינים שלא ניתן לקרוא, אך יש חשיבות ליכולת לשנותם. לדוגמה, מנהלי
אבטחת מסדי נתונים אינס וקוקיס ליכולת לקרוא סיסמאות משתמשים; הם רק
צריכים להיות מסוגלים לדרוס אותן כשהמשתמשים שוכחים את סיסמת הכניסה
שלהסם. המשפטים 16% שזסססזק ו- ץזוסססזק 6ח= יכוליס לשמש להגדרת סיסמה.
המשפט 565 ששזסקסזק דומה למשפט 16% שזפקסזק בכך ששניהס משמשים להגדרת
מאפיין. המשפט ז6! שזסקסזס מגדיר מאפיין ששווה לסוג נתוניס, כגון מחרוזת (פַח501)
או מספר שלם (ז6606ח). המשפט 565 שאהסקסזס מגדיר מאפיין ששווה להפניה
לאובייקט. משתמשיס במשפט 56% ששוזסקסזק בצירוף הפניות לאובייקטים, כגון הפניה
לטופס או לדות.
מאפייניס רביס הם לקריאה ולכתיבה גס יחד, ולכן לעיתיסם קרובות משתמשים
במשפט )66% ששזסקסזק יחד עס המשפט 16% שזפקסזק או 561 שזסקסזק. במקרה זה, על
זוג משפטי שזסקסזק להיות בעלי שס והה, כדי שיוכלו להפנות לאותו מאפיין.
מודולים
מודול הוא מכולה של שגרות והצהרות, כגון זוסו|קאם חסטקס ו-חופ. קיימים שני סוגי
מודול בסיסיים. הסוג הראשון הוא מודולים סטנדרטיים המוצגים ברשימה לאחר
לחיצה על הלחצן מודולים (65!ט0סו₪) שבחלון מסד נתונים (פפהּפהּזהכ). השגרות
במודול סטנדרטי אינן תלויות באובייקטיס הקיימיס בקוב מסד נתוניס של 60655.
משמעות הדבר, שאין הפניות אל 6 או שמות פקדים ללא קידומות מתאימות של
הפקדים. לעומת זאת, יישומים יכוליס לפנות לשגרות במודוליס סטנדרטיים מתוך
כל אובייקט אחר.
הסוג השני הוא מודול מחלקה (100!6! 6!855) ובו שלושה טיפוסיס בסיסיים: מודולי
מחלקת טופס, מודולי מחלקת דוח ומודולי מחלקה מותאמים אישית. עקרונית,
מודוליס יכוליס לגשת לשגרות שנמצאות במודוליס אחרים. ניתן להוציא שיגרה מחוצ
לטווח ההכרה (56006) הכללי על ידי השימוש במילת המפתח 6זהּעטוזש (פרטי) בעת
הגדרת השיגרה (תרשים 1.7 מציג דוגמה לתתביר). תוכל גס להצהיר מפורשות על
שגרות כבעלות טווח הכרה גלובלי על ידי שימוש במילת המפתח שוופשפ (ציבורי).
מודול טופס הוא מודול של טופס כלשהו שכולל הצהרה או שיגרה אחת לפחות. יצירת
שגרת אירוע של טופס או פקד בטופס, גורמת ליצירת מודול מחלקת טופס. מודולי
מחלקת דוח פועלים בצורה דומה למודולי מחלקת טופס, אך אירועי דוח שוניס
מאירועי טופס, ובדרך-כלל לא יופיע צירוף פקדיס זהה בטופס ובדוח. תוכל ליצור
מודולי מחלקה מותאמים אישית המכילים פונקציות שיטה ופונקציות שיגרה של
אובייקט כלשהו, כגון עובד או חשבון בנק. תוכל לייחס את השיטות והמאפייניס
למודולי מחלקה מותאמיס אישית, כפי שניתן לעשות עס מחלקות מוכללות של
5
פרק 1: היכרות עם 84 | 35
השימוש במודולי מחלקה מותאמים אישית דומה לשימוש בשבלונה ומטרתו ליצור
מופעים (5%80065ח1) חדשיסם של מחלקה. 06655 מאפשר לעשות זאת בשתי דרכיס.
הראשונה, באמצעות משפט וחום אחד שמגדיר את המחלקה וגם יוצר מופע חדש של
המחלקה שהוגדרה. להלן תחביר המשפט:
5 ש 66 5 06ח5%8ח1[פס חחוס
הגישה השנייה מבוססת על שני משפטים. הראשון מצהיר על מופע האובייקט. השני
מגדיר הפניה אל האובייקט. להלן תחביר המשפטיס :
5 88 606ח5%8ח00[1 וחוס
5 ששס)] = 06ח00[105%8 56%
השס 0916855 פונה למודול מחלקה הכולל שגרות מאפיין ופונקציות שיטה ציבוריות.
פונקציות שיטה אלו פועלות כשיטות מחלקה, בדיוק כפי ששגרות מאפיין משמשות
להגדרת מאפייניס. פרק 7 מתאר כיצד יוצרים ומשתמשים במודולי מחלקה מותאמיס
אישית.
ממשק 85
השינוי הבולט ביותר בסביבת הפיתוח של 260655 הוא הממשק החדש של 85/.
מנקודת המבט של ממשק הפיתוח, ממשק %85 מגביר את התאימות בין
0 2600585 ליישומי 01606 האחרים (זס/ש, |66אם ו-6חוסקזטשוסק). בסעיף זה נבחן
לעומק את תכלית החלונות ופריסתם וכיצד משתמשיס בהם לניפוי שגיאות ופעולות
נוספות. כמו-כן נסקור את השימוש בסורק האובייקטיס (ז6פו0ז8 606[טס).
חלונות 85
0 0606055 מציע לפחות שלושה נתיבים אל 85/ של מודוליס שאינס תומכיס בטופס
או בדות. מי שיש לו ניסיוו בפיתוח באמצעות רכיבי 06666 אחרים, יכול לבחור בחלון
מסד נתונים (28190856) את תפריט כלים (10015), מאקרו (סזסגוא), 83516 |בּטפו
ז0פ?ו56. קיצור הדרך מהמקלדת הוא 11=+/4. מקשי הקיצור מאפשרים גם להחליף
בין עורך 8 לחלון מסד הנתוניסם. אפשרות נוספת, אם ברשותך מודולים סטנדרטייס
כלשהם, לח על לחצן מודולים (65|ט0סוא) שבחלון מסד נתונים, ואחר כך לח לחיצה
כפולה על מודול סטנדרטי שברצונך להציג. חלון 85 ייפתח כשהוא מציג את המודול
שבחרת. כדי ליצור מודול סטנדרטי חדש, יש ללחו על לחצן מודולים בחלון מסד
נתונים ולאחר מכן על חדש (שסא) בסרגל הכלים. פעולה זו תפתח מודול חדש וריק.
6 הח 2000 460655
הערה:
צוות הפיתוח של 0166 עובד על פיתוח נתיב הפעלה רביעי של 85 שיהיה
מוכר לחלק מהמפתחים לסביבת 66655. הנתיב החדש יאפשר לבחור, טופס או דוח,
או מודול סטנדרטי בחלון מסד נתונים וללחוץ על לחצן קוד (6006). לחצן זה יפתח
את 85 כשהוא מציג את הקוד התואם לאובייקט הנבחר.
כדי להגיע אל מודול התומך בטופס או דוח, עליך לפתוח תחילה את האובייקט
בתצוגת עיצוב (חו69כ). תוכל ללחו על לחצן קוד (6006) שבסרגל הכליס עיצוב
(ח0ו65כ). חלון 85 ייפתח ויציג את ראש המודול. כדי לעבור לשגרת האירוע המטפלת
באובייקט מוגדר בטופס או בדוח, לחץ על הלחצן בניה (801!0) בשורת המאפיין הרצוי,
בכרטיסיה א*רוע שבגיליון המאפייניס. אס לא קיימת שגרת אירוע לאירוע הרצוי של
האובייקט, הלחיצה על לחצן בניה ובחירה בבונה קוד (זססווטם 0006) תפתח שגרת
אירוע ריקה.
כשתגיע ל-85/, תרצה בוודאי לפתוח את החלונות 605[סזש (המכונה גס 60%5[סזק
זסזסוקאם) ו- 165ו6קסזופ. חלונות אלה מאפשריסם לפתוח ולבחון מודוליס נוספיס של
היישוס בצורה נוחה. החלון 0166%זפ מציג מודולים שאינס תומכיס בטופס או בדוח
ונמצאיס בתיקיה 06₪165. מודוליס שתומכיםס בטפסים ובדוחות נמצאיס בתיקיה
5 0!3585 166655 11670501%/. כדי להציג ולהגדיר את האובייקטיס הקשוריס
למחלקה, תוכל לבחור תיקיה הקשורה לטופס או לדוח. לפתיחת חלונות אלה, בחר
בפקודה המתאימה מתוך תפריט ששו/ (תצוגה), או השתמש במקלדת או בלחצני סרגל
הכלים.
הערה:
כדי שהחלון 65'ו6כסיוש יוכל להציג את האובייקטים של מחלקת אובייקט
ב-460655, אובייקט זה חייב להיות פתוח בתצוגת עיצוב (חַו65כ). לחיצה כפולה על
מודול או על מחלקה בחלון 01605זש מציגה את ההוראות וההצהרות המתאימות
בחלון 0006 התואם, אך האובייקטים מופיעים רק בתנאי שאובייקט המחלקה גם
פתוח בתצוגת עיצוב.
תרשיס 1.7 מציג את קוד מסד הנתוניסם המדגמי של פרק זה, לאחר טעינתו ל-85/.
חלון 66%[סזופ מציג את המחלקה 580!61חז וחזס] שנבחרה. תחת חלון זה ניתן
להבחין בחלון 61165קסיזש המציג את פקד התווית של כותרת הדוח שנבחר. החלון
מראה גם שלפקד התווית שיגרה הקשורה לאירוע >6ו|0ח0. החלון 0066 שמימין
לחלונות 0[66%ז2 ו-67%/65ק0זש מציג את קוד שגרת האירוע. באפשרותך להזיו,
לשנות גודל או לעגן כל אחד מחלונות אלה.
פרק 1: היכרות עם 84 | 37
[אזם) -] ו
| אוסטחו/ 5חז-84 סד הו בנוספ =חפפת1 אופוע 36 ₪6 |
|9 קשש9%]|)א.ה, 55 ₪9 00/|₪.4 5
| ץז
5
6
8
תרשים 1.13: כך נראה חלון 111601816 בעת הפעלת שגרות ופונקציות מוכללות
פרק 1: היכרות עם הפע - 41
תרשים 1.13 מציג שלושה שימושיסם אפשרייס של החלון 6613%6ו₪ו1₪. עסקנו
בפונקציות אלו בתחילת הדיון בשגרות, אך לא הצגנו את הפלט שלהן בחלון
6 חן. הקלדת 5668|60|8007זוחץו] והקשת זפזח= בחלון 6613%6וחוח1, מפעילה
שיגרה שנקראת בשס זה. מופעלת הפונקציה שמדפיסה את התוצאה 3 בחלון. כך גס
בשיגרה זס68|!56600068)60!3%, והתוצאה במקרה זה היא 4. הדוגמה האחרונה מציגה
כיצד מצייניס ארגומנטיס עבור הפונקציה ז068!6|8%0ח5600עו. כל שעליך לעשות הוא
להקליד את שמה, רווח ואת הארגומנטיס כשהס מופרדיס בפסיקים. לדוגמה זו
חשיבות מכרעת, כיון שהיא ממחישה את אופן השימוש בארגומנטיס המועבריס
לשיגרה או פונקציה כדי לחשב ערך החזרה.
תוכל גס לנצל את חלון 1₪116013%6 להפעלת פונקציות מוכללות ומותאמות אישית.
בעבודה עס פונקציה, עליך לציין פקודת הדפסה כדי להחזיר את תוצאת הפונקציה.
באפשרותך להקליד את מילת המפתח שחוזק, ללחוצ על לחצן +, או להקליד את שס
הפונקציה ולסיים בהקשה על זפטח5. הדוגמה האחרונה שבחלון ₪16013%6וח1 מציגה
כיבד קוראיס לפונקציה המוכללת ס6ַז8ם.
סורק האובייקטים
80501 021665 (סורק האובייקטיס) המוצג בתרשיס 1.14, הוא כלי רב-עוצמה
ללימוד נושא מודלי אובייקט. הכלי חשוב במיוחד למפתחיס בסביבת 06655, עקב
החידושיס הרביס שהוא כולל בנושא מודל האובייקט. לדוגמה, 2000 860655 כולל
שפת פיתוח חדשה לגישה לנתונים - 400 (000[66 2818 6%ע60ה) - שתדחק בסופו של
דבר את מקומה של ₪220 (00[605 860655 28%%) ממקומה. מימוש ססג
ב- 2000 406655 מבוסס על לפחות שלושה מודלי אובייקט.
בטרס תציג את מחלקות האובייקט של 400 בסורק האובייקטים, עליך להגדיר הפניה
אל הספריה המתאימה. בחר 15ססד (כלים), 60065ז₪616 (הפניות) כדי לאמת או
ליצור קישוריס אל ספריות מסוג 00ג. פתח את סורק האובייקטים על ידי לחיצה על
הלחצן ז56וס0ז8 66[פ0 בסרגל הכלים הרגיל של 85/. ניתן לפתוח אותו גם באמצעות
תפריט שסו/ או הקשה על מקש הקיצור 2=. אחת הספריות ססג נקראת 8סססגה. בחר
אותה מתוך הרשימה הנפתחת ץזאזטו !/+60[סזק בראש סורק האובייקטים. בחירת
הספריה משנה את תוכן הרשימות 6135565 (מחלקות) ו-9675ו₪16 (חברים) של
הסורק. תרשיס 1.14 מציג את המחלקה 66070566 שנבחרה מתוך הרשימה 6|35565
ורשימה מעורבת של מאפיינים, שיטות ואירועיס המוצגיס ברשימה 965ו₪16. בחר
ערך של חבר ולת על לחצן ! כדי לקבל עזרה מפורטת בנושא. הודות למנגון החיפוש
שלו, סורק האובייקטים מסוגל גם לחפש מחלקות וחברים מוגדריס. השתמש בתיבת
הרשימה הנפתחת השנייה כדי לציין קריטריוני חיפוש. לעיתיס מקבליס כך מחלקות
וחברים נוספיס שנמצאיס בספריות שונות. סורק האובייקטיס מאפשר לבדוק אותס
בנפרד.
2 החש 2000 460655
<ום) = ז0פאסזם )ספןט 0 ש'
| | 4% |-
86010581 01 זט וחפוון 5
' וו 7 | ]= | טחמה זובזב שב
1] ;188 ': הנח 198 חק ב
1 ]| 8>: הזב ₪
> והטח=31 והז 75151 זב
5 18| %>: המהטחם תסוופ 0 ₪
]>> טסו ₪4
ח08 + [סססז ₪
[ 01 3080 9ק ההנח= 8ז מז הו סז ב
38 ₪ [שן
5 9 ההטח= 8607051810 ב
03808 600פת 7 והטח=6הע9 שב
= 960000 ₪5 = ההטח83ח56 שב
4 0]355
8 01 זססחזשו!
תרשים 1.14: מחלקת ערכת הרשומות של 008 ומבחר מחבריה, כפי שהם נראים
בתצוגת זספווסזם 00166
%, סוגי נתונים והצהרות
ב-466055 עליך לציין סוגי נתוניס במקומות רבים, לרבות משתנים בשגרות וטבלאות
נתוניס שמאוחסנות בהתקני אחסון. הסעיפים הבאים עוסקים בנושאי פיתוח
הקשורים לנתוניס שמקורס ב- 4 36% ובשימוש במשתנים בשגרות.
5%
0 60655 תומך ביסודו בשני מנגנוני מסד נתונים. במקור, 860655 היה קשור
למנגנון מסד הנתוניס 265. 2000 860655 כולל גם תמיכה מוכללת במסד הנתוניס
7 567 501. פרק 12 עוסק בהיבטי התאימות של 2000 460655 עס ]567/68 501.
הסעיף הנוכחי עוסק בהשפעות חידושי 4 360 על עיצוב יישוס 2000 860655. חידושיס
אלה מסוגליסם להשפיע על גודל קבצי מסד הנתונים ועל נעילת רשומות, על אופן
הטיפול בסוגי נתוני שדות שנבחריס (כולל שדות המפתח סח6!! (תזכיר), אחווזספץ₪
(היפר-קישור) ו- פחטחסות6זסחו-ססטה (מספור אוטומטי בהפרשיס קבועים) וקישוריס
אל מקורות נתוניס חיצונייס.
פרק 1: היכרות עם הפצ 43
0 8660655 מאחסן את כל נתוני הטקסט וההערות בתבנית 06ססוח. תבנית זו
מחליפה את מערך התוויס מרובה הבתים - 1865 (560 ז6087860 66ץט-טוטח) שהיה
מקובל בגרסאות קודמות של 60655, לטיפול בשפות כגון יפנית, סינית ועוד. 6סססוח
הוא תקן-משנה של 10646 150, המתאר את שיטת הקידוד הדיגיטלית של כל השפות
הכתובות. תקן חדש זה מייצג כל תו באמצעות שני בתיס (65ץ8) ולא באמצעות בית
בודד, כפי שהיה נהוג בשיטה הקודמת. לכן, מסדי נתוניס שמבוססיס במידה רבה על
שדות מבוססי-תו, עלולים להכפיל את גודלם. 3% מתגבר על הבעיה על ידי דחיסת
הנתוניסם ופרישתס מחדש לפי הצורך. הוא דוחס שדות תזכיר (סוח6!]) באורך 4,000
תוויס או פחות, כך חלק משורות שדה נתוני התזכיר נדחסות, אס כי לא כולן.
5 וגם 00 דוחסים אוטומטית תוויסם בקידוד 06ס6וח, אך 0גכ אינו תומך
בדחיסת נתונים מסוג מחרוזת. מתכנתיס שמפתחים ב- 501 266 יכולים לבחור
באפשרות 5510%=חקוו60 הדנצ בעת הגדרת טבלאות.
נוסף לתבנית הייצוג של סוגי הנתוניס, גודל הדף הוכפל ומעתה גודלו 4%8, דבר
שמצמצם את הפעולות הבו-זמניות שמקורן בהתנגשויות נעילת דף ((00)|-0886).
% פותר את הבעיה באמצעות נעילת שורה יחידה. ניתן להקטין את בעיית
הבו-זמניות על ידי נעילת רשומות בודדות במקוס נעילת דפים שלמים. 2000 466658
מאפשר למשתמשים לעדכן שתי רשומות בו-זמנית באותו דף.
הערה:
גודל הדף החדש מגדיל את הגודל המקסימלי של מסד הנתונים מ-1.07 ג"ב
עד 2.14 ג"ב.
נעילה ברמת שורה בודדת היא אפשרות ברירת המחדל הכללית, אך משתמשים
ומפתחים יכוליס לנצל את הנעילה ברמת הדף, כפי שהיה מקובל בגרסאות קודמות.
שדות תזכיר ואינדקסיס אינס תומכים בנעילה ברמת שורה בודדת. גישה לנתוניס
באמצעות 20 או 501 26% מאפשרת לחזור לנעילה המקובלת ברמת הדף. גישה
לנתוניס באמצעות טפסי 866655 ו-040 מתבצעת תמיד באמצעות נעילה ברמת שורה
בודדת.
נעילה ברמת שורה בודדת חיונית לצמצוס התנגשויות בו-ומניות, אך היא כרוכה
בתקורה גבוהה של הגדרה והסרת נעילות רשומה. השפעת התקורה תלויה בגודל
הרשומה יחסית לגודל הדף, ולמספר הנעילות הדרושות במשימה אחת.
המעבר ל-0006סוח() מאפשר לבצע מיון תואס דא פווספחו/ 0פסזסווא, מה שמשפר את
התאימות והביצועיס, מכיון ש- 2000 860655 מסוגל לבצע מיון עקבי תחת מערכות
ההפעלה 95 פשספחו/ ו- זא פשספחו/ כאחד. הדבר אפשרי מכיון ש-95 פווספחו/
תומכת במיון בשפת ברירת המחדל של המערכת, בעוד ש- דא פ5אוססחו/ תומכת במיון
תקין בשפות רבות.
4 ם/ 2000 460655
בנוסף, 6 8856 |1508/ ו- 7 זסוז56 501 תומכות בתקן מיון והה, וכך ניתן לתקנן מוצרי
תוכנה רביס. ברוב השפות 2000 460655 מבצע מיון במהירות גדולה ב-50%, אך בשפות
מסוימות (כגון תאילנדית) הוא עושה את במהירות גדולה אף יותר.
4 3% תומך ביצירת אינדקס של 255 התוויסם הראשונים של נתוניס מסוג תזכיר
(סוח6!!). גרסאות מוקדמות של 66655( ו-36% לא תמכו ביצירת אינדקס של שדות
תזכיר. האורך המוגבל של האינדקס אינו עונה על הדרישות של יישומי שדות תזכיר,
אך יש לו משמעות מיוחדת עבור נתונים מסוג היפר-קישור, שנגזר מסוג הנתוניס
תזכיר. שיטת יצירת האינדקס החדשה מסוגלת לשפר את המיון והחיפוש של שדות
חיפר-קישור.
4 3% גס מאפשר למפתחים לציין ערך התחלתי וערך צעד (סטופצ 500) עבור שדות
מספור אוטומטי בהפרשיס קבועיס (סחסחסוחסזסחו-ססטה). בנוסף, המשפט החדש
= ופד =5ד1ה מאפשר למפתחי 501 6%( לאפס את ערכי ההתחלה והצעד. כדי לשתזר
את הערך החדש של עמודת המספור האוטומטי בוחרים משפט ץ-1דא66105 ז0ם |55
חדש. יש להעביר את ערך משפט 501 כטקסט 501 המיועד עבור השיטה ח6ק0 של
אובייקט ערכת הרשומות (766070560) במשפט ססג. 0גס אינה תומכת במשפט החדש.
4 3% כולל את הטכנולוגיה המשופרת הניתנת להתקנה 154%, בכמה תחומיס. 154%
עשויה להשפיע על הודמנויות הפיתוח ב-866655 כשיש להשתמש במקורות נתוניס
חיצונייסם. הגירסה החדשה | !זאד של 158% מאפשרת לקרוא מסמכי 60)
שמבוססיס על תבנית 6006וח0. 1586 ספַח8ח%6ם החדש כולל שיפורים בתחומיס
אחדים. ראשית, הוא קורא אינדקסים מתוך 56/8 06ח8ח6א5, דבר שמאיץצ בצורה
דרמטית את תהליכי החיפוש אחר רשומות במקורות נתונים של 6פַח608אם. בנוסף,
הגירסה החדשה של 1546 תומכת בפנקס הכתובות של פשסשחועש
(₪006 4007655 פשססחוץ) של הלקוח 655זקאם א>ססטטס אספסזסווא. בעסקיס קטניס
שבהם הדואר מיועד בעיקרו למשלוח חיצוני ולא פנימי, יש בכך יתרונות משמעותייס
(אם כי בתחוס הפריון האישי בלבד). שיפור נוסף הוא יכולת 360 לאחזר לקוחות
*סס%וס מוגדרי-התאמה אישית וגסם של לקות א>ססשטס תחת -567/6 6בַההחה6אם.
משתמשי מסדי הנתוניס 08856 ו-287800% יכוליס להמשיך לגשת למסדי נתוניס אלה
עס זכויות קריאה וכתיבה באמצעות 5 36%. משתמשיס הזקוקיס לתמיכה בגירסה
עדכנית יותר, חייביס להשיג עותק של 6חוסַח= 08180856 סחהוזסם מיצרן תוכנה אחר.
סוגי נתונים
הפ משתמש במשתניס לשמירת תוצאות חישוב, להגדרת מאפיינים, שליחת
ארגומנטיס לשיטות ולהעברת ערכים בין שגרות. כדי שיתפקד בצורה יעילה, 84
מבסס משתניס אלה על קבוצת סוגי נתוניס. בסעיף ה נתמקד בסוגי נתוניס של
משתנים. סוגיס נוספיס של נתוניס דומים באופן כללי, אך 860655 מאפשר להשתמש
בסוגי נתוניס שוניס לכל משימה.
פרק 1: היכרות עם הפצ - 45
הטבלה שלפניך מציגה את סוגי הנתוניס העיקריים ודרישות האחסון שלהס בתוכניות
הפ/. מפתחים הזקוקים לרמות דיוק גבוהות בחישוביהס המספריים יכולים לנצל
לשם כך את סוג הנתונים |08ו66 (עשרוני) בתור קבוצת-משנה של סוג הנתוניס
%ח8וזה/. סוגי הנתוניס |03ו60 הס מספריסם שלמים לא חתומיס של 12 בתיס שקנה
המידה שלהס מציין את המספר המרבי של ספרות עשרוניות שניתן לאחסן מימין
לנקודה העשרונית. לא ניתן להצהיר על סוג נתוניס |08ו66 באמצעות משפט וחופ, אך
אפשר לאחסן סוג נתוניס כזה על ידי הפיכת 880% בעזרת הפונקציה 6066. כללית,
רצוי להשתמש בסוג הנתוניס הקטן ביותר האפשרי, כדי להותיר מקוס בויכרון עבור
משתנים נוספים ופקודות ביצוע של יישומים. יחד עם ואת, כאשר זקוקים לדיוק גדול
בפעולות חישוביות, ניתן להשתמש בסוג הנתוניס |18וס6פ.
אס לא תצהיר על משתנה בתור סוג מבין המוגדריס, 460655 יקצה לו את סוג הנתוניס
+חהּוזה. סוג נתונים וה הוא גמיש, מכיון שהוא מטפל בערכיס מספריים ובערכי
מחרוזת כאחד. סוג הנתוניס +חהּווה יכול לאחסן את כל שאר סוגי הנתוניס חוצ
מסוגים מוגדרי-משתמש (שנגזריס מכל שאר הסוגיס). כש-84/ מבצע פעולה על שני
נתוניס מסוג +חהּוז3/, עליו לאחזר תחילה את תוכן הנתון השני ולהמיר את התוצאה
לסוג המשנה של ה-+חהּוו3 הראשון. תהליך וה מאט את הטיפול במשתני 8806
לעומת משתניס מסוגים אחרים. בנוסף, סוג המשנה של הנתוניס המוחזר באמצעות
הפעולה, עלול להיות שגוי בהקשר של היישוס.
באפשרותך להשתמש בפונקציה 06ץ1ז3 כדי לקבוע את סוג המשנה של סוג הנתוניס
+ח8וזה/. הפונקציה קולטת נתון מהסוג זח8וז3/ ומחזירה קבוע 88/, שמציין את סוג
המשנה של הערך בתור סוג נתונים 880% /. לדוגמה, 6|ספוז3ּ/ץויזהצ מכיל את הערך
''י!סזסר ,ורזיי, הפונקציה (6!סהוזב3ּ/ץוזזהּצ)6קץ דוה מחצירה את (8)פחוחפפץ. באופון
דומה, | אם 6ַטהח8/ץ0זא/ | מכיל| את התאריך +41/1/2000, הפונקציה
(6|ס8הץו]וה/)6קץדזה תתזיר את (7)סהוטפסט. עיין בתיעוד המקוון או
ב-ז6פ5אוסז8 66%[פ0 (סורק האובייקטיס) לקבלת רשימה מלאה של קבועי סוג-משנה של
זחהוזה המוחזרים על ידי 6סץדזּ/.
פונקציות ההמרה של 88/ מאפשרות להמיר סוג נתונים +ח8ז8 לסוג-משנה מוגדר,
וגם לציין את סוג התוצאה לה מצפים. לדוגמה, (6|ספוזה8ץויזהע) ס6 מחזירה את
תוכן המשתנה 6!ספוז8/ץויזז בתור משתנה מהסוג 6!טטסס.
על אף הסיכוי לקבלת טעות והצורך בעיבוד נוסף, זוזג הוא סוג נתוניס מקובל. סוג
ברירת המחדל של נתוני טבלה, שאילתה, דוח ושדה טופס, הוא זחּוז8. אס תשאיר
בטבלה שדה לא מוגדר, הוא יחזיר ערך ריק (ווטא) ברגע שתפעיל עליו שאילתה (בהנחה
שלא נשלחו אליו נתוניס), שהוא אחד משני ערכי הנתונים המיוחדיס של %חפוזהּ/.
הערך ווטא מציין נתון חסר, לא ידוע, או לא ישיס. הפונקציה ווטא15 של 8/ בודקת
אס הערך שנבחר הוא ווטא, והאופרטור ווטא 15 בקריטריון שאילתה עושה פעולה זהה
בשדה. טפל בזהירות במשתנים המכילים ווטא, מכיון שערכי ||טוא נוטיס להתפשט.
צירוף של משתנה ששווה ל-ווטוא עס משתנה כלשהו אחר, יחזיר תמיד ערך ווטא.
6 הח 2000 466655
סוגי נתונים של משתנים
ד
מש שו שמשמו
0
אחך 0 >
יחיד (8!חו5) 8 עד 1.4012985-45- עבור
ערכים שליליים;
5 עד 3.402823538 עבור
ערכים חיוביים
כפול (6!טטסם) 8 עד
4.... עבור
ערכים שליליים;
4] עד
8 עבור ערכים
חיוביים
מטבע (עסח6זזטו0) 8 0 עד
פוצע קנט ו ,7 203, 922,337
1 בינואר, 100 עד 31 בדצמבר 9999
אובייקט (00[660) הפניה לאובייקט (ראה משפט 56%
בעזרה המקוונת).
מחרוזת קבועה אורך המחרוזת 0 000 0 תווים
פחושס 60או=
מחרוזת משתנה 0+אורך עד כ-2 מיליארד תווים
(9חו50 0 "7 >
זח8ח8/ (עם תווים) 7 - -
המחרוזת
מוגדר משתמש תלוי באלמנט'ם | סך האלמנטים המרכיבים את סוג
הנתונים המותאם אישית
פרק 1: היכרות עם הפצ 47
% הערה:
מאחר שרק נתונים מהסוגים זחאוז8/ יכולים לקבל ערכי ווטא, עליך להשתמש
בסוג זה בכל מקרה שהיישום שלך יכול לצאת נשכר מכך. ערכי |ווא מבטלים את
הצורך בערכים שרירותיים לציון נתונים חסרים בשדה או בסוג משתנה.
מילת המפתח שמחם (ריק) משמשת בתור סוג-משנה ומייצגת ערך משתנה שלא
אותחל. ב-84/ משתמשיס בפונקציה 1550 כדי לקבוע אס משתנה הוא בעל ערך
כזה. שקחם, ווטא, 0 ומחרוזת ריקה מתוויס (יייי) שוניס וה מזה. כש-84/ הופך משתנה
מסוג זח8וז/ שערכו שקחם, הוא הופך את המשתנה ל-0 או ל-יייי, בהתאס לסוג הערך
ההולס ביותר במקרה זה, מספר או מחרוזת.
כשעליך לקרוא לפונקציות 401 של פושססחו/ באמצעות ספריות קישור דינמי (1ו),
לעיתים תודקק למשתנה מוגדר-משתמש. עליך להצהיר על משתניס מוגדרי משתמש
ביו המשפטים 6קץד ו- 6קץד 0חם. השורות הבאות בין שני משפטים אלה צריכות
להגדיר את האלמנטיס של סוג המשתנה המותאס אישית. למשל, אפשר להתייחס
לספר בתור אוסף אלמנטים, כולל א158 (מספר ספר סטנדרטי בינלאומי), שס הספר,
שס המחבר (או המחברים), המוייל ומספר דפי הספר. באפשרותך להגדיר את סוג
הנתוניס המותאם אישית כך:
0% סמץך
9חס] 35 158%
509 35 סוד
58 35 פזסחסט
509 35 זסתפו!פנוק
1 85 פסִחָבק
6ץד 0חם
אססםץו פט5
אססם 35 אססםץןאטסט הזוס
0 = 00%.158ם ץ]]עוסט
"2000 06655 0506ז6ו] סחוותותהזטסזק" = 6חוד.>ססםץואטסט
"ח0050כ א6ו₪" = פזסחסטה. >ססםץזעוסט
"27655 116705086]" = זסתפו|סטק.>ססםץואטסט
0 = 8065ק.6ססםץעסט
50 06ח=
מוסיפים את ווג המשפטים 6סץד ו-6קץד 0חם באזור ההצהרות הכללי במודול.
השיגרה 800%ץ יוצרת מופע (66ח5%9חו) של משתנה מוגדר-משתמש שנקרא 800%.
8 הח 2000 466655
הצהרות
ניתן להצהיר על משתניס וקבועיס (קבוע הוא משתנה מיוחד שלא ניתן לשנות את
ערכו לאחר שנקבע במשפט 5090%ח600). להצהרה שני תפקידיס: היא קובעת את טווח
ההכרה (560006) של המשתנה (התחוס שבו היישוס מכיר את המשתנה), ומגדירה את
סוג הנתוניס של המשתנה. אלו שתי סיבות טובות להצהיר על משתניס בטרס
מתחיליס לטפל בהם. באמצעות המשפט זוסו|סאם חסק0 שבאצור |8ז6ח66 (כללי) של
המודול תוכל לדרוש הצהרה על משתנה.
המשפט סווטטם (ציבורי) באזור ח800ז60!3כ (הצהרות) של מודול משמש כדי להצהיר על
משתניס שהיישוס יכול לטפל בהס מתוך שיגרה כלשהי שנמצאת ביישוס, כולל אלו
שנמצאות במודוליס אחריס. באפשרותך להשתמש במשפט סזפעוזס (פרטי) כדי להגדיר
במפורש משתנה כבעל טווח הכרה מקומי במודול (הדבר אינו הכרחי, כיוו שהמשפטיס
וס ו-5%906 מצהיריס על משתניס שהסם פרטיים במודול, כברירת מחדל).
ההצהרה חופ שומרת מקוס בזיכרון עבור משתנה רק עד סיוס השיגרה שבה מופיעה
ההצהרה על המשתנה. משמעות הדבר, שמשתניס שהוצהרו באמצעות משפט חום
מאבדיס את ערכם לאחר הקריאה לשיגרה, עד הקריאה הבאה. משתניס שהוצהרו
בעורת משפט 50806 נשמריס לאורך חיי המודול או עד אתחול היישוס או הפעלתו
מחדש (אחד השימושים של הצהרה על משתנים סטטיים הוא עריכת סיכומיס או
קביעת מספר הפעמים שהשיגרה הופעלה).
הערה:
באפשרותך לנקות את הערכים מהמשתנים הסטטיים בשיגרה על ידי בחירה
באפשרות ₪656% מתפריט חטח של 85/.
ניתן להשתמש במילת המפתת 5:86 בהצהרות על פונקציות ושגרות וגם בהצהרות על
משתנים. מילת המפתח פועלת בצורה והה עבור פונקציות ושיגרות, בכך שהיא
משמרת את כל המשתנים המקומיים בפונקציה או בשיגרה, לכל אורך חיי המודול.
מוסיפיס את מילת המפתח 45 להצהרה חוכ או 5906, כדי לציין סוג נתוניס של
משתנה. המשפט ז0606ח1 45 זסטותטאץויחו וחום מצהיר על סוג הנתונים של המשתנה
זסס וטא ץוחו בתור מספר שלס.
מערכים
5 מאפשר להצהיר על מערכים (פְזזה). מערכים הס משתנים המכילים רשימות
ערכיס מאותו סוג. מערך יכול להיות רב-מימדי, ומספר המימדיס שלו עשוי להגיע
ל-60. לדוגמה, המשפט ז0606ח1 45 (1 ,356076502 חזום, מקצה מערך דו-מימדי של
שישה אלמנטיסם: שלוש שורות ושתי עמודות של מספריס שלמיס (הספירה מתחילה
מ-0).
פרק 1: היכרות עם הפצ 49
כברירת מחדל, מערכיס הס מבוססי-אפס. המשפט (6)1האץוץזהּ וחום כולל שני
אלמנטיס, שהקוד :כול להפנות אליהס בתור (6)0וחהאץוץזה ו-(1)סותהּאעואץזהּ.
השתמש במשפט 1 8856 חס0ק0 באזור 6683780005 כדי לציין מערך כמבוסס-אחד.
השיגרה שלפניך מצהירה על מערך בן שני אלמנטים, מגדירה את ערכיו ומדפיסה את
האלמנטיס שלו ואת סכוס האלמנטים בחלון 86ו60וחוח1.
()65% דעְ3זז 5
ץח6 זט 5 |בססד ,שסה6זט6 5 (65)1פח6קאם שץוץזהּ חזוס
5 = (565)0ח6קאםץשץזהּ
5 = (65)1פח6קאם ץץזה
(565)1ח6קאם ץ]ץזה + (565)0ח6סאםץוץזה = |פוסד
| סד 8 " = " 8 (65)1פ5ח6קאםץוץזה 8 " + " 6 (65)0פחס6סאםעץוץזה +חוזק. פטססס
סט5 0חם
המערך 65פ5ח6קאם/וץז מכיל שני אלמנטיםס שסוג הנתוניסם שלהם הוא ש6ח6זזט6
(מטבע). סוג נתוניס זה כולל שמונה בתים, ולכן המערך 565ח6קאםץץזה כולל 16
בתים. מאחר שבאפשרותך להגדיר מערכים בעלי מספר רב של מימדים ומחרוזות
באורך משתנה, משאבי הזיכרון עלוליס להתכלות במהירות.
אתה משתמש במילות המפתח חות, 50806, 6ו|טטק ו-6זפעוזק להגדרת טווח ההכרה של
מערך, כמו עבור משתניס סקלאריים. מילת המפתח ההו₪60 משמשת לשינוי דינמי של
מימדים במערך רב-מימדי.
לוגיקה של התניות ומבני לולאה
ביצוע מותנה של קוד ולולאות מהווה מרכיב בסיסי בפתרונות מבוססי-קוד רביס. 84
כולל מבחר אפשרויות גדול ליישוס תהליכיס אלה. הסעיפיס הבאים סוקריס את סוגי
המשפטים העיקרייס המאפשרים ביצוע מותנה של תוכנית וכוללים דוגמאות מעשיות.
הסחד...ז
שגרות רבות אינן ממלאות את תפקידן על ידי ביצוע סדרתי של שורות הקוד. לעיתיס
רוציס להתנות את ביצוע הקוד - לדלג על שורות מסוימות ולבצע שורות אחרות. אחת
הדרכים הגמישות והבטוחות לעשות זאת בשגרות 84/ היא בעזרת משפטי חסחך...1.
משפט בסיסי זה כולל למעשה שלוש וריאציות בסיסיות. הראשונה היא ביצוע מותנה
של קטע קוד פשוט. כך נראה התחביר שלה:
חסחך הסש/טחס6 +
5
+ 06ח=
0 הח 2000 460655
קטע מהסוג 6ַחם...16 יכול להכיל בתוכו משפט אחד או יותר. המשפט 1 0ח5 מציין את
סוף הקטע. 84 מבצע את המשפטיס שבתוך הקטע, רק כאשר תנאי מסוים מתממש
(כלומר, מקבל ערך 6טזז). ניתן לקנן קטעי 6חם...)1 רביס זה בתוך זה.
הווריאציה השנייה של משפט חסחד...1 מאפשרת לקוד לבצע אחד מתוך שני קטעי
קוד. כך נראה התחביר שלת:
חסחד הסש/טחס6 +1
1
6
72
+ 0ח=
סוג משפט זה מבצע קטע קוד אחד מתוך שניים. כשמתמלא תנאי הביצוע, מתבצעיס
משפטי הקבוצה הראשונה. אחרת, מתבצעיס משפטי הקטע השני.
עיצוב וה גמיש יותר, אך הוא עדיין מגביל אותנו לשתי אפשרויות בלבד. לאמיתו של
דבר, באפשרותך לקנן משפטי חסחד...)1 כך שמספר האפשרויות יגדל, אך 88 כולל
דרך נוספת שמפשטת ביצוע מותנה של קטע קוד אחד או יותר, עס התחביר הבא :
חסחדד 1 הסש/טחסס )1
5" .,.
חס ד 6000/0002 )561|₪
5" .,.
6
65
+ 0ח=
צורה זו של משפט חסחד... משלבת תנאיס רביס ושלוש קבוצות משפטים, או יותר.
באפשרותך להוסיף קבוצות משפטיס ותנאיסם חדשים על ידי הוספת משפטי )₪156
ובהס התניות ומשפטים משלהם. דרך וו מציעה אפשרויות רבות יותר מקודמתה, לא
זו בלבד שהיא מאפשרת מספר גדול יותר של תנאים, אלא שהיא גס מגבילה את
הביצוע של כל קטע קוד (למעט האחרון) למקרה שבו תנאי הבדיקה מתמלא במלואו.
בקטע 6ַחם...1 הקודס, משפט חסחך...+1 השני מבצע את קטע המשפטים השני כל פעסם
שהתנאי שבמשפט הראשון אינו מתמלא. כאשר אי-מילוי התנאי הראשון אינו מהווה
אוטומטית סיבה לבצע את קטע הקוד השני, יש צורך בתבנית התניה נוספת.
עיין בטופס שבתרשיס 1.15. הטופס כולל תיבת טקסט, קבוצת לחצני אפשרויות ולחצן
פקודה. קבוצת לחצני האפשרויות מאפשרת למשתמש להעלות את הערך שבתיבת
הטקסט בריבוע או בחזקת 3. כדי לחשב ריבוע של מספר, יש להקליד את המספר
בתיבת הטקסט, לבחור באפשרות 6 5036 ולבסוף ללחו על להצן 61טקוח 60.
פרק 1: היכרות עם 84 - 51
|<וםן- זי הא ו וו -
| :)סח
שקץיך 6פווקוחס >
זו ו 6 זו זטס5 65
>! |
תרשים 1.15: טופס לחישוב חזקות ריבועיות או חזקות שלישיות של מספרים
הקוד שלפניך מציג את שתי השגרות שמאפשרות לבצע העלאה בריבוע. שגרת האירוע
א זו 6000 | מגיבה | ללתיצה. | אס קבוצת | לחצני | האפשרויות
(6ץ דו6?קוה60קס) מקבלת את הערך 1, סימן שהמשתמש בחר באפשרות 1% 5086
(לחצן האפשרות העלאה בריבוע). אס קבוצת לחצני האפשרויות שווה ל-1, השיגרה
קוראת לשיגרה ז6ז1/508. אחרת, היא מסתיימת מבלי לבצע חישובים כלשהם.
()א6116 זס 6060 5
חס ד 1 = 6מץ דסטקו 60פָקס זז
סטןה .זחא זס הפשו
זז 0חם
טפ 0חם
(6|פטסכ 45 זסטוחטאס סע )סוה סע פט5
טסו * זססוטא6 רע = 6506הופ
"2000 660655 1670506 פהוהחרחה טסוק" , הסטהוזסזה1פע ,00165016 אס5 15
50 06ח=
השיגרה 6166 6060061 מנצלת את מבנה חסחד...)1 הראשון. פעולתה העיקרית
היא ביצוע מותנה של קטע קוד אחד. במקרה זה, הקטע מכיל שורה אחת בלבד. אס
המשתמש בוחר באפשרות זו 6זטף5, 1508701 מכפילה את הערך שבתיבת הטקסט
בעצמו, ומציגה את התוצאה בתיבת הודעה.
אם המשתמש בוחר באפשרות 1 6056, בטרס לחץ על לחצן הפקודה, הקוד לא ייבצע
פעולה כלשהי. קבוצת האפשרויות מחזירה את הערך 2, אך הקוד אינו כולל תנאי
לוּיהוי מצב וּה. לאמיתו של דבר, הקוד אינו מכיר קבוצת אפשרויות אחרת מ-1. הקוד
הבא מציג גירסה חדשה של שגרת אירוע יחד עס הקוד שמטפל במצב בו המשתמש
אינו בוחר באפשרות זו 6ז8ף5.
2 הח 2000 466655
()א6116 60606 5
חח ד 1 = 6קץ דסלטקוח 600פקס 1
ס6טןה .זחא זסזהס5ץו
6
סטןהּ/.+טסח01אס זססט6ץו
+ 0חם
סט5 0חם
(6!פטסכ 45 זסטהטאוסה6סץוז)זססט6ץו פט5
6טטסכ 5( +|0פסח!וס חוחוס
3 + זססוחטאזסח+0ץוא = %|650אוטפס
"2000 60655 1670506 פהוהחרחהזטסזוק" , הסטהוזס+ה1פע ,000165016 אס5 150
טפ 0ח=
השיגרה 616% זפזטסו060וח6 מנצלת את התבנית השנייה של משפט חסחד...1. היא
קוראת לפונקציה ז6ז8ש₪1/50 אס 6סץדוסטקוה ס6פָקֶס שווה ל-1, אך בכל מקרה אחר
היא קוראת ל-זפפט6ץו!. הקוד פועל בצורה תקינה כשהמשתמש בוחר באפשרות 6פט6
;. לעומת זאת, נותרה לפחות בעיה אחת: הטופס נפתח מבלי שאפשרות פעולה כלשהי
נבחרה מראש.
אס המשתמש מקליד ערך בתיבה ולאחר מכן לוח על לחצן הפקודה, הטופס יחזיר
את החזקה השלישית של הערך על אף העובדה שהמשתמש לא בחר באף אחת
מהאפשרויות. הבעיה נעוצה בתכנון המשפט חסחד...1. אנו וקוקיס לווריאציה
השלישית עס שני תנאים נפרדיס: אחד להעלאה בריבוע והאחר להעלאה בחוקת
שלוש. הקוד שלפניך מדגים זאת :
()א6116 60600 5
החד 1 = 6סץ ד6זטקוח 60פקס )1
סטןה .זחא זס הפו
חח ד 2 = 6קץד66טסח ס8600סס + ₪156
ס6טןהּ/.זטמח0אס זססט6עץו
6
"חסוזקס חו טק 600 561666 6856" אס וח
+ 0חם
סט5 0חם
דוגמה זו כוללת שני תנאים. האחד בודק אס קבוצת האפשרויות שווה ל-1, והאחר
בודק אס היא שווה ל-2. אס תוצאות הבדיקה אינן עונות על אף אחד מהתנאים,
השיגרה תציג תיבת הודעה ובה הוראה למשתמש לבחור את סוג החישוב. קל ופשוט
יהיה עתה להוסיף לחצני אפשרות חדשים לקבוצת האפשרויות ועל ידי כך להגדיל את
מיגוון החישובים. כל שעליך לעשות הוא להוסיף משפט ₪156 חדש ובו תנאי מיוחד
עבור כל לחצן שהוספת.
פרק 1: היכרות עם 84 | 53
כפי שתוכל לראות, המשפט חסחך...16 מצטייו בגמישותו. באפשרותך לנצל אותו
לטיפול באפשרויות בחירה רבות, אך הוא מטפל בפריט אחד או שנייס ביתר הצלחה.
תחביר המשפט אף הוא משתנה קמעה בהתאס למשימה שברצונך לבצע.
56] 6
המשפט 6856 56!60% מבצע פעולה אחת: הערכת ביטוי וביצוע מותנה של קטע קוד
אחד. כשמטפלים ביותר מאפשרות מותנית אחת או שתיים, קל יותר להגדיר ולתחזק
משפט 6856 56/6606 לעומת אוסף משפטי חסחד...)1. התחביר הכללי של 6856 56|60
הוא:
50|66% 60356 7051 6005500
5-1 ח6%0/055/0 6856
65
06856 6%0/655/0ְ0 2
65
0856 6
65
6% 6חם
משפט 0856 56/60 מעריך ביטוי בדיקה התחלתי. הביטוי יכול להיות פשוט כמו
פרמטר שהועבר, או מורכב כמו ביטוי המשמש בהנדסת טילים. 51| חסו655זקא6
ו- 5-2!! חסו655זקא6 הס טוותים (או ערכים מוגדריס) עבור ביטוי הבדיקה. הגדרת
רשימות ביטויים יכולה לכלול, קבועים, סדרת פריטיס מופרדים, או ביטויי אמת או
שקר. כאשר תוצאת רשימת ביטוייס היא אמת מכיון שהיא תואמת לביטוי הבדיקה,
יתבצע קטע משפטים מתאים. דוגמת התחביר שהוצגה מציגה שתי רשימות בלבד, אך
תוכל להגדילה על ידי שילוב משפטי 6856 נוספים. משפט 556 6856 הוא אופציונלי,
אך הוספתו תורמת לעמידה בכללי התכנות התקני. אפשרות זו לוכדת ערכי ביטוי
בדיקה שלא נלכדו על ידי משפטי 6856 קודמים. ניתן לקנן משפטי 6856 566% וה
בוה; כל מופע חייב להתחיל במשפט 6856 561600 ולהסתיים במשפט 6856 חם.
תרשים 1.16 מציג משפט 6856 56!66 המשמש בשגרת פונקציה. שיגרה זו מטפלת בזוג
מספרים שהועברו אליה באמצעות אחת מארבע פעולות מספריות. ארגומנט מחרוזת
מציין את הפעולה, והחלון 1₪16613%6ח1 (מיידי) מציג את תוצאת הפעולה שנבחרה.
כפי שניתן לראות בחלון המיידי, הבדיקות אינן רגישות לאותיות רישיות.
פעולה שאויתה בצורה שגויה גורמת לתוכנית להגיע למשפט ₪56 6856. במקרה זה,
הפונקציה תדפיס הודעה בחלון המיידי, בה ייאמר כי הפעולה שנבחרה אינה חוקית.
4 ם,/ 2000 460655
[<זם]- | (006-:)) 65!קחובּ 5!הּוז 01חז - [זטוקבּתם
| - 0 ] | - ה )]
(אַת1ע585 25 מ8610עעק0 ,2עשמאגת01]1 ,1משכגת11כה) סמשסגועונס6 מסנפקמגוץ 116עוק
8010ע6ע0 0836 815085
"מ20331610" 0836
2משמגוז]1 כ[ + 1משמאגת11 כ = כמשסגוקותסס
₪ "מס1סטהעסנום" 0836
2משמונגון]1 ₪ - 1 משמגו]11 כ = 0מסגוקואסס
"מ11₪8610ע1םס1גו]" 0856
2שמנגוןן1 כ * 1תשמן11 ₪2 = 0משסגוקועסס
"מ1510ט21" 0836
2שמגוןן1 כ / 1 עשמגוזן1 כ = 0ששסגוקועסס
6 0%835>6
".18[הט ססםת 13 מ8510ע6ק0" סמבמקע.צגומסכ
ומס
מסנססמגוץ במם
6
("ת1,2,"883₪31510) 0עפסגועטנסש?,1) 0משסגועטנסש?
3
("מס1ססהמסמעופ",1,2) סעשסגוקמסס?
1
("ת1163510ע161גו",1,2) 0מפסגועטנסש?
2
("מ1,2,"8101510) סמשסגוקמסס?
5
("מ1,2,"83833160) כמשסגוענסס?
|. 8118 ססם 13 מ88010ע025
תרשים 1.16: שגרת פונקציה והפלט שלה ממחישים את השימוש במשפט 6856 56|606
+אסא... וס
המשפט 6א...זס] משמש בעיקר לביצוע קטע קוד בצורה חוזרת (לולאה), מספר
פעמים ידוע. ניתן לצאת מתוך הלולאה באמצעות המשפט זסח זואם, ולכן ניתן לנצל את
המשפט %א6א...זס= כשלא יודעים בדיוק כמה פעמים יש לבצע את הקוד. אך יש לציין
את מספר הלולאות המקסימלי. התחביר הכללי של משפט >6א6א...זס] הוא :
0 560 5000 0 578/11 = ש)תטס0 זס=
5
חסחדד מסש/סחסס +
זסת זואם
זז 0חם
5
"6007 %א6]
לולאת זס] מתחילה בשורה זפחטס6 זס] ומסתיימת בשורה זססחטס6 6% המשפט
%א6)...זס] מאתחל את זססחטס6 לערך של 5086 ולאחר מכן מבצע את המשפטים שבין
זס= ו-6%0א. מהלך הביצוע חוזר תמיד לראש הלולאה, כש-זססחהטס6 גדל בערך
האופציונלי של 5060 (ערך ברירת המחדל של 5060 הוא 1).
פרק 1: היכרות עם 084 | 55
בדוגמה, משפטי לולאת זס] מבוצעים פעס אחר פעם, עד שערכו של וסזחטס6 עובר את
זה של 5000 (או כאשר זסזחטס6 קטן מ-5600 במקרה ש-5080 שלילי). בשלב זה השליטה
עוברת למשפט הבא מייד לאחר זססחטס6 6א6א. המשפט האופציונלי זס] אש גורס
ללולאה להסתיים לפני ש-זפזחטס6 עובר את הערך של 5500.
ניתן לקנן משפטי 6א...זס] זה בזה. לולאה פנימית מעבירה את השליטה ללולאה
חיצונית כשהערך של זפזחטס6 עובר את זה של 5600. 84 מסוגל לגרוס לשגיאת ומן
ריצה, אם הוא נתקל במשפט ₪6 ללא בן זוגו זס=, אך סביר יותר שלפני כן תקבל
שגיאת תחביר.
השיגרה זס-חט60 הבאה מיישמת את הלוגיקה של לולאת 6אפא...זס ובו-בומן
מבססת את טכניקות העבודה עס מערכיס והצהרות 50806 (המערך ע8זוהץץזהּ כולל
חמישה אלמנטים. כוכור, אינדקס של מערך מתחיל ב-0, אלא אס כן הקוד מציין
אחרת במפורש). הקוד מכיל הצהרה על משתנה מסוג ז%606ח1 שיישמש כמונה. המשפט
% מציב באופן עוקב את הערכים 1-5 במשתנה המונה, א6סח;טחו.
שני משפטיס מתבצעיס לכל מעבר בלולאה. ראשית, ערך אלמנט במערך ץגזזהץואץובּ
מחבר את הערך הנוכחי של אשסחשחו לערך הנוכחי שלו. הקוד מצהיר על זזה ץואץובּ
באמצעות משפט 5080₪6, ולכן האלמנטים של המערך שומרים על ערכיהם גס
כשהשיגרה מתבצעת פעמים רבות. לאחר הביצוע הראשון של השיגרה, האלמנטיס
במערך זהיס לערכיס העוקביס של אססחשחו. לאחר הביצוע הבא, ערכי האלמנטיס
גדוליס פי שנייס מאלה של א6סחטחו וכך הלאה בכל ביצוע מוצלח של השיגרה. המשפט
השני מדפיס את הערך הנוכחי של א66חשחו והאלמנט הקשור אליו מתוך המערך. זכור
כי באפשרותך לאתחל מחדש את ערכי האלמנטיס במערך ל-0, על ידי בחירת
האפשרות +₪656 מתוך תפריט חטח של פפ/.
()זס-טהטס6 פט5
סח 5 (4)עץבוה ץוץזה 55806
1 5 אססחטחו וחוס
5 סד 1 = אס6סחנטחו זס=
| = (1 - אססחהשחו)ץ8זזהץוץזהּ
אס6סחטחו + (1 - אססחהשסחו)ץ8זזה ץוץוהּ
(1 - א06חסחו)ץ8זזהץוזה ,אססחהטחו זחוזק. פטססס
אססחטחו )אס
+|טע סחוזק. פטס
סט5 0חם
תרשיס 1.17 מציג את פלט החלון 111601916 בשלושה ביצועיס עוקביס של השיגרה.
העמודה הראשונה מציגה את הערכים העוקביס של א66חשחו, והשנייה מציגה את
הערכיס המתאימיס של האלמנטיס במערך. בביצוע השיגרה הראשון, האלמנטיס של
המערך תואמיס בדיוק את אלה של אפסחחו. בביצועיס השני והשלישי, האלמנטיס
גדולים פי שניים ופי שלושה בהתאמה. תוצאת הסכימה ממחישה את השפעת
ההצהרה על משתנה כ- 50806. אס תשנה את מילת המפתח 5906 ל-וחוס, ערכי
א66ח1שחו וערכי שְּזזהץואץזהּ יתאימו בדיוק אלה לאלה בכל ביצועי השיגרה.
6 הח 2000 460655
! 6 |<|
תרשים 1.17: החלון 6613%6ו1₪ח1 מציג את תוצאות ביצוע השיגרה זס-0חט60 שלוש
פעמים רצופות
+סא... 6ב זס: ו- הזוצש החם...חזו
המשפטים 6אפא...860ם זס= ו- חטו/ סתם...הטוש יכוליסם להשתלב יחד היטב בפעולות
אימות נתוניס ומשימות ספירה מקובלות. אא6א...5860 זס] מבצע הליך חוזר דרך אוסף
כלשהו (כגון פקדיס בטופס) או מערך. אין דרישה לדעת את מספר האלמנטיס באוסף
או במערך. המשפט חטוו 6חם...חזוש יכול להשלים את א6א...חס₪8 זס"] על ידי פישוט
אופן הקידוד של פקדיס רביס בקטע קוד.
המשפט )א6א...ח₪80 זס= דומה וגס מורכב פחות מהמשפט >אסא...זס=]. הדמיון בין
השניים נובע מכך שבשניהם הלולאה פותחת בשורה זס" ומסתיימת בשורה )א6א. יחד
עם וזאת, עיצוב השורות זס= ו-6% שונה בשתי גרסאות לולאת זסז]. המשפט זס=
...586 פשוט יותר מהמשפט )אסא...זס=, מכיון שהוא פוטר אותך מהצורך לעקוב
אחר שלושה פרמטרים נפרדים (וס)חטסס, 5911 ו-5%00) או מההתייחסות לערך חיובי או
שלילי של 5060. המשפט %א6א...ח₪86 זס] מתחיל תמיד בתחילת האוסף או המערך,
ומתבצע בלולאה עד הגיעו לאלמנט האחרון. תחביר המשפט נראה כך:
קטסס 6/6060 ₪86 זס=
5
הסח ד ה0ש/0חס6 +[
זסת %ואם
+ 500
5 .
6/60060% %א6)]
פרק 1: היכרות עם 084 | 57
המונח קטסוף שבשורה הראשונה של המשפט %א₪6... 5860 זס] מתייחס לשס האוסף או
המערך. 66| בשורה הראשונה ובשורה האחרונה מציין אובייקטיס בודדים באוסף
או אלמנטיס במערך.
המשפט )א6א...ח586 זס] מבצע בצורה חוזרת את משפטי גוף הקוד על כל אלמנט
באוסף או במערך שעליהם הוא פועל. לעיתים תרצה לשלב את המשפט זס] 5% או
משפט אחר שביצוע מותנה, במקוס כלשהו בגוף הלולאה זס]. כך תאפשר לקוד להגיב
בצורה דינמית לאירוע מיוחד בסביבת המחשוב. בדיקת התנאי מזהה את האירוע
המיוחד, ו- זס= אם או משפטים אחרים שביצועם מותנה, יחולו רק בכפוף להתרחשות
האירועים.
בדומה למשפט )א6א...זסת", ניתן לקנו משפטי אאסא...ח80ם זס= זה בזה. בסיוס לולאת
)...86 זס], השליטה עוברת למשפט הראשון שבא לאחר הלולאה.
המשפט חחו/ 6חם... חזו\ מפשט את ההתייחסות לשיטות או מאפייניס שוניס של אותו
אובייקט. בתחילת השורה חאו/ ציין את האובייקט שברצונך להתייחס למאפייניו או
שיטותיו, וסגור את ההפניה לאובייקט בשורה וזו/ 0ח= שבסוף הקטע. בין השורות
חזוש ו- חזו\ 6ח= אפשר לגשת למאפייניס או לשיטות האובייקט, מבלי לציין את שמו.
הקוד שלפניך מציג את התחביר הכללי של המשפט חטו\ 6חם... וטו:
וס חש
"61ט|הּע אוסח" = 61והת/ו6קסום.
"2 6ט|הע אוסח" = 862ח//6קסוםש.
1..
2.
חזו/ 0חם
פס הוא שס האובייקט, הפניה לאובייקט או שס מערך. 61וההחץשוסקסוס
ו-62וההח/ז6קסזן הס מאפייני האובייקט ו-600001 ו-6%0002 הן שיטות האובייקט.
כפי שניתן לראות, המשפט הסוש 6חם...וזוא מאפשר לגשת למאפיינים ולשיטות
האובייקט.
תרשימים 1.18, 1.19 ו-1.20 מציגים טופס אימות נתונים בפעולה. למרות שהטופס
מכיל רק זוג תיבות טקסט הדורשות אימות, קוד הטופס מנצל לולאת %א6א... ₪860 זס=
שניתן להרחיבה כך שתכיל פקדי תיבת טקסט נוספים. באפשרותך לערוך שינוי קל
ולכלול סוגי פקדיס נוספיס בשגרת האימות. תרשים 1.18 מציג עיצוב של טופס קליטה
בסיסי הכולל זוג תיבות טקסט ולחצן פקודה.
לחיצה על לחצן הפקודה 16 סס, מפעילה שגרת אירוע שבודקת את תיבות הטקסט כדי
להבטיח שאינן מכילות ערכי ווטא. אס פקד כלשהו מכיל ערך ווטא, שגרת האירוע תציג
תיבת הודעה שתזכיר למשתמש להצין נתוניס בשתי תיבות הטקסט.
שגרת האירוע קוראת גם לשיגרה שמשנה את הרקע של כל תיבת טקסט שמכילה ערך
וטא מלבן לצהוב. השיגרה גס מעבירה את המיקוד לתיבת הטקסט האחרונה שמכילה
ערך |וטא. הרקע נשאר צהוב, עד שהמשתמש מעדכן את הנתוניס בתיבת הטקסט.
8 הח 2000 460655
| ום]=. ו
וחזס= %ח1
לטוקח1
:> לנוקח1
0 40065% ]/050זסו ה חוחוחזה זט סז
.68אס ]טוקחו !ספ הזו הסוזהוזסזחו זטוחס 56ב6וק ענ
תרשים 1.18: תוצאת הלחיצה על לחצן הפקודה 16 ₪00 כאשר תיבת טקסט אחת לפחות
מכילה ערך ווטא
תרשים 1.19 מציג תיבת טקסט שהכילה קודם ערך |!וטא, אך כעת מכילה 1. צבע הרקע
של תיבת הטקסט משתנה חורה ללבן ברגע שהמשתמש מזין בה נתוניס כלשהם
ומעביר את המיקוד מתיבת הטקסט למקוס אחר. תרשים 1.20 מציג את הטופס לאחר
שהערך החדש מעדכן את תוכן תיבת הטקסט.
רחס 0%6וןח1
תרשים 1.19: תיבת טקסט מסומנת בצהוב שהכילה קודם לכן ערך ווטא, ועכשיו מכילה 1
זוג השגרות הבאות - 61666 5ווחסט05חס ו-%/0םס 6!057ו-אז3ו -- בוחן את תיבות הטקסט
ומאיר בצהוב תיבת טקסט כלשהי שמכילה |וטא. שגרת האירוע 01166 של לחצן הפקודה
עוברת בלולאה על כל פקדי הטופס - בין שהס פקדי תיבות טקסט וכאלה שאינס.
שגרת האירוע מנצלת את מילת המפתח +60מץד כדי לוהות פקדי תיבת טקסט בין
הפקדים. אם לא תעשה זאת, תיגרס שגיאת זמן ריצה, מכיון שלא לכל הפקדים יש
מאפיין 6ט|. אס שגרת האירוע מזהה פקד תיבת רשימה, היא מתשאלת את המאפיין
6 של הפקד כדי לקבוע אס הוא מכיל ערך |וטא. פקד שמכיל ערך |וטא יוזס את
הפעלת הקוד הכלול במשפט חסחד.... קוד זה מציג את תיבת ההודעה וקורא לשיגרה
להאיר את הפקד שחסר לו ערך.
פרק 1: היכרות עם 84 | 59
<1ם] - | הזו ו ב ו הו -
וחזס= +וכןח1
תרשים 1.20: לאחר שהמשתמש מזין מידע ומעביר את המיקוד, צבע הרקע של תיבת
הטקסט חוזר להיות לבן
00
()א6ו|6 60506 סט5 ס6זהעוזק
.5 6ו|8/ זס? 066% '
.וס 606 ה56766 ח1 66 ח86ם זס=
חס ך אס0)א ד 15 60 601סץד זז
חסחד (סטו3ּ/. 60)!וטא15 זז
= ,".65א00 )סח 0% חו הסואוזס+ח! 667ח6 16856" אס8 ₪5
"2000 66655 16705010 פהווחוחהופסזק" , הססהוזס+חה1ט
אוהו
זסת %ואם
+ 0חם
+ 50
60 %אסא
50 0ח=
(016=ס ד6!05ו= אוה פט5 סווטוק
5 ס- 606 ה56766 ח1 66 ח86ם זס=
חס ך אסא ד 15 60 601סץד זז
חסחד (סטובּ/. 60)!וט15 +ז
68 חטו
(0 ,255 ,₪68)255 = זס|₪860600.
5
חטוצ 0חם
+ ₪0
+ 0חם
60 %אסא
טפ 0ח=
66655 2000 8
גם השיגרה %ו0שס 1187616657 מנצלת את מילת המפתח +60סץד כדי לזהות תיבות
טקסט. כשהיא מזהה תיבת טקסט שמכילה ערך ווטא, היא משתמשת במשפט
הזו 0חם...חטוש כדי לשנות את צבע הרקע של הפקד ומעבירה את המיקוד אל הפקד.
על ידי כך היא מבטיחה שתיבת הטקסט האחרונה שמכילה ערך ווטא תהיה במוקד
בתוס השיגרה.
כל אחת משגרות האירוע בקוד שלפניך מופעלת בתגובה לאירוע 4670008%6 (לאחר
עדכון). כל שיגרה מנצלת קטע מסוג הסו/ 6חם...וזו\ כדי לשנות את צבע הרקע של
הפקד המטופל ללבן, אס צבע הרקע הנוכחי שלו צהוב. האירוע 071(00806 מתרחש
באופן עצמאי עבור שתי תיבות הטקסט, אך הקוד שבכל אחת מהשגרות זהה, למעט
שס האובייקט המטופל (061ח601 או שטסחזט).
()008%06(ז1+0 61כח001 0ט5 ס6אהעוזוק
1 חס תסו
חסחד (0 ,255 ,₪00)255 = זס|ס86660פ. ]1
(255 ,255 ,₪08)255 = זס|00א286.
+ 0חם
הז+ו\ 0חם=
50 06ח=
()008%06(ז0+) 62טסח001 500 ס6אהעווק
2טס חס תסו
חסחד (0 ,255 ,₪00)255 = זס|ס₪86660. ]1
(255 ,255 ,₪00)255 = ז0ס|60א886.
+ ₪0
הז%ו 0חם=
50 06ח=
כןסס !...סם
המשפט מסס]...₪0 הוא סוג נוסף של משפט לולאה של יישומי 84/. משפט זה מהווה
חלופה גמישה יותר של משפט הלולאה 6ַח6...)/6וח/ - הוא כולל את כל הרכיביס
התפקודיים של 6ח6ו...6וח/ ומוסיף עליהס. %84 ממשיך לתמוך במשפט הלולאה
0ח6).. .6!וח/ משיקולי תאימות לגרסאות קודמות.
באפשרותך לנצל את לולאת 0כ כדי לבצע בצורה חוזרת קבוצת משפטים עד שתנאי
מוגדר יתמלא (כלומר, יקבל ערך 6טזד או 8|56"). תחביר המשפט מסס)...6ם תומך
במפורש בביצוע בדיקת התנאי טרס ביצוע קטע קוד או מייד לאחר מכן. בדומה
למשפטי לולאה אחרים, קייס גס משפט מיוחד ליציאה מקוד הלולאה במהלך הביצוע.
לפניך שתי גרסאות תחביר של משפט 1000...סם.
פרק 1: היכרות עם 84 - 61
60007000 ץוסחט | שווח/ש+ סס
65
חסחחד מסש/טחס6 +1
ספ +זוא=
+ 06ח=
65
קסס |
הדוגמה השנייה:
ספ
65
חסחחד מסש/טמס6 +1
ספ +וא=
+ 06ח=
65
חסשוסחס6 ]סח | 6|וח/+ קסס!
הגירסה הראשונה בודקת את התנאי טרס ביצוע משפטי הלולאה, והשנייה עושה ואת
לאחר מכן. בדיקת התנאי יכולה לנצל את מילת המפתח פווח/, או את מילת המפתת
וטחש. מילת המפתח ש6ווח/ גורמת ללולאה לשוב ולהתבצע כל עוד התנאי מתקייס
(אמת); מילת המפתח ושח גורמת ללולאה להתבצע כל עוד התנאי אינו מתקייס
(שקר). מפתחים מנוסיס בסביבת 866655 כתבו בוודאי לולאות ₪0 רבות לניווט
ברשומות בערכת רשומות עד ויהוי הסימן 50 (סוף קובצ) או +80 (תחילת קוב>). כמו
במשפטי לולאה אחרים של הפצ, גס כאן ניתן לבצאת מלולאת סכ לפני תוס המחזור על
ידי שימוש במשפט ספ זואם.
תרשיס 1.21 מציג זוג שגרות פונקציה ואת הפלט שלהן, כדי להמחיש תכנות לולאות
סס. הפונקציה חזחסוַאססַ פע קולטת תאריך ומחזירה את מספר הימים מאותו
תאריך עד ליוס הראשון בחודש הבא אחריו. אם תקליד את התאריך הנוכחי, השיגרה
תמנה אותו כאחד הימים בתוך מספר הימים הכולל עד החודש הבא. כך, לדוגמה,
הפרש הימיס בין התאריך 28/2/2000 לבין היוס הראשון בחודש שאחריו הוא יומייס
(התאריכיס 28/2/2000 ו-29/2/2000). הפונקציה פותחת בחישוב הזשחסוא6חוחז0,
שהוא תאריך הקלט בתוספת חודש אחד (בדוגמה שבתרשים 1.21, התאריך הוא
0. אחר כך השיגרה משתמשת בשם הפונקציה כמונה שערכו ההתחלתי הוא
0. השורה השלישית מפעילה לולאת ₪0 שהתנאי שלה בודק את חוסר השוויון בין
החודש הבא לבין החודש המתקבל מתאריך הקלט בתוספת המונה. כל עוד אין שוויון,
הלולאה מבצעת את קטע הקוד שכולל משפט אחד - הגדלת ערך הפונקציה ב-1.
2 הח 2000 460655
|<1ם) - | הח - 83500 |ט5ו/ ]]ס5סזסו!) 3
| קוסם ויוסטחוו 804-105 5ססד חנ הטלפ >ספתן אפ 45 ₪6 |
5 9 שש ש אא ה | ₪800 ₪00 -4ם
[<]ם]- | [בא ו ו
|+ 505 הס זע ]| - (/613ח06)
(מ1 30102856 ) מ0מ510א2878107 מסנפסמגוץ שב11כעוק
386 סמסטטגוש קַמנגבגו1 שמ '
(מ628561 ,1 ,"מ")355203כ2 = מ67026א06ע36
0 = ממ 00א51705ע3ת
(ת6מ5110א237510116 + ם3561כמסה)בפסתס <> (ם6מ610א=סה) מפמן 16גגח סע
1 + 5710262א0116ד5צהת = מסמס6א6תַסד5ע3
עססן
מסנססמגוץ המע
(מ1 856 2ס) 51מ1:3502183%50ע%ע0עע5ע28 מסנפסמגוץ ש11פעוץ
3% סמשמעוש קמגבגו61םת1 ססא'
(ע300283561 ,1- ,"")3ב2ססבהכת = בסמתסה5גוס1נטםתקתסה
= 6ם510גוס 1 6תת ₪156
( (6מסז1פגוס1טשתקנס3) עהפצ 6 "/1/" ₪ (ג 10 גוס ש:ק סה ) ב סמסז) 2855081106
0 = 652מ550235580ת1עסעעבצהכ
ספ
1 + 62מ0071535011835702ע237572 = ב125350283357026ת200ע5ע3כ
10 סתו5צהעת - מ300236051) <> בסמסזכגוסנטסתק350155 =11גח קססם
5 מסנספסמגוץ במם
6
(28/20008 / 82 ) ת6מ0ז51א2331086?
2
[28/20008/ 82 ) 6מ10 1:30.5 מס 2337?
58
תרשים 1.21: זוג שגרות פונקציה שמשתמשות בבדיקות תנאי בתחילה ובסיום לולאת ₪0
הפונקציה (שחסו855 9606זו= וחסייְ5עְגס מראה את השפעת בדיקת התנאי שמתבצעת
בסיוס לולאת ספ. הפלט הוא מספר הימים בין 28/2/2000 לבין היוס הראשון של
החודש הקודם (1/1/2000), שהוא 58 (28 ימי פברואר ו-30 הימיס האחרונים בינואר).
פונקציה וו מתחילה בחישוב החודש הקודס עד היוס שצוין. לאחר מכן היא מעבירה
חודש זה אל הפונקציה 6ט|08%6/8 כדי לקבוע את היוס הראשון בחודש הקודם. לפני
תחילת לולאת סם, הקוד מספק ל-הזחסוז35 55061זווהסז-8/5כ ערך 0. הכניסה ללולאה
אינה מותנית בבדיקה כלשהי, ו-%0ח0ו4850 |5606זו=והסי08/5 מוגדלת ב-1. בדיקת
התנאי בשורה 1000 מאפשרת ביצוע מחזור לולאה נוסף, כל עוד ההפרש בין תאריך
הקלט לבין הזחסוז35 85-0156011 קטן מהיוס הראשון לחודש הקודם. באופן זה
הפונקציה מונה 58 יוס מתאריך הקלט עד, אך לא כולל, היוס הראשון של החודש
הקודם.
פונקציות מוכללות
חלק גדול מהדוגמאות שהצגנו כולל ספריה עשירה של פונקציות מוכללות של 06055.
הפונקציות יכולות לסייע לזרז תהליכי פיתוח של פתרונות מותאמים אישית על ידי
צמצוס ופישוט הקוד המותאס אישית. באפשרותך לנצל את הפונקציות המוכללות
בדיוק כפי שאתה מנצל את הפונקציות שאתה כותב במיוחד בהזדמנויות רבות, כגון
שגרות, שאילתות, טפסים ודוחות. אס תלמד להכיר את השימושיס האפשרייס
פרק 1: היכרות עם 88 - 63
בפונקציות מוכללות, תוכל לגלות אופקים חדשים ויצירתיים ליישוס פונקציות
מותאמות אישית שתכתוב בעצמך.
סעיף זה כולל שלוש דוגמאות המשתמשות בפונקציות מוכללות: אחת לשאילתה, אחת
לטופס ואחת לדוח. באפשרותך (וייתכן שתעשה ואת) למזג את כל שלוש הגישות
ביישומיך. הדוגמה השלישית מראה כיצד לגרוס לפקד בדוח לתפקד בתור מקור עבור
קוד %84 במודול של דוח על ידי שימוש בפונקציות מוכללות. כל שלוש הדוגמאות
מבוססות על טבלה קטנה המכילה נתוניס להפקת חשבוניות, ומדגימות דרכי דיווח על
חשבוניות שמועד פרעונן חלף.
תרשיס 1.22 מציג את הטבלה המקורית 608065סוסעח1 בצד שמאל, ובצד ימיו שאילתה
ובה תצוגה של הטבלה. השאילתה בוחרת שתיים מתוך עשר שורות הטבלה
5 ומחשבת עמודה חדשה שנקראת 08/5 6טכ 285% (התרשיס הוא מתאריך
8)..
הנדו ו
8ץ8 006 0056| 060816וסשח1 | 66|0וסטת! | | ||= | 60816סוסשח! | כ!ססוסטתו | |
8 1 ₪ו מ ||
8 ]| 2 08
(ז טרוט סז | 08(
|08
8
8
3 זס [:1] | | 4 ]4 0
וו
08(
08
8(
תו וב ]| 4 ]4 יי
8900 ₪00 וש 000-4 פא ש
-=
תרשים 1.22: הטבלה 6608%65ו0עח1 ותוצאת שאילתה שבוחרת שורות ומחשבת שדות
חדשים בעזרת פונקציות מוכללות
באפשרותך למצוא את היוס הנוכחי באמצעות פונקציה מוכללת אחת או יותר:
הפונקציה 0816 והפונקציה ששסא (ערך ההחזרה של צוסא כולל גס את השעה הנוכחית).
אס ברצונך לטפל בתאריכים בלבד, אין זה משנה באיזו פונקציה תשתמש).
השאילתה כוללת את שתי העמודות של הטבלה 608%65סוסעח1. הקריטריון של העמודה
65 הוא 30-()2816>. התאריך הנוכחי בזמן ביצוע השאילתה היה 12/9/98,
ולכן חלף מועד פירעונה של חשבונית מתאריך כלשהו שקדס ל- 13/8/98. מכאן
שהשאילתה תחציר חשבוניות מהתאריכים 1/7/98 - 15/6/98.
ערכי 28/5 6 085% ראוייס לעמודה נפרדת. שדה מחושב ה משתמש בוג פונקציות
מוכללות : 2806014 ו-שוסא. הפונקציה 808014 אידיאלית לחישוב ההפרש בין שני
תאריכיס. באפשרותך לציין את ההפרש בימים, חודשים, רבעוניס, שניס ויחידות זמן
שונות נוספות. במקרה של העמודה 285 6טכ 85%, הפונקציה ₪801 מחזירה את
ההפרש בימים. (()אוסא,30+[6ז608סוסעח1], "")ו650יהכ הוא הביטוי שמחשב את ערך
השדה. ביטוי זה קובע את התאריך הנוכחי באמצעות הפונקציה אוסא (למרות
4 הח 2000 466655
שהפונקציה 086 יכולה לעשות זאת בצורה וזהה). המונח [60806סוסעח1] מפנה לטבלה
המשמשת כמקור הרשומות עבור השאילתה. התוספת 30+ משמשת לציון תאריך
התשלום האחרון המותר, מבלי שהדבר ייחושב כאיחור.
השאילתה יכולה להיות נקודת פתיחה להפקת שימושים עסקיים מעשיים, אך יש לה
כמה חסרונות. אחד החסרונות הבולטים הוא שתצוגת גיליון הנתוניס אינה מציגה את
התאריך הנוכחי, מה שעלול לעורר ספק באשר לבסיס החישוב של חשבוניות שמועד
פירעונס חלף. אובייקט הטופס זסז8ט|8ש6ט85:0ק 1 שבתרשיס 1.23 פותר בעיה זו על
ידי הצגת הנתונים בתצוגת הטופס הידידותית. בתצוגה זו, שלושת שדות הטופס
מספקים את המידע החשוב ביותר. השדה 060806ו0שח1 מציג את יוס הכנת החשבונית.
השדה הבא אחריו מציג את התאריך הנוכחי. השדה הבא מחשב את מספר הימיס
שחלפו מהמועד שנקבע לפירעון החשבונית. שדה זה יכיל את הערך 0, אס החשבונית
נוצרה לפני פחות מ-30 יוס.
[<1ם) = חזזס-] : זסזהּטו!ה ץצ 6 3510 וחזז! ₪3
זס ₪8 6טכ] 0856 פצְהכ
1 || :ויח
8 | :3 ססופ/יח1
998 | סד
7 ]| :1 פע
0 זז [++|ו] 1% ]| . ₪ 0
תרשים 1.23: טופס לחישוב מספר הימים שחלפו ממועד הפירעון של חשבוניות
שני השדות האחרוניס בטופס משתמשים בפונקציות מוכללות לחישוב ערכים. השדה
6 5'ץ008סד (תאריך נוכחי) משתמש בפונקציה 816. במקרה וה, 0806 עדיפה על
אוסא, מכיון ש-ששסא מציגה את התאריך וגם את השעה, אס אין מעצביס את השדה
אחרת. אס תיתן למאפיין 66זט50 |סשחס6 (מקור פקד) של השדה את הערך ()08%60=,
אינך צריך לעצבו במיוחד. השדה 18066 08/5 מנצל פונקציה מסוג =11 (10 601806חח1).
הפונקציה משמשת לכתיבת ביטויים מובניס ומוכרת גם למפתתי גליונות
אלקטרונייס. לדוגמה הביטוי שבשדה האחרון בטופס הוא:
(30,0-[010608%6/ח61)ט ]-( )2856 30 < [6ז68סוסעח11ט ]-()11=)866. הביטוי כולל שלושה
ארגומנטיס, בדומה לפונקציית של הגיליון האלקטרוני. הארגומנט הראשון הוא
תנאי שיכול לקבל ערך 6טזד או 8|56=. אם התנאי מתקיים (אמת), פונקציית "11
מחזירה את ערך הארגומנט השני; אם התנאי אינו מתקיים (שקר), פונקציית "11
מחזירה את ערך הארגומנט השלישי. מכאן שאס התאריך שבתיבת הטקסט של תאריך
החשבונית, 01660866ע0010ס, מוקדס ב-30 יוס או יותר מהתאריך הנוכחי, פונקציית =ז1
תחזיר את מספר הימיס שמעבר ל-30 ימי האורכה; אחרת, פונקציית :11 תחזיר את
הערך 0.
פרק 1: היכרות עם 88 65
הדוח שבתרשיס 1.24 מציג גישה נוספת לסיכוס חשבונות שמועד פרעונס עבר. הדות
מכיל שלוש עמודות. העמודה האחרונה מחשבת את מספר הימים שחלפו ממועד
פירעון החשבונית. בכל שורה נתונה של חשבונית, עמודה וו תהיה ריקה אס מועד
פירעוו החשבונית לא חלף. כותרת הדוח מזכירה למשתמש את תאריך הדוח, וכך ניתן
לדעת את התאריך שמגדיר את החשבוניות שמועד פירעונן חלף.
|<1םן. | 5 60סוסצח] =|
וק 1206 12331 1237 30
8 :5 806 5'ע3 סד
5 > +35] 306( מכוומטח| | (68שוסעה!
1 8 59
008 3
8
8
08
8-ו
(8
תרשים 1.24: דוח שמציג בצורה מותנית את מספר הימים שחלפו ממועד פירעון
חשבונית. אם החשבונית נכתבה 30 יום או פחות מהמועד הנוכחי, העמודה האחרונה
תהיה ריקה
ערך עמודת הדות האחרונה מחושב באמצעות נוסחה. תוכל להתבסס על שתי
הדוגמאות הקודמות כדי לכתוב את הנוסחה. ייחודו של הדוח הוא בכך שהעמודה
האחרונה תהיה לפעמיס ריקה. שגרת האירוע זאחחזס=ח0 (בעת עיצוב) של המקטע
פירוט ((ו6%כ) של הטופס מאפשרת ואת על ידי הגדרה מותנית, בזמן ריצה, של
המאפיין 6|פופו (גלוי) של פקד העמודה האחרונה. לפניך קוד שגרת האירוע.
66055 2000 ₪/7 6
(%6061ח1 5 %הטס6זה הס ,1006007 45 |66ח608)זה הס |3ז6 500 6זפטוזק
|₪0ח60 5 כח6 חוחוס
5 |ן6%3. 6 ח1 600 ₪86 זס=
החד "0285060875" = ס6והּא. 6 +
חסחך 0 =< 6טו0./8 60 +1
סד = 6!ו5ו/. ס|60
56
6 = 6!פןפו/. 6
+ 0חם
+ 0חם
60 אסא
50 06ח=
שגרת האירוע מנצלת לולאת %א6א...ח586 זס"] כדי לעבור בלולאה על הפקדים של כל
רשומה בחיפוש אחר תיבת הטקסט 5ש85:20608ק))ט. תיבת טקסט זו מכילה את מספר
הימיס שחלפו מאז מועד פירעון החשבונית. אס הערך חיובי, מועד הפירעון חלף,
והקוד יגדיר את המאפיין 6|פופו של הפקד כאמת. אחרת, מועד פירעון החשבונית לא
חלף והמאפיין 6)פופו של הפקד יקבל ערך שקר. אס כן, מספר מצומצס של שורות קוד
יכול ליצור עיצוב דוח גמיש בזמן ריצה.
תקציר פונקציות נבחרות
0 600055 מכיל מעל 170 פונקציות מוכללות המבצעות מיגוון משימות רחב, לרבות
המרה בין סוגי נתונים, עיבוד תאריך/שעה, ניתוח סטטיסטי של תכני טבלאות
ושאילתות, פעולות מתמטיות וטיפול בטקסט. תוכל להרחיב את ידיעותיך אודות
פונקציות אס תלמד להכיר מה ניתן לעשות באמצעותן. 67050% יצרה פונקציות
רבות, ולכן אין צורך לכתוב אותן מחדש. לאחר מכן תוכל לעמוד על הדרך
שהפונקציות משלימות זו את זו. באפשרותך גם ללמוד על תכונות הערכיס המוחזרים.
לדוגמה, הפונקציה א₪48 מחזירה מחרוזת שמייצגת את השקול ההקסדצימלי של מספר
עשרוני, והפונקציה 06 מבצעת המרה דומה על מספרים אוקטליים. פלט שתי
הפונקציות מתאיס לשרשור ולהשוואת מחרוזות, אך לא לפעולות חשבוניות.
באפשרותך גם לחקור את השפעת ארגומנט אופציונלי של פונקציה על ערך ההתוזרה
של הפונקציה. אי-הבנה של ארגומנטיס אלה עלולה לגרוס לתוצאות מוטעות או
מבלבלות. לדוגמה, הפונקציה 5600 משווה שתי מחרוזות זו לזו. שני הארגומנטיס
הראשוניס הס המחרוזות המיועדות להשוואה. הארגומנט השלישי הוא אופציונלי
ומציין את סוג ההשוואה שיש לבצע. באפשרותך לציין השוואה תלוית-רישיות,
השוואה שאינה תלויה ברישיות או לחילופין השוואה המבוססת על האפשרות סדר
מיון מסד נתונים חדש (06ז0 50% 80856ז8 צוסא) בכרטיסיה כללל (|679ח66) של
תיבת הדו-שיח אפשרויות (5חסק0) של 2000 ₪066655. אס לא תציין את ההשוואה
פרק 1: היכרות עם 88 67
האופציונלית, הפונקציה תנקוט את שיטת ההשוואה המצוינת במשפט חסטסס
606 באזור ההצהרות (ח066!87800) של המודול (אם לא צוינה שיטה כלשחי,
5 ייבצע השוואה בינארית).
הטבלה שלפניך מציגה מבחר קטגוריות פונקציות עס תיאור ייעודה של הקטגוריה.
הטבלה אינה כוללת את כל הקטגוריות, וכל קטגוריה מכילה בדרך-כלל יותר
פונקציות. סיווג הפונקציות בקטגוריה כזו או אחרת הוא מעשה שרירותי, מכיון
שפונקציות רבות מתאימות לכמה קטגוריות. לדוגמה, הפונקציה |₪8165688 המטפלת
בתאריכים, מחזירה מספריס סידוריים של תאריך בהתבסס על ארגומנטים שאינס
מסוג תאריך/שעה, אך באפשרותה גס להמיר תאריכי מחרוזת למספרים סידוריים.
לפיכך הפונקציה יכולה להימנות בו-זמנית עס הקטגוריות תאריך/שעה והמרה.
קטגוריות נבחרות של פונקציות
קטגוריית
פונקציה
המרה ,56 ,6266 0 6100 ,חַח05 ,ופכ6 | קביעת סוג הפעולה החשבונית שביטוי
6 , | מבצע והמרה בין סוגי נתונים
תאריך/ ה ,הכ ,סא ,866 | ביטוי, חישוב, חילוץ ערכי תאריך ושעה
שעה ,טסו ,ע8כ ,הסחסו! ,הס ,סואכ | מתוך מספרים סידוריים של תאריך
,60608 ,0ח5660 ,ססטחוו | וייצוגי מחרוזת של תאריכים ושעות.
,28056118 ,6ט|66/3הכ
336 0א66/ , 6רהבצרט הסמ
סח 8167 הרוס
צבירה ,פא ,וחטפכ שהטססכ ,קטאססוכ | חישוב ערכים סטטיסטיים, כגון ספירה,
המופעלת זה/ם | עבור תחום (לדוגמה, טבלה או
על תחום שאילתה)
טיפול זסזו155 ,6/1 ,סו | לכידת שגיאות וקודי שגיאות מותאמים
בשגיאות אישית
בדיקה !15 ,1566 ,15116 ,150866 | הערכת סוגי נתונים באמצעות קוד
6מץ דוה /, 15
ד 005 50 0 ,קל 506 שח
הודעות אסטזוקח1 ,500% | הפקת הודעות ואיסוף נתוני קלט
מהמקלדת
טקסט 6 ,חוד ,סוי %ח9ו₪ ,16 | עיבוד מחרוזות
,0/0756 085057 |
16
שונות ,קא ,= ,₪08 הטס6 ,וחט5 | צבירת ערכים סטטיסטיים, קביעת
הח26000[600,5750) 67680000[60% | מאפייני צבע, חישוב ערכים פיננסיים,
יצירה או קליטת הפניות אל אובייקטי
66%, הצגת מדי התקדמות ועוד
8 הח 2000 466655
פונקציות אלו מבצעות מיגוון משימות. פונקציות מחרוזת יכולות לחלצ, להמיר ולעגל
חלקים לא רצויים של מחרוזת טקסט, אך באפשרותך גם לנצל את הפונקציות
המוכללות לחישוב תוצאות פיננסיות או ערכיס מתמטיים. פונקציות בדיקה
שימושיות לקביעת סוגי נתוניס לפני חישוב הביטוייס. שימוש מושכל בפונקציות אלו
ובפונקציות ההמרה יאפשר לך להימנע משגיאות אי-התאמה אפשריות בין סוגי
נתוניס (טיפול בשגיאות הוא חלק חיוני של פתרון כולל כלשהו. בלעדיו הפתרונות
שתיצור לא יוכלו ללכוד שגיאות זמן ריצה, או לעורר שגיאות מותאמות אישית של
זמן ריצה). פונקציות צבירה המופעלות על תחוס (60005ח0 800760866 חו408) אינן
מצטיינות בביצועי מהירות מעולים, אך ביכולתן להחליף שאילתה שלמה או משפט
מורכב יותר. לדוגמה, יישומיך יכוליס לנצל את פונקציות הצבירה לתחוס,
בשגרות 8 וגס בשאילתות ובטפסים. פונקציות צבירה ל- .501, כגון +חט0ס6 ו-וחט5
יכולות אף הן להפיק תוצאות סטטיסטיות של מקורות רשומות. פונקציות אלו אינן
ישימות בהיקף רחב כמו פונקציות צבירה לתחוס. לדוגמה, לא ניתן להשתמש בהן
בשגרות 88/.
תרשים 1.25 מציג שיגרה ואת החלון 66!8%6ו₪ו1₪ כדי להמחיש את התנהגות
הפונקציה א₪46. השיגרה הופכת את שני הארגומנטיס למחרוזות הקסדצימליות ולאחר
מכן מדפיסה את התוצאות בחלון 60136 ווח1.
[<]) . | - 80 | 01050 ה
קוס וווסנטחו 5ח[-800. 5|ססך חאו הנוספם =ספתן אפוע 06 ₪6 |
|| שש שא ו |- ₪09 ₪00 -₪ 5
[זם -] |[ וו = ו
- 6 ס>םפפסאפת - חן |ד (81ח60)|
ל 2 (0ע88מ5600 ,8ע110558) סכשפאשם עו
20 42 אפבטמסש ,טמסשחשת ,אפמחפם ,קמהחשת ,א5מ8מ5500 ,א6ב1:56+ מבע
5 0 66 ,16 = 560020820 בם8 16 = 6ע508ע1+? 5די
"10" = בתססמ א6ג₪מ5600 4מ8 א6ג21235'
(16) א6ם+ (16) א6ם?
1 (8ע208ת21)א86 = אשם25ת1+
[26ע560008) אמ = א6מ0מ0ססב
6%מ50ע1 ,ה6ַע508מ21 סמ1טק.צַגומ6ע
5600058 ,560026820 סמ1טת.שגומפע
2 = שעהטסם'
5600088 + מ8ַע208ע1+ = שעבחפם
"20" = א6שמח6ם'
(680ם) את = אשמטשת
אפתקפת ,העהסשת סמ1מק.הגומפע
0 + 5*16 עס 90 = טמסשח6מ'
0 = טמססטחטשם
1 (טמססח6ם) 86% = אפבטמסס
אשמטמסש ,טמססחשם סמ1שת.צגומפע
ש מגופ המם
7% 4+ =
תרשים 1.25: שיגרה שבודקת את הפונקציה א46]
לא ניתן לבצע טיפול מתמטי במחרוזת המוחזרת על ידי הפונקציה א6. הפונקציה
]א מתגברת על הבעיה על ידי ביצוע הפעולה החשבונית באמצעות הארגומנטיס
העשרוניים שלה, והמרת התוצאה שמתקבלת בעורת הפונקציה א6ה. שורות הקוד
בהמשך השיגרה מדגימות גישה זו: הן מחברות את 9%870זו ואת 506000810 וה לגה
ושומרות את התוצאה ב-4ז8ו6ח. לאחר מכן, השיגרה הופכת את 8ַזפו6ח למחרוזת
הקסדצימלית ומאחסנת אותו ב-אסח/ופח. לבסוף, היא מדפיסה את 0ְז8וסח ואת
א6הש6ח בחלון 6018%6 הווחד.
פרק 1: היכרות עם 88 69
פעולת ההמרה האחרונה של 668% הופכת את הערך העשרוני 90 לערך ההקסדצימלי
5. שורות ההערה הקודמות לפעולת ההמרה מציינות את העובדה ש-90 הוא תוצאת
הביטוי 10 + 16 א 5.
זוג השורות האחרון בחלון 6013%6וו1₪ מראה שהפונקציה 6% מחזירה ערכי
מחרוזת. למעשה א6 מחזירה נתון מסוג זחאּוזפּט, אך סוג המשנה שלו הוא מחרוזת.
חיבור המספריס ההקסדצימליים 16 + 16 היה אמור לתת תוצאה של 20 הקסדצימלי,
אך בחלון 1₪1₪16618%6 מקבליס 1010. תוצאה זו מעידה שסימן החיבור בשורה
56600080 + 1757978 = 0ז8/ו6ח ביצע שרשור מחרוזות במקוס חיבור אריתמטי של
מספרים.
עליך לחפש בהתמדה דרכיס לצמצוס ומן העיבוד. לדבר חשיבות מיוחדת בפתרונות
שנועדו לשרת את משתמשיהם תקופה ארוכה, או כאלה שמבצעים משימות עסקיות
חיוניות. תרשים 1.26 מציג שיגרה שיכולה לאמוד משך זמן ביצוע של קוד. השיגרה
מחשבת את הזמן הדרוש לביצוע לולאה מספר קבוע של פעמים. באפשרותך להרתחיב
את התפקוד הבסיסי ולהוסיף לו השוואת זמניס של שני פתרונות תכנות. כפי שניתן
לראות בחלון ₪16013+6וח1, קטע הקוד הפשוט פועל במהירות. מחשב הבדיקה שלי
ביצע את הלולאה שני מיליון פעס בשתי דקות.
<ום) = | ו >
ופ אוסטחו/ע 804-105 5ססך הג הטספ 6וספת1 סו 8 פום |
טא א ה||-9|א₪ 9 3|₪ -אם|
|< ום]=. (02006) 165סחוב 1315 ₪007 - 1ז6)קבּת
|+ סט ו חזוד] [= (181ח66)]
(אמסם 25 קססםסת1) קססהסוננדך
865 25 שאנ[התמאסה ,2366 25 6116 2בהספתסה
טְסמסשעמגוס 25 עממעותע5ת1 ,הָמסם 25 משסמגוסספם1
1
() 0] = 326116 6ס
בקסספת1 סך 1 = מססמגוסספםמ1 עסץ
עשסמגוס6פת1 + משסמגוס6פת1 + משסמגוס6סת1 = עמוגותסת1
(עסספמגוס0פסמ1 * 3) - צְממעות5ת1 = שמשעותסםת1
עססמגוס0סמ1 סאשן
() זזסז1 = שוג דבתמנסה
( סואג 7 ת 65 | שאע2511ה56סה ,"122)"5תססהע = 56002065סם1
צ+
- ("88,880" ,005סםסם1) סהמעסץ סמ1מת.אגומפע
8 63מ0סספמסם1 6 " אססס 10028 " 6
".1666עעסס סס כפהמסססב "
0 כקכק 614100
. 1656עמנסש סם 88ם3600 2 אססס 10028 2,000,000
תרשים 1.26: הערכת זמן ביצוע של משימה. השיגרה ססס |6חוד מציגה, בין היתר, כיצד
פועלות פונקציות מוכללות אחדות
0 ם/ 2000 466655
השיגרה מס !שוחוד קולטת ארגומנט יחיד שקובע את מספר הפעמיםס שיש לבצע את
הלולאה. ביצוע חוזר של לולאה מספר פעמים ידוע, מאפשר לעיתיס קרובות להבחין
בהבדלי ביצועים בין מחשביס. הלולאה הפשוטה שלנו כוללת שני משפטיס קצריס
בלבד. שיס לב שלפני שהשיגרה מתחילה בביצוע הלולאה, היא שומרת את השעה
הנוכחית (שסא) ב-6חן 5%9711ז0. לאחר שהסתיימו כל החזרות, השיגרה שומרת את
זמן הסיוס ב-6וחו0075091. הפונקציה ₪8660/6 מחשבת את ההפרש בין שני הערכיס
בשניות (ראינו קודס כיצד פונקציה זו מחשבת את ההפרש בין ימיס ביחידות של
ימים. הפונקציה מטפלת ביחידות זמן שונות, כולל שניס, רבעוניס, שעות, שבועות
ואפילו סופי שבוע). הפונקציה 808214 מטפלת בהמרה לשניות ובכל התופעות
המוזרות המתעוררות כתוצאה מהמעבר של חצות הלילה, ומחלצת את הערכיס
הרלוונטייסם של מועדי ההתחלה והסיוס.
בדיקה וו של משך זמן מתבססת על מספר גדול מאוד של חזרות, ולכן נוח במיוחד
לבטא את מספרן באמצעות פסיקים. הפונקציה ז8וחזס] מאפשרת לבצע משימה זו.
פונקציות צבירת התחוס מהוות קבוצה ייחודית. הן מחזירות נתוניס סטטיסטייס
ונתוני חיפוש על תחוס (קבוצת רשומות). הרשומות יכולות להימצא בטבלה אחרת, או
להיות תוצאה של שאילתת בחירה. הפונקציות יכולות להחזיר נתוניס שוניס על תחוס
נתון, כגון: ספירה, סכום, ממוצע, שונות וסטיית תקן. תוכל לנצל את פונקציות צבירת
התחום חואפ ו-אאאפ כדי להחזיר את הערך הקטן או הגדול ביותר בעמודה שבתחוס.
פונקציות צבירת התחוס -%זו"0 ו-185ם מחזירות רשומה אקראית במקוס רשומה
ראשונה או אחרונה מתוך רשומות הממוינות לפי שדה מסוים. פונקציית צבירת
התחוס 100600 היא פונקציה מקובלת מאוד; היא מחזירה רשומה אחת או יותר
שתואמת לקריטריון נתון. לכל פונקציות הצבירה לתחוס ישנה תבנית הדומה לתבנית
הבאה:
("018ש67" ,"סרחה החוה רתס" ,"ח0ו27655א16|06" )סרת בא הסס6תט-כ
כל השמות של פונקציות צבירה המופעלות על תחוס מתחילים ב-ייפיי. שיס לב שכל
שלושת הארגומנטיס של הפונקציה מופיעיס בין מרכאות כפולות. ניתן, אך לא חובה,
להציב את שס השדה של הארגומנט הראשון והשלישי בין סוגריים. שני הארגומנטיס
הראשונים הס חובה, והשלישי - אופציונלי. הארגומנט ח0ו655זקא₪6!06 מצייו שדה
שעליו יש לדוות. הארגומנט 6וההַחח|0008 הוא שס מקור הרשומות. הארגומנט
האופציונלי השלישי מציין משפט קריטריון כדי לצייו את האלמנטיס שברצונך לכלול
בסדרת הרשומות המוחזרת (קבוצת ההחזרה). כדי להחזיר את שס החברה מהרשומה
הראשונה בטבלה 5ז6סקוח5 שבמסד הנתוניס 6חושח+זוסא, הפעל את הפונקציה קטאסס וס
הבאה:
("1 = ס10ז6סקוח5" ,"5זסמסוח5" , "סובּא ץחה קהס6")קטאסס וס
הקריטריון בדוגמה זו מצייןו את הרשומה בטבלה שבה שדה פנזוסססקוח5 מכיל את
הערך 1. הו שדה מספור אוטומטי המכיל נתוניס מסוג ז%606ח1 פַחס]. אס קריטריון
מסוג וה מתאיס לצרכיך, הדבר יפשט את השימוש בפונקציות צבירה לתחום. גירסה
פרק 1: היכרות עם 84 - 71
זו מחזירה את ערך השדה מתוך הרשומה היחידה התואמת לקריטריון. אס קיימות
כמה רשומות התואמות לקריטריון, הפונקציה תחזיר את הרשומה התואמת
הראשונה.
פונקציות צבירה נוספות לתחום, כגון וחטפכ, %חט60כ ו-פָצג₪ מחשבות תוצאות
המבוססות על רשומה אחת או יותר. משפט 84 שלפניך מדפיס את תוצאת ספירת
החשבוניות שמועד פירעונן חלף בחלון 016013%6וח1 בהתאס לתוצאת החישוב של
הפונקציה +חטססס :
("30-()ששס] > 6608%6וסעח1" ,"08065 66וסעח1" ,"0866 6סוסטח1"חהטס0 6 שחוזק. פטטפטס
דוגמה זו מחשבת את מספר הרשומות שמועד פירעונן חלף ומדפיסה את תוצאת
החישוב. כשמפעילים אותה על הטבלה 0608%655ו0שח1 שבקובצ הדוגמה בפרק 1,
בתאריך 12/9/98, הפונקציה +חטסספ מחזירה שתי רשומות. ייתכן שתרצה להוסיף
רשומות חדשות לטבלה, או לשנות תאריכיס כלשהס כדי לקבל תוצאה אחרת של
ספירת הרשומות עבור דוגמה זו.
תרשיםס 1.27 מציג טופס שמאפשר למשתמש לקבוע את ערכי הגווניס אדום, ירוק
וכחול של צבע ולאחר מכן להציג את הצבע המתקבל כשהמשתמש לותח על תיבת
הטקסט שבצד ימין. גווני האדוס, הירוק והכחול של הצבע יכוליס לקבל ערכיסם בטוות
בין 0 ל-255. אס כל שלושת הערכיםס הס 0, יתקבל צבע שחור; אס כולס 255, יתקבל
צבע לבן. קביעת אחד הגווניס בתור 255 בעוד ששני הגווניס האחרים 0, נותנת צבע
חזק של הגוון שקיבל את הערך המקסימלי. הגדרות הגווו במחשב שלי מציגות את
הצבע המוגדר בתרשיס 1.27 בתור אדוס בהיר או ורוד.
|<1ם) - | חזזס-] : זס)הּ!טס!בּ-)זס!ס;)חזז) 83
ז0ז8!נ8]6) זס|ס)
זסטחחנוח 3 זפח=
5 חבטפזת: 0 סז
0 אוס!6ם אסם שחל >סון אסם 6860 סלחו
!זס|ס6 זטוסץ 588 .. בחסת* ,וסוט
25 1
0 :660
150 :סו
תרשים 1.27: טופס המראה את מציג הצבע
שגרת האירוע שלפניך השייכת לתיבת הטקסט הימנית בתרשים 1.27, מבצעת את
תהליך הטיפול הפשוט במציג הצבע. מלבד בדיקת ערכיס ריקיס בתיבות הטקסט של
גווני הצבע, השיגרה מכילה משפט בודד. המשפט מנצל את הפונקציה ₪68 כדי להגדיר
את המאפיין זס|886660 (צבע רקע) של תיבת הטקסט הגדולה בחלקו הימני של
הטופס.
2 הח 2000 466655
()66ו|6 06זס!%60א%% 500 סזפטוזק
.6 06/80 38 56% ,₪610 זסוסס |וטח זי
הסח ד (6ט[ה /. 060 6ו)!וטא15 זז
0 = 6ט|3/, %₪60א). 16
+ 0חם
הסח ד (8|06/. ח09766. 16 )!וטא15 +
0 = 06| ח%0766א). 116
+ 0חם
חסחד (6ט!6./3ט01. 16 )!וטא15 זז
0 = 6./8106ט|60א). 16
+ 0חם
.ץץזסקסזק זס|60א286 56%'
,06| ה6766א16.6] ,3|06/. 06.0660) 0 = זס|60א86. 6 זסוסא0. ₪16
(6ט!3/. 6ט!0תאס. ₪6
סט 0ח=
בדיקת ערכים ריקים (ווטא) חיונית, כיון שערכיס כאלה יגרמו לפונקציה ₪68 להיכשל.
ניתן לתקוף את הבעיה בדרכיס רבות, וקוד השיגרה 0/1666 6!זס|ס:6ס הוא רק אחת
מהן. לדוגמה, קביעת ערך ברירת המחדל בתור 0 במקרה שלא צוין ערך כלשהו, היא
קביעה שרירותית בעליל; הערך יכול היה להיות 255 או מספר כלשהו בין 0 ל-255.
אפשרות נוספת היא להימנע מחישוב הפונקציה 868, ובמקוס ואת לבקש מהמשתמש
למלא ערכים בכל שלוש תיבות הטקסט. והדרך האחרונה - לאפשר התרחשות של
שגיאת זמן ריצה עקב ערך ווטא, ללכוד את השגיאה ואז לטפל בה בהתאם. בסעיף הבא
נציג דרכים למימוש גישה זו.
ניפוי באגים ולכידת שגיאות
אין קוד נקי משגיאות. מלבד שגיאות תחביר ושגיאות לוגיות, נחלת כל פתרון תוכנה
בשלבי הפיתוח, גס קוד שאמור לתפקד כהלכה יימניביי לעיתים שגיאות זמן ריצה.
שגיאות אלו עשויות להיות תוצאה של אי-הקפדת המשתמש להזין ערך, או הזנת ערך
מחוצ לתחום. הפעלות נסיוניות מאפשרות לפתור את רוב הבעיות מסוג זה, אך אינך
יכול למנוע מהמשתמש להזין ערך בלתי צפוי כלשהו, או ללחו על לחצן בטרס עת.
לכידת שגיאות הוא תהליך "יתפיסתיי השגיאות המתרחשות בזמן ריצה, בטרס
תגרומנה לסיוס לא מבוקר של היישוס. לכידת שגיאות מעניקה לך שליטה בענייניס.
הקוד יכול לבדוק את השגיאה ולעיתיס אפילו להתגבר על הבעיה מבלי שהמשתמש
יבטרך לעשות כלוס. באפשרותך לקבוע את נחיצות התערבות המשתמש ולהציג לו
הודעה בהתאם, ואף לקבל ממנו קלט חדש באמצעות תיבות דו-שיח מותאמות אישית
ולאחר מכן להמשיך את פעולת היישוס. גס במצביס בהס לא ניתן להתאושש בצורה
מסודרת ממצב שגיאה, ניתן עדיין לסיים את התוכנית בתנאיס שנקבעו מראש.
פרק 1: היכרות עם 84 - 73
הפתרון יכול לשמור מידע על משפט הקוד בו התרחש הכשל, בצירוף קוד השגיאה,
תיאור וכל פרטי המידע הרלוונטיים. אחר כך תוכל להורות למשתמש לדוות על
התקלה לגורס המתאים.
מאחר ש-860655 מאפשר למפתחיס להגיב לשגיאות זמן ריצה, מומלצ שתחשוב על
לכידת מצבי השגיאה ביישוס שלך, כגון הזנת ערכיס לא חוקיים. לאמיתו של דבר,
56 מאפשר ליצור שגיאות מותאמות אישית בדרכים שונות. הדבר מאפשר לקוד
להתאושש מהשגיאות המותאמות אישית שיצרת באותו אופן שהוא נוהג בשגיאות
רגילות של 466655. קרוב לוודאי שתדע טוב יותר כיצד להגיב לשגיאות המותאמות
אישית, מכיון שאתה יצרת אותן.
לכידת שגיאות - תחביר בסיסי
כדי לממש מנגנון ללכידת שגיאות, עליך להבין את המשפט זסזום חס, את האובייקט
זזם ואת המשפט שו טפסח. כל אלה פועליס יחד כדי לאפשר לכידת שגיאות ולסייע לך
לטפל בשגיאות לאחר לכידתן.
קיימות שלוש גרסאות למשפט זסזזם חס, אך הגירסה שלפניך מאפשרת לכידת שגיאות
וקרוב לוודאי שתבחר להשתמש בה:
/06/806// 6010 זסזזם הס
כש-8066055 מזהה שגיאה, משפט זה מעביר את השליטה במצב לתוכנית שלך, במקוס
לתת ל-460655 לטפל בשגיאה לפי ברירת המחדל שלו. הארגומנט |886|פחו! הוא שס
השורה שאליה ברצונך להעביר את השליטה. במקוס ש-460655 ייבצע את תהליך
הטיפול המוגדר מראש, יתבצע הקוד המתחיל בשורה ששמה צוין במשפט. על הקוד
לקבוע ולפענח את מספר השגיאה, כדי שהתוכנית תנקוט פעולה הולמת. אס אין
באפשרותך לתקן את התקלה, תוכל לפחות לקבל מידע כלשהו אודותיה בטרס
תסתייס התוכנית בצורה מסודרת.
האובייקט זזש מלמד על השגיאה. לאובייקט שני מאפיינים. המאפיין זספוחטא מגדיר
את השגיאה במדויק. המספרים המאוחסנים במאפיין זפפוחטא אינס משתנים מגירסה
לגירסה של 860655. משמעות הדבר היא שניתן לנצל את המאפיין בתור מזהה שגיאות
עמיד. מידע נוסף ניתן להפיק מהמאפיין חסטק1וז656ם של האובייקט זזם שמכיל תיאור
מילולי של השגיאה. עליך להציג את תיאורי השגיאות בחלון המיידי או בתיבת טקסט.
כאשר מתכננים תוכנית מראשיתה, תיאורי האובייקט ₪77 יכוליס לסייע לשפר את
התכנון ולפתח תגובות הולמות לשגיאות זמן ריצה שגרתיות, כגון ערך קלט מחוצ
לתחום משתנה. גירסה מוכנה לשימוש של התוכנית יכולה גם לשמור תיאורי שגיאה
בקובצ יומןו. הדבר מאפשר לתכנן תיקוני קוד מהירים לאורך חיי היישום. יחד עס
זאת, בדרך-כלל לא תרצה לזהות שגיאות על פי תיאוריהן שהם ארוכיס ממספריהן
(בנוסף, 1670508 עשויה לנסת מחדש תיאורי שגיאה, למרות שמספריהס אינס
משתנים).
4 ם,/ 2000 460655
המשפט 65006 משמש לציון נקודת המשך הפעלת היישוס לאחר זיהוי וטיפול
בשגיאה. אס ברצונך להעביר את השליטה למשפט שגרס לשגיאה, השתמש במילה
₪56 ללא ארגומנטיס כלשהם. גישה זו עשויה להתאיס למקריס בהס אתה מתקן
את התקלה שגרמה לשגיאה מלכתחילה, כגון ערך שדה חסר. אס מנגנון הטיפול
בשגיאות אינו מסוגל להתגבר על השגיאה, ייתכן שתרצה למרות זאת להמשיך בביצוע
התוכנית שורה אחת אחרי זו שגרמה לשגיאה. במצב וה השתמש במשפט
]6% 6וח650א. כל עוד השגיאה אינה משפיעה על תקפות שורות הקוד הנותרות, גישה
זו באה בחשבון. במצביס שהיישוס מגלה שגיאה שאינו מסוגל לטפל בה, ייתכן
שתרצה פשוט להפסיק את פעולתו באופן מיידי. במקריס אלה העבר את השליטה
למשפט |6|306ח!| 6וח5ס₪. בעת לכידת שגיאות, תכלול לעיתיס קרובות משפט
חסססחט= ואש או משפט מט50 50% בצירוף תווית. נוח להשתמש בתווית זו בתור
ארגומנט המשפט |6!806ח!| 65006 במקריס שברצונך לצאת מהשיגרה לאחר שגיאה.
דוגמאות ללכידת שגיאות
סעיף זה מציג שתי דוגמאות של לכידת שגיאות. הראשונה שביניהן היא יישום בסיסי
של לוגיקת לכידת שגיאות. הדוגמה מציגה לכידת שגיאות של שגרת פונקציה בתיקיה
6וסו. היא מציגה גס כיצד לעורר קודי שגיאות מותאמיס אישית. הדוגמה הראשונה
ממחישה את קלות הטיפול בשגיאות היישוס הפנימיות באמצעות לוגיקה זהה לזו
המשמשת ללכידת שגיאות ב-8460655. הדוגמה השנייה מנצלת לוגיקת לכידת שגיאות
בקוד התומך בטופס. התכונה הבולטת של יישוס זה היא תגובתו השונה לכל אחת
משתי מחלקות של שגיאות.
שגרת הפונקציה שלפניך משלבת לכידת שגיאה בדוגמה הפשוטה יותר שהוצגה קודס
לכו בתרשיס 1.16. שים לב כי שיגרה זו מבצעת אחת מארבע פעולות חשבוניות.
מעביריס לשיגרה שלושה ארגומנטים: שני אופרנדיסם ומחרוזת המציינת את הפעולה
החשבונית שיש לבצע על המספריס שהועברו אל הפונקציה.
שתי שגיאות לפחות עלולות להתעורר מפעולת הקוד בזמן ריצה. הראשונה, המשתמש
עלול לנסות לחלק מספר ב-0. פעולה זו יוצרת שגיאה מספר 11. שגיאה שנייה, הפעולה
עלולה ליצור תוצאה גדולה או קטנה מזו שמאפשר סוג הנתוניס. סוג שגיאה זה נקרא
במונחי 466655 שגיאת גלישה (זסזוס שסוווסטס) ומספרה הוא 6. מנגנון לכידת השגיאות
של השיגרה שלפניך לוכד את שתי השגיאות הללו במפורש, ובאופן משתמע מניח
מלכודת לכל סוג אחר של שגיאה. קטע הטיפול בשגיאה מסייע למשתמש, על ידי
הצעת תיקון לחילוק ב-0, וגם מסביר מה טיבה של שגיאת גלישה בשפה ידידותית
יותר מזו ש-600655 משתמש. הואיל ולעיתיס קרובות תכתוב יישומיס עבור קהל
משתמשים מוכר לך, תוכל לפנות אליהס באופן ישיר יותר מאשר תוכנית כללית (כמו
5))).
פרק 1: היכרות עם 84 75
(0חו5 45 הס8זסק0 ,2זססוחטאזוס0 , נזססוטצ| )2 סקר ס6 הסססחט=ת ס6וופטק
2 זס טק 60 6070 זסזזם הס
חס 8זק 0 6856 %ז56|66
"ח00ו00" 6856
052 + 1זססותטא|פ0 = 2זסטקו 60
"ח8600 50007" 6856
2זסוטא|ט0 - 1זסטותטאז!פ0 = 2זסלטקוח 60
"ח680ו!קט!ט]" 6856
2זסותטאו0 * 1זססותט)|פ0 = 2זסזטקו 60
"חסופוטום" 6856
2זסם טאו / 1זססותט)ז!פ0 = 2זסזטקו 60
סחם
:2 זו 60
חסטסחטת +ואם
| 2 סוס
חסחד 11 = זססוחטא.זזם +[
= ".0 החסז ]טרח 0ה56600 סְחַח8ח6 .2670 עס 06ועו0 %'ח68" א0ס0 150
"2000 66655( 05010זסו!] הווחו סק" , הסטפו'וס+חה1סצ
הסח ד 6 = זסטותט).זזם 5611ו₪
= ,הסחהוז0?ח1פ ,".5ווח!ו! 6ט]/ 626 0818 6006605 650|6" א0ס0 50
"2000 66655 1167050 פחוו ותהזסזק"
56
= ,הסטפוזס)ח1פע , הסשקן650כ.זום 8 " :" 8 זסטוחטא.זזם אס 5
"2000 66655( 11605016 חור ותהזסס:ק"
+ 0חם
]2 סקס 6והט65
חסססחט= סח=
המשפט זסזזם ח0 מופיע מייד לאחר תחילת התוכנית. הוא ממוקס שם כדי ללכוד
שגיאות מוקדם ככל האפשר. אם פונקציה אחרת קוראת לתוכנית הנוכחית, ייתכן
שכדאי להשתמש בלכידת שגיאות באותה תוכנית, כך שהיא תוכל להשתמש בלכידת
שגיאות עבור הארגומנטיס שלה המועברים לפונקציה 2זטטו 60.
אס תקליד ("חסטפּסו!קט|טוח" ,4 ,2)2זס)טקוה0ס6? בחלון 6ז6013ו0וח1 ותקיש זססחם,
הפונקציה תחזיר את הערך 8. החלף את פעולת הכפל בפעול חילוק (חסופוטו0), והערך
החוזר יהיה 0.5. כעת החלף את הארגומנט השני ב-0. לולא שילבת מנגנון לכידת
שגיאות, התוכנית היתה "נופלתיי בצירוף הודעת מערכת מתאימה. מנגנון הטיפול
בשגיאות מעביר את השליטה ל- ז0|6ח28זססטוקו 60 ברגע שנעשה ניסיון לחלק ב-0.
הרוטינה בודקת את שגיאה מספר 11, ומכיון שזו השגיאה שאירעה, היא מציגה
למשתמש הודעה שעליו לשנות את גורס התילוק למספר שונה מ-0. הקלד
6 החש 2000 460655
("ח0ס8סו!סט!טוח" ,4 ,2)1.795308ז6סטקוחס6? והקש זספסח= כדי לגרוס לשגיאת גלישה.
פעולת הכפל מנסה ליצור תוצאה גדולה מזו ש-66655 מסוגל לייצג. גס במקרה זה
מועברת השליטה ל- -0|6ח208זסזטקח 60 מייד לאחר שהפעולה החשבונית נכשלת.
לאחר שנקבע כי קוד השגיאה אינו 11, לוגיקת לכידת השגיאות בודקת את קוד
השגיאה כנגד 6. התאמת הקוד גורמת להצגת תיבת הודעה שמסבירה את סיבת
השגיאה.
קטע הטיפול בשגיאות של השיגרה משתמש במשפט 8561]...56ם... חסחד...16. הפסוקית
6 מציעה דרך ללכידת שגיאות שהקוד אינו לוכד באופן מפורש. בעת אתחול
היישוס, אינך מסוגל לדעת בדיוק אילו שגיאות תתרחשנה. במקרה וה השתמש
במשפט 656...חסחד...+1 ללא פסוקית ₪156 כלשהי. הפסוקית ₪56 מציגה מספרי
שגיאות בצירוף תיאוריהן כשהן מתרחשות בשלב הבדיקה. באפשרותך לנצל מידע וה
כדי לפתח מנגנוני לכידה מפורשיס עבור שגיאות מסוגיס מסוימיס יחד עס פתרונות
זמיניס למצביס אלה. במהלך בדיקת היישוס ייתכן שתהיינה לך הזדמנויות נוספות
לשכלל את אוסף הפסוקיות )₪156 של מנגנון הטיפול בשגיאות.
השורה האחרונה בקטע הטיפול בשגיאות היא המשפט 6וח650ח. משפט זה מעביר את
השליטה לשורה שממנה יוצאיס מהשיגרה. באפשרותך גס להשתמש במשפטי 6וח₪650
נפרדים לכל אחת ממלכודות השגיאות. גישה זו מתאימה למקריס בהסם היישוס מחייב
אותך לנקוט פעולות שונות לכל סוג של מלכודת שגיאות.
מנגנון הלכידה לא ילכוד סוגי שגיאות אחדיס. לדוגמה, הוא לא ילכוד שגיאה שמקורה
באיות שגוי של הפעולה החשבונית, כגון חס68!כ₪|טוח במקוס חסטפסווסטוטוח. שגיאת
מפעיל מעין זו עוברת דרך משפט 6856 56160 מבלי לעצור כדי לבצע פעולה חשבונית
כלשהי, עד שהיא מגיעה למשפט חסססחט 6ואם. יש צורך ללכוד שגיאה זו ולהודיע
למשתמש מה עליו לעשות. הפתרון הוא לזהות את הבעיה בעזרת הפסוקית ₪56 6856
במסגרת המשפט 6856 56!60%. לאחר מכן מעוררים שגיאה מותאמת אישית שמודיעה
למשתמש כיצד לנהוג. לוגיקת הלכידה עמידה מאוד, ולכן עליך לשנות רק את המשפט
6 56!60%6. הקטע הבא מתוך הקוד המתוקן מציג גירסה חדשה, הכוללת רק שני
משפטים נוספים:
חסו 068 6856 56|66%
"ח0סו00" 6856
2זסותטאופ0 + 1זססותטא|פ0 = 2זסזטקו 60
"5000786000" 6856
2זסםותטא|פ 0 - 1זססותטא|פ0 = 2זסזטקו ס6
"חסוספסו!קט!ט]" 6856
2זסםותטא|0 * 1זססותטא|פ0 = 2זסזטקו ס6
"מסופוטום" 6856
2זסם טאו / 1זססותט|פ0 = 2זסזטקוחס6
6 60856
". חסוסהזסקס פחסז/" , ,1 56וב₪.זום
וחם
פרק 1: היכרות עם 84 | 77
השורה שלאחר ₪56 6856 מציגה את התחביר לייזוס קוד שגיאה מותאמת אישית.
שגיאה מספר 1 אינה מקבלת הצבה מ-080 ,%84 או ססה. לכן, כאשר המשפט
6 6856 לוכד פעולה ששמה מאוית בצורה שגויה, הוא מעורר שגיאה מותאמת
אישית וזו מעבירה את השליטה למשפט ז270800!60זס)טקוחס6. הפסוקית ₪156 בקטע
משפטים זה מזהה את קוד השגיאה 1 ויוצרת תיבת הודעה ובה קוד השגיאה והתיאור
המותאס אישית ''חסטזסקס פחסז/יי (פעולה בלתי חוקית). לאחר שנסקור את תהליך
לכידת שגיאות בעזרת טופס, נחזור לנושא בחירת השגיאה המותאמת אישית.
הקוד התומך בטופס שמוצג בתרשימים 1.18 עד 1.20 מתבסס על משפטי
)...586 זס מקונניס כדי לטפל בתגובות לטופס. כזכור, שגרת אירוע הלחיצה
עבור לחצן הפקודה עוברת בלולאה על כל הפקדיס בטופס כדי למצוא את שתי תיבות
הטקסט. הדבר נעשה כדי להימנע משגיאה המתרחשת במקרה שהפונקציה |וטא15
מופעלת על פקד, כגון תווית או לחצן פקודה, שאינו תומך בפונקציה זו.
גישה חלופית היא לאפשר לשגיאה להתרחש, ללכוד אותה ולהתאושש מהבעיה.
הפעלת הפונקציה ווטא15 על פקד שאינו מתאיס לה גורמת לשגיאה מספר 438. לפניך
הגירסה החדשה של שגרת האירוע 6166 6חפט05 ח6.
()01166 605001 500 סזְהעוזק
קז דזסזז0ו ה 5 0 607 זסזזם חס
.5 ]8 0+ 006066 '
.וס 6 6 . ה50766 ח1 60 ה₪86 זס=
הסח ד (6טוב3ּ/.60)!וטא15 זז
= ,".65א0ם לטסחו 00% חו הסוטהווס)חו %67ח6 016856" 80% ₪50
"2000 66655( 116705010 פחווחוחהוססזק" ,הסטאוזס+חה1סע
ואבו
זסת %ואם
+ 0חם
:ור 5
60 %אסא
:ו 5
ספ ++וא=
:קז סז ו 5
חסחך 438 = זססוחטא.זזם +[
רת 5 ₪656
56
= ,הסטפוזס)ה1פע , הסשקן650כ.זום 8 " :" 8 זסטוחטא.זזם אס 5
"2000 66655 16705016 פחורחוח3ּיוסס:ק "
או 5 6506
+ 0חם
טפ 0ח=
8 החש 2000 460655
שיס לב כי הלוגיקה של לכידת השגיאות מאריכה את הקוד, למרות שהיא מאפשרת
להסיר אחד משני משפטי 66א...ח₪86 זס=. הלוגיקה החדשה ללכידת שגיאות עמידה
יותר. לולאות זס] המקוננות נמנעות מסוג שגיאה אחד בלבד - שגיאה מספר 438.
להלכה, החלופה החדשה יכולה לטפל בכל סוג שגיאה. בנוסף, היא מסוגלת להגיב
לשגיאות בשתי דרכיס שונות. שיס לב כי שגיאה 438 מגיבה בהעברת השליטה אל
המשפט 64% בחלק שנותר בלולאת זס"]. הדבר מאפשר לתוכנית להמשיך לטפל
בפקדיס נוספים שתואמים לפונקציה |וטא15. שגיאה מסוג אחר כלשהו גורמת לשגרת
האירוע להסתיים לאחר הצגת תיבת הודעה ובה מספר השגיאה הבלתי צפויה
ותיאורה.
העלאת שגיאות
הפונקציה 88156 (העלאה) של האובייקט זזש עמידה, אך היא מחייבת לאפשר את
הטיפול בשגיאות. הוספת רוטינות טיפול בשגיאות עלולה להאריך את הקוד. אם אין
לך ניסיון רב בכתיבת קוד וברשותך שיגרה קצרה שיש לה פוטנציאל קטן לגרוס
לשגיאות, ייתכן שתרצה דרך פשוטה יותר להחזיר קוד שגיאה.
השיגרה שלפניך מבצעת ואת בעזרת הפונקציה זום/6. שיטה זו אינה עמידה לתקלות
כמו מנגנון שלס לטיפול בשגיאות, מכיון שהיא לוכדת שגיאות מסוג אחד בלבד. הואיל
ולא קיים מנגנון לטיפול בשגיאות, היישוס כולו עלול לקרוס אס מתרחשת שגיאת זמן
ריצה, אך קל ופשוט להשתמש בפונקציה זזם/6. הפונקציה אינה מתנגשת עס קודי
שגיאה מוכללים, מכיון שאינה מחזירה קודי שגיאה באותו מסלול. עליך לשקול את
יתרונות וחסרונות השימוש בפונקציה זזפ6 במקריס המחייביס החזרת קוד שגיאה.
(0חו567 45 הסח8ז6ק0 ,2זספוהט;זוסם , 1זססוהטאופ)1זס6זט קר 60 הסססחט- 6ווסטק
חס 8ז6ק 0 60856 ז56|606
"חסטו00" 6856
052 + 1זססותטא|פ0 = 1זסזטקו 60
"ח500078600" 6856
02 - 1זססותטצז!פ0 = 1זסטקו 60
"ח0ו3ס6ו!קט!ט]" 6856
2זסותטאו0 * 1זססותטא|פ0 = 1זסזטקו 60
"חסופוטוסם" 6856
2זסם טאו / 1זססותטאזופ0 = 1זסזטקו 60
6" 6856
(7:)2002ם/6 = 1ז66טס 60
סחם
חסססחט= סח=
הפונקציה לוכדת שגיאה של פעולה שאויתה בצורה שגויה או כזו שאינה נתמכת בקוד.
המשפט 6856 5616066 מבודד בעיות אלו באמצעות הפסוקית ₪56 6856. כשהמשתמש
מקליד פעולה שגויה, הפונקציה מחזירה נתון מסוג )חאוז שסוג המשנה שלו זסזז=
פרק 1: היכרות עם 84 79
מכיל קוד שגיאה מספר 2002. גירסה זו אלגנטית יותר מהשיגרה 2זסזטקוחס6 שהוצגה
קודס לכן בפרק. יחד עס ואת, 2זסזטקוח 60 לוכדת במפורש שגיאות מסוגי חלוקה
באפס וגלישה, גם כשהיא מחזירה שגיאות מסוגיס אחרים. השיגרה 1זטוטקוחס6 קצרה
בהרבה ממנה ולוכדת את הבעיה היחידה של פעולה שאויתה בצורה שגיאה, או כזו
שאינה נתמכת בקוד.
הפונקציה ז6/₪7 אינה מושפעת מהתנגשויות בין מספרי שגיאה של 8/ ו-06055, אך
זוג השגרות שלפניך מפשט בצורה משמעותית את תהליך איתור קודי שגיאה פנוייס
שתוכל| לנצל | לשימוש | המותאם אישית | שלך. הפונקציה| הראשונה,
00560 /, מציגה את קודי השגיאה בטווח המספרים שבשימוש %84
ו-40. עליך לצייןו את המספר הפותתח והמספר המסיים בעת הקריאה לשיגרה.
המספרים הנעדרים מהפלט זמינים לשימוש בתור קודי שגיאה מותאמים אישית.
השיגרה השנייה מאפשרת אף היא לציין מספר פותח ומספר מסיים של הטווח שבו
ניתן לאתר קודי שגיאה. שיגרה וו, לעומת זאת, מדפיסה בחלון המיידי את קודי
השגיאה שאינס שמורים על ידי 84 או 0פ. חלק גדול מקודי השגיאה של 400 הס
מספרים שליליים גדולים.
(0ח=סחו ,%ל5לחו)15 סז 00560 סה8/ פט5
509 45 ז0זזם577/60655 ,חַחס] 5 6006זסזזםסחו הזוס
0חםחו סד ז%500חו = 6006זסזזם%חו זס=
(%77070006ח1)ז770 66655 = ז507/66655770
הסח ד "" <> ז70ז=50/66655 +1
= <> ]5076665570 +1
הסח "זסיו 60ח0[660-0661 זס 60ח0681-חסטפּסווססה"
5766655 ,60006זסזז=סחו זחוזק. פטטסס
+ 0חם
+ 0חם
6 ז שחו זאסא
50 8ח=
(0ח=6ח! ,15531 זסזז 560 חנ ספ / פט5
509 45 ז0זז50760655 ,ַחס] 5 6006זסזזםסחו הזוס
0חםתחו סד +%500חו = 6006זסזזםחו זוס=
(%77070006ח7707)1 66655 = 5076665501
= = ]50/606552707 0 "" = 7ז0ו50/66655 +1
חסחך "זסיו6 60ח0[660-0611 זס 60ח0681-חסטפּסווססה"
5000655 ,6006זסזוםזחו %חוזק. פטססס
+ 50
6 סז שחו זאסא
50 06ח=
0 החש 2000 460655
פקודות מאקרו
פקודות מאקרו אינן חלק מ-84/, אך הן מאפשרות להפוך יישומי 406055 לאוטומטייס
בצורה קלה ופשוטה. אחד היתרונות הגדוליס של פקודות מאקרו הוא שאין צורך
לוכור את התחביר שלהן; 460655 מאפשר לבחור בקלות פעולת מאקרו מתוך תיבת
רשימה נפתחת. לעומת זאת, טכניקות ניפוי הבאגים של מאקרו אינן עשירות כמו אלו
של 8/. חיסרון נוסף - פקודות מאקרו מאוחסנות במכולת מאקרו נפרדת, ולא
מאחורי טפסים, מה שעלול לגרוס במשך הזמן לבעיות תחזוקה. בנוסף, פקודות
מאקרו של 466055 שונות מאלו של |66אם, סזסש ו-+חוסקזסשוסק. לאמיתו של דבר,
פקודות מאקרו הולכות והופכות למיושנות.
אס השתמשת עד כה בגירסה קודמת של 160655, יש לך בוודאי ניסיון מעשי בעבודה
עס פקודות מאקרו. במהדורות 866655 קודמות, פקודות מאקרו היו האמצעי היחיד
ליצירת אפשרויות אתחול מיוחדות ותפריטים מותאמים אישית. מעתה תוכל לנהל
תפריטיס באמצעות אובייקט האוסף 5זהם0חח 60 (סרגלי פקודות) של 8/. בנוסף,
באפשרותך לנצל את תיבת הדו-שיח הפעלה (600ז50) לשליטה במיגוון ההיבטיס של
אתחול יישוס 60655, כגון הצגת טופס בסיוס תהליך אתחול, ציון אס המשתמש יכול
לערוך שינוייס בתפריטיס ובסרגלי כלים, וקביעה אס יוצג חלון מסד הנתוניס.
תכנון פקודות מאקרו
כדי לעבוד עס פקודות מאקרו, עליך לדעת כיצד להשתמש בממשק המאקרו וגם
להכיר בצורה בסיסית את פעולות המאקרו. תרשים 1.28 מציג את חלון המאקרו
לאחר טעינת מסד הנתונים סחוששחצזסו.
כל מאקרו של 466855 מורכבת משורה אחת או יותר בחלון מאקרו (0ז186!). כל שורה
מציינת פעולה (כגון העברת מיקוד לפקד), תנאי אופציונלי עבור הפעולה והערה
אופציונלית. האזור ארגומנטים של הפעולה (פטחסוחטףזה הס60ה) בתחתית החלון
(מוצג בעת בחירת פעולה) מאפשר לציין את האפשרויות עבור כל פעולה ומציג עזרה
עבור הפריט שנבחר. בנוסף, השורה הראשונה בכל מאקרו מציינת את שס המאקרו
(בחר שמות מאקרו (65ו8 0ז1867]) מהתפריט תצוגה (ש6ו/) של 206055 אס אינך רואה
שמות מאקרו).
פעולות מאקרו רבות כוללות אפשרויות שניתן לבחור בהן באמצעות לחיצה פשוטה.
לדוגמה, השורה השנייה של המאקרו שפוששזק בתרשיס 1.28 (השורה בעלת המשולש
שקודקודו פונה ימינה) מציגה תיבת הודעה. באזור ארגומנטים של הפעולה בחלון
ניתן לבחור בארגומנטיס של תיבת ההודעה מתוך תיבות רשימה נפתחות. לדוגמה,
תוכל להשתמש בתיבת הרשימה הנפתחת סוג (6סץד) כדי לבחור בסמל שיוצג בתיבת
ההודעה.
בגרסאות קודמות, הבחירה בעזרת הצבעה ולחיצה העניקה לפקודות המאקרו יתרון
מוחלט על קוד 84/ מבחינת נוחות השימוש. כיוס, 84 כולל את הרכיב 56ח06|!!556ח1.
פרק 1: היכרות עם הפע | 81
אומנס קל להשתמש בפקודות מאקרו עקב קלות הבחירה של ארגומנטים, אך הן אינן
מציעות את הממשק הגמיש שמאפשר להציג בו-מנית את הקוד (לרבות הארגומנטים)
של פקודת מאקרו בעלת שורות רבות.
העמודה החשובה ביותר בחלון מאקרו היא העמודה פעולה (חס60). אינך צריך
להקליד פעולות בעמודה זו; באפשרותך ללחו על שורה כלשהי בעמודה כדי לקבל
תפריט מלא של פעולות מאקרו. בעמודה תנאי (חסטוטחס6), משמאל לעמודה פעולה,
תוכל להגדיר קריטריוניס ששולטיס באופן מותנה בביצוע הפעולה באותה שורה.
תוכל לאחסן פקודות מאקרו רבות באובייקט מאקרו יחיד. זו דרך אפקטיבית לאחסון
פקודות מאקרו רבות המשתפות ביניהן תפקוד כללי. השתמש בעמודה שם המאקוו
(6וח8] 8670) כדי להקצות שמות לפקודות המאקרו שנמצאות באובייקט המאקרו.
בעת הקצאת פקודת מאקרו לפעולה על פקד בטופס או בדוח, מצייניס את המאקרו
באמצעות שס המורכב משני חלקיס: החלק הראשון הוא שס אובייקט המאקרו,
והחלק השני הוא שס פקודת המאקרו המצוין בעמודה שם המאקרו (הפרד את שני
חלקי השס בתו נקודה, כמו בשס 06|0ץ05.0150!8ז36 וץו).
[<1םן; | סזסה3) : 018100 1.3615 זסחו0ז5טו2) ;
-
וס 6ב סמו
הזוס" 8/0 305 1 055006 06 60 60ח86:זם
סז חסוזקס זס=30615 מחוזם 56 50 68ח0:56.
סט חטש ץ'זטחנוס 5616016 506 3016ח6 סח 30 ,65וטחנוס=) [1ה 566% ספ ץך 565%/8|6 | 1=[ז306/5=0 |פחוזק]] )הטס-:56160 6|סהחם
= טס ע'זלהטוס-:56160% 6ת? 6016 , ע'מחטוס )> 50606 5666060 זספנו זך 56%%/8|66 | 2=[ז30650. מחוז]
.00% ספחזס6 561665600 56 60 0 010 8
הסספנום אופו/י6זס 86 0 0136086
.660705 1 ושהוסזק השק | 1=[זס3065 חוזק] בב
...655806 3 01503 ,56166080 5 עשחטוס6 סח 1 א0חָ5] | 2=[זס=306!5. |שחוז]
...אפ 600 5616660 06 50 :> 00 ₪
.3010 56 5500 0ח8..- ב ₪
הטוס 56156060 זם] 1660705 אוסו/יסזם חק 07[=2 30915 מחוזט]
הזז רסו 1.3015 ₪500 שח 156 86
= הסספנום לחוז 06 0 063008
5 תשחחנהזה. הסוסה
זפטוח וסץ ,30| לחוזם זם אושוישזם סד בי
5 ב
| 6חסו מצד
,חס( :אס 6הַ6553 חל חן 15013 60 חסס! זט 6פ/ש שח6 56166 חנו 8 אק וד
זוי . הסה ותזסח1 יחה , !טהוחזב א , ?הַהוחזב/ ,וז
.605 %ח076ז3 עַחחָו5 1501 ד פשאוסטחועע חב פוסטחועע
.זהסוחטַז וט חס קוסת זס] 1= 655ז
תרשים 1.28: המרכיבים העיקריים של ממשק המשתמש בחלון מאקרו (סז1!860)
5 כולל שגרת המרה מוכללת לתרגוס פקודות מאקרו לקוד 84/. הפעלת רכיבי
ההמרה משתנה במקצת אם היישוס קורא לפקודות המאקרו מתוך טופס (או דוח), או
מתוך חלון מסד הנתוניסם. במקרה הראשון, בחר באפשרות מאקרו (0ז86) מתוך
תפריט כלים (100!5) ולאחר מכן בחר באפשרות המרת פקודות מאקרו של טופס ל-
6 | טפוש 28510 |508ו/ סד 1186705 5'תחזס- +פעצח0ס6) או באפשרות המרת פקודות
מאקרו של דוח ל- 83516 | טפוש 88510 |808ו/ סד 86705 605 וסעחס6). כדי
להמיר מאקרו מתוך חלון מסד הנתונים, בחר אותו כרטיסיה מאקרו. בחר בתפריט
קובץ (6!ו₪), בחר שמירה בשם (45 58%6) ובתיבת הדו-שיח שמיה בשם, בחר מודול
(6!ט100) מתיבת הרשימה הנפתחת כסוג (5).
2 הח 2000 466655
8 לעומת פקודות מאקרו
פ הולך ומשתפר במידה רבה מאוד ממהדורה למהדורה, בעוד שפקודות מאקרו
נותרו כמעט ללא שינוי. ווהי הסיבה העיקרית לעבור מפקודות מאקרו ל-84/, אך
קיימות סיבות נוספות :
> מנגנון לכידת השגיאות המוכלל ב- 88/ ורכיבי ניפוי באגיס גמישים נוספיס
מקטינים באופן דרמטי את עלות מחזור החיים ואת עלות הבעלות על יישומי
5, עקב הקטנת עלויות התחזוקה שלהם.
> 88/ מציע רכיבי עיבוד מתקדמיס רבים, כגון אפשרויות עיבוד בלולאה, תפקודיות
אינטרנט מעולה וקישורי ₪8 015 למקורות נתונים חיצונייס.
> הטופס המותאס אישית ומחלקות הדוח של 84 מפשטים את השימוש החוזר
בקוד.
4 84 מאפשר להציג בו-ומנית ארגומנטיס של כל השורות - לא רק של שורה אחת.
4 88/ מאפשר להפעיל פונקציות 01 של פאוססחו/.
פרק 1: היכרות עם הפע 83
2
מודלי גישה לנתונים
0 460055 16705066 תומך בשני מודלים לגישה לנתוניס: המודל המקובל 580
(20[6019) 460655 2868 - אובייקטי גישה לנתוניס) ו-450 (00[600 808 6%ש60 -
אובייקטי נתונים 6%ע160). 0אפ מיועד למנגנון מסד הנתונים 366, ומאפשר תכנות
פשוט ומהיר של מסד הנתוניס. 2000 466655 הוא הגירסה הראשונה של 4606565
שתומכת גס ב-400 בכל הקשור לטיפול במסדי נתוניס תומכי-360. במקוס להתבסס
על מנגנון מסד נתוניס יחיד, 00 מנצל מודל תכנות משותף כדי לספק גישה לנתוניס
אוניברסליים, כשאת הקישורים הבסיסיים למקורות נתוניס הוא מקבל מספקי
8 015. טכנולוגיות ₪8 015 תדחקנה בסופו של דבר את טכנולוגיות 0086 שקדמו
להן, כפי שמודל 00ג יחליף את מודל 0. אס תלמד לעבוד עס 400 כבר עתה, תוכל
לאמא במהירות את השיפורים העתידיים בתחוס הגישה לנתוניס של גרסאות 460655
שתבואנה בהמשך, כולל האפשרות לנצל מקורות נתוניס נוספים ושוניס.
בפרק זה נסקור את מודלי הגישה לנתוניס 40 ו-ססג, תוך שימת דגש מיוחד על ססג
כמודל תכנות. הסקירה התמציתית על 00 מציגה את תפיסות הפיתוח העיקריות
שלו ומבט היסטורי על גישה לנתוניסם באמצעות 460055. מודל 00 לא ימלא תפקיד
מרכזי בפרקיס הבאים, ולכן בפרק זה נציג את השימוש ב--36 ובמסדי נתוניס
מרוחקיס. לקבלת מידע על קוד סגת, עייו בעאגרה המקוונת של 460655 ובקר באתר
התמיכה המקוונת של 160506 (+וססק 5 05000.60ז6ווח.+וסקקט5). האתר מתעד בעיות
טיפוסיות ודרכי התגברות עליהן. מאמריס רביס באתר כוללים דוגמאות קוד.
בפרק הנוכתחי נתמקד בעיקר במודלי האובייקט 400 עבור 365 ביישוס 460655
ובספריות פסססג ו-אססה. נציג דוגמאות קוד מקיפות שממחישות כיצד לבצע מטלות
מסד נתונים אופייניות. הפרקים האחריס בספר מתבססים על הפרק הנוכתי ועוסקים
בהיבטי 800 נוספים, כגון שכפול מסד נתונים, גישה למסד נתוניס מרוחק ואבטחה
בסביבה רבת-משתמשיס.
פרק 2: מודלי גישה לנתונים | 85
סקירה כללית על 0
0 60055( כולל את גרסת 3.6 של ספריית 0ס, שהיא גרסת שדרוג תחזוקה של
גרסת 3.5 ששווקה עם 97 66655 (קיים דמיון רב בין הארכיטקטורה הבסיסית
והרכיביס התפקודיים של שתי הגרסאות). 40ם מתבסס על מודל אובייקט סביבת
העבודה לסוגי גישה לנתוניס. אובייקט סביבת העבודה יכול להכיל מידע הפעלה
(00ו5655), אבטחה וטרנזקציה (אובייקט סביבת עבודה מגדיר את האינטראקציה בין
היישוס והנתוניס).
קיימיסם שני סוגי סביבת עבודה: סביבות עבודה של 26% 60501%ו1 וסביבות עבודה
של 66%וופ₪6פס.
סביבות העבודה של 36%
סביבות העבודה של 26% (6508665)זס/ 26%) מיועדות למקורות נתוניס 360, 0086
הקשור ל-360 ומקורות נתוניס 154% הניתניס להתקנה. מקורות נתוני 0086 הקשור
ל-26% מאפשריס להתחבר אל מקורות נתוניס מרוחקים בסביבת 40 המוכרת. למרבה
הצער, סוג חיבור וה מחייב שימוש במודל 080 במלואו, והוא טוען את 36 גס כשאין
צורך בגישה לנתוניס. מקורות נתוניס 154% הניתניס להתקנה, משווקיס במיגוון
תבניות, כגון אס0פזהק ו- 1-2-3 0005].
לסביבות העבודה המקובלות של 36% יתרונות אחדים :
> עדכון נתוניס באובייקטיס של ערכת רשומות,
> צירוף טבלאות ממקורות נתוניס שוניס לערכת רשומות אחת,
> יצירת טבלאות המבוססות על שיטות 00 מוכרות, במקוס על מוסכמות שפת וסס
(00806ח3] החסטוחו6כ הַזהכ) של 501,
> איגוד נתוניס לטפסיס ולדוחות.
לסביבות העבודה של 36% אובייקטיס של אוספי פקטסז6 (קבוצות) ו-5675
(משתמשים), סביבות העבודה של 6זוס0086 אינן כוללות אובייקטיס כאלה. הסיבה
היא שמקורות מסדי נתוניס מרוחקים, כגון ז9/ז56 .501 607050%/ יכולים לנהל
בעצמס את האבטחה שלהס.
סביבות העבודה של 00617666
סביבות העבודה של 0086017666 (508065אזסאו 766ומ0086) היא טכנולוגיית סגס
חדשה יחסית שהוצגה לראשונה ב- 97 466655 וב- 3.5 40. משוס שבעבודה עס
מקורות נתוניס מרוחקים של 0086 אין שימוש באובייקטי האבטחה של סמס,
ואובייקטי 30ם אחריס פועליס בצורה הטובה ביותר עס מקורות נתוניס שמחובריס
בצורה מקומית, 16705084 יצרה את מודל האובייקט 66זו860סס, הזמין מסוג סביבת
עבודה נפרד. סביבת עבודה זו מאפשרת גישה מהירה וישירה אל מקורות נתוניס מסוג
6 הח 2000 460655
6 (כגון ז6/ז56 501) תוך עקיפת הצורך להשתמש ב-26. אינך מאבד את
האפשרויות הרבות הטמונות במודל אובייקט, ואינך חייב להסתמך באופן בלעדי על
פקודות 501 כמו במקרה של שאילתות מעבר של 501.
להלן מספר היתרונות העיקרייס של סביבת העבודה 760ומ86כ0:
> שימוש במקורות נתוניס מרוחקיס ללא טעינת מנגנון 36%,
4 שאילתות אסינכרוניות,
4 גישה משופרת לתפקודיות מסד נתוניס מרוחק, כולל סמניס ושגרות מאוחסנות
(770660765 560760),
> עדכון אצוות של מקורות מרוחקים מתוך מטמון מקומי,
> החזרת ערכות תוצאות מרובות באמצעות שאילתה בודדת.
לסביבות העבודה של 008601766 ספריית סמנים עשירה יותר מזו של סביבות
העבודה של 26%, והן תומכות בסמניס דינמייס (5זספזטס 6וותהחץ0) ובסמני עדכון אצווה
(9ז6750 6866קט ח08%0) שאינם זמיניס בסביבות עבודה של 2%. הסמן הדינמי מאפשר
להפעלה (חסו5655) להציג שינוייס שנערכו על ידי משתמשיס אחרים, מבלי לבצע מחדש
שאילתה על מקור הנתוניס. סמן עדכון האצווה מאפשר לעדכן אסינכרונית מקור
נתוניס חיצוני, דבר התורס לשיפור הביצועים, משוס שאין צורך לנעול רשומות.
הערה:
סמנים מגדירים את סוג ומיקום הגישה למקור נתונים. הגדרת סמן עשויה
לכלול מספר מאפייני מקור נתונים. לדוגמה, סמן יכול להיות בר-עדכון או לא. סמן יכול
לאפשר תנועה קדימה בלבד או תנועה דו-כיוונית. הם יכולים להתעדכן באופן אוטומטי
כדי לשקף שינויים או הודעות במסד נתונים, והם יכולים לחייב פעולת רענון מפורשת
כדי להציג גירסה עדכנית ביותר של מסד הנתונים. תוכל לייעד סמן שפועל בשרת
מסד נתונים מרוחק, או בתחנת עבודה מקומית.
כדי להפיק את מירב התועלת משתי סביבות העבודה, עבוד עס סביבות עבודה מרובות
של שני הסוגים כשהן פתוחות בו-וּמנית. פעולה זו מאפשרת לנצל היטב את פשטות
הטפסים המאוגדים לנתונים שמקורס בסביבת עבודה של 7606ופ0086. כל שעליך
לעשות לשם כך הוא להשתמש ברשומות המוחזרות בסביבת עבודה של 16%.
אובייקטים המשותפים לסביבות העבודה
של 26% ו-66%ופ0₪6 0
בשני סוגי סביבות העבודה, אובייקטיס של 540 מאורגניס בדרך כלל בצורה
היררכית. תרשיס 2.1 מציג את ההיררכיה של האוספים והאובייקטים של סגס
בסביבות עבודה של 26. תרשים 2.2 מציג את ההיררכיה של האוספים והאובייקטיס
של 50 בסביבות עבודה של 760ומ86פס0.
פרק 2: מודלי גישה לנתונים | 87
צפא
|
ה0ו90ו!60 | 8 |
סק |
| א6סה/ || 65א06ה! |
| 08 |
| סו |
תרשים 2.1: אוספים ואובייקטים של 040 בסביבות עבודה של 160
ו
ח0סו60!!60
יי
תרשים 2.2: אוספים ואובייקטים של 0 בסביבות עבודה של 005860176
406055 2000 ₪ 8
האובייקט 6חופהםטפ
6זףַחם מס הוא אובייקט 540 ברמה הגבוהה ביותר המיועד לשתי סביבות העבודה.
השיטה 650866א676356//07 (יצירת סביבת עבודה) של אובייקט ה, משמשת לפתיחת
הפעלה (ח0ו5055). 6מְץד (סוג) הוא ארגומנט אופציונלי של השיטה, שמאפשר להגדיר
סביבת עבודה של 360 או סביבת עבודה של 6זו860ס0. תוכל גס לקבוע את המאפיין
6 ופסכ (סוג ברירת מחדל) של האובייקט 6חופַח5טכ כך שאחת מסביבות העבודה
תיפתח במקרה של העדר הגדרה מסוימת לשיטה 50366א63%6//07'ו6. סביבת העבודה
מסוג 3% היא ברירת המחדל הטבעית. הגדרה כלשהי של הארגומנט 6סץד השייך
לשיטה 650866א676816/07 תדרוס את המאפיין 6קץזטוטפ/6כ, בין אס הוגדר מפורשות,
ובין אס לא.
המאפיינים והשיטות של 6ח08ח85כ הזמיניםס לשני סוגי סביבות העבודה כולליס
קבוצת פונקציות 40 בסיסיות. השתמש ב-6חו9ח85כ ליצירת מסדי נתוניס וניהולס.
השיטה 67688623132856 (יצירת מסד נתוניס) יוצרת סביבות עבודה חדשות. תוכל
להפעילה עס ארגומנטים כדי להגדיר את סדר המיון ומצב ההצפנה של מסד הנתוניס.
תוכל גס להגדיר את תבנית הגירסה של מסד נתונים כדי ליצור מסדי נתוניסם בצורה
מתוכנתת, התואמיס לגרסאות קודמות של 1066655. השיטה 6ִפהּפַהּז03 ח6ק0 (פתיחת
מסד נתונים) פותחת מסד נתונים נוכחי באובייקט של סביבת עבודה. לאחר יצירת
מסד הנתוניס תוכל להחיל עליו את השיטות 6012866 (דחיסה) ו-זוק₪6 (תיקון) כדי
לנהל אותו.
0הם מאפשר לעבד טרנזקציות (חסו860פ5ח8זד) באמצעות שלוש שיטות של האובייקט
6חופח=28 : 5חבז דה601, 5ח3 ד+ווהוחס6 ו-א836!!סא. טרנוקציה היא קבוצת פעולות
שמתבצעות בצורת הכל-או-לא-כלוס. אס נכשל אחד השלביס בשרשרת פעולות מסד
נתוניס, ניתן לבטל את כל הפעולות (866פ ||ס8). לדוגמה, אס הבנק מעביר סכוס כסף
מחשבון עוייש לתוכנית חיסכון, שתי הפעולות יחד - חיוב העוייש וזיכוי חשבון
החיסכון - חייבות להסתיים בהצלחה כדי שהרישוס בספריס יתאזן. אס אחת
הפעולות אינה מסתיימת בהצלחה, יש לשתזר את המצב שקדס לפעולות בשני
החשבונות. טרנזקציות יכולות להאיץ את תהליכי העיבוד במסדי הנתוניס על ידי
ארגון פעולות הכתיבה לדיסק באצוות. ניתן לקנן טרנזקציות עד חמש רמות.
חלק מהשיטות והמאפיינים הומיניס תלויים בסוג סביבת העבודה, אך בכל סביבת
עבודה, תהא אשר תהיה, שַחִפָהם8ס יכלול את האוספיס >זסם (שגיאות)
ו-6508665זס/ (סביבות עבודה).
האוסף פוסיוו=
האוסף פיוסזיזם משמש לטיפול בשגיאות המתרחשות בעת גישה לנתוניםס. האוסף מכיל
מספרי שגיאה ותיאור המשפט האחרון שנכשל. בעבודה עס מקורות נתונים מסוג
6 אפשר לקבל שגיאות רבות, מכיון ששכבות שונות של 0086 עשויות לדווח על
שגיאות שמקורן באותה תקלה, כגון מקור מסד נתונים מרוחק שאינו פעיל.
פרק 2: מודלי גישה לנתונים | 89
האוסף 5וסזזם, בדומה לאוספי 0אפ אחריס, הוא מבוסס-אפס. המאפיין א טס6 (מונה)
מציין את מספר השגיאות באוסף, וכל שגיאה נושאת מספר מ-0 ועד 1- +חטס6. הערך
האחרון באוסף פזסז₪ מקביל לאובייקט ום של 60 8856 |1508/ 605066
5חסספסו!קק (ה8/).
במהלך ניפוי הבאגים מהיישום, ייתכן שתגלה כי כדי לפשט את החיפוש אחר מקור
השגיאה או פתרון הבעיה, כדאי למספר את האוסף.
האוסף ססַבּ50>)'וס/ש
המאפייניס והשיטות של האוסף 6ס503אוס/ משמשים כדי להפנות להפעלות סביבות
עבודה בודדות. האוסף 8650806ז0) ומין תמיד, 866655 יכול לקיים הפעלות רבות
בו-ומנית, וגס היישומים יכוליס לפתוח ולנהל צירופיס שוניס של סביבות העבודה 36
ו-ז008601760. הפעלות אלו אינן מתקיימות מעבר להפעלת הכניסה, אך הן מסוגלות
להתקיים לכל אורך ההפעלה. באמצעות אחת התבניות הבאות תוכל לנצל את
הארגומנט 6וחגּ)] (שס) של השיטה 503806אז768%6//0ו6 כדי להפנות בצורה ייחודית
לסביבות עבודה מסוימות באוסף:
(6508665)0'זס//. 6חופַחם טכ <
("6הח508665)"]8אזס/. 6חופַחהםסס <
[6רח3 ] !508665אזוס/. 6חופַתםסס. <
כל אובייקטי 040 מבוססיס על תחביר הפניה זהה לתבניות שבדוגמה. שני הסגנונות
הראשוניס עומדיס בכללי 0כג. בתחילת דרכך בתכנות ססג, עליך לאמצ אחת מהן
כדי לשפר את מיומנויות ההגירה שלך.
אובייקטי 50866אזס/ משתפיסם שיטות חשובות אחדות עס האובייקט 6חופַחשפם, כגון
86, 2800856 026 ו-77805ה8601. שיטות נוספות כגון 6708%6)(05608
ו-67680607000 הן ייחודיות לאובייקט 80866אזס). שתי השיטות האלו מסייעות לנהל
אבטחה ברמת-משתמש בתוך סביבת העבודה.
האוסף ספהבּטַבּזבּ
באמצעות קוד אפשר לפתוח מסדי נתוניס רביס מתוך סביבת עבודה כלשהי. השימוש
ב-040 בשילוב עס 88/ מעניק יתרון ברור על פני ממשק המשתמש שמאפשר פתיחת
מסד נתונים יחיד בזמן נתון. ניתן להאיצ את הגישה על ידי שימוש בשמות משתניס
לצורך הפניה לאובייקטיס של מסד נתונים. גישה ו משפרת את מהירות הגישה
לאובייקטי סגפ רביס.
המאפיין 6ח8א של מסד נתוניס בודד בסביבת עבודה של 36%, הוא הנתיב אל קוב
מסד הנתוניס. קוד 84/ מתייחס למסד הנתוניס בפרויקט הנוכחי באמצעות הפונקציה
0+ח6ייוט6. 860655 תומך גס בתחביר חלופי של: (0()0) 6חו9ח85כ כדי להפנות למסד
הנתוניס הנוכתי. תחביר פ0זחפזזטס יוצר מופע נוסף של פרויקט מסד הנתונים הנוכתי,
אך תחביר פַחוַּפַח085 מתייחס לעותק הפתוח של מסד הנתונים הנוכחי. תוכל לפתוח
0 החש 2000 460655
אובייקטיס של מסד נתוניס במקורות נתונים השוניס מ-26, כגון 154% (לדוגמה,
6 או סזקאס] 07050%ו1). בצורה זו ניתן להשתמש במקור נתונים 86ס0, אך
הביצועים ישתפרו כשמשתמשיס בסביבת העבודה 6%זו00860 (כפי שיתואר בסעיף
אובייקטי טסביבת העבודה של 17666פ86פס0).
האוסף 466017056%
אובייקט ₪66017056% (ערכת רשומות) מייצג רשומות בטבלה או את אלו שהתקבלו
כתוצאה משאילתת החזרת שורות (חוחזטס6ז-ווסז). ערכת רשומות חדשה נוצרת
באמצעות השיטה 866070656% ח6ק0. אפשר להפעיל את השיטה מתוך אובייקטיס
אחדים, לרבות אובייקטי מסד נתוניס ו-18!606, וליצור בעזרתה ערכת רשומות. עס
האובייקטים הנוספים הכולליס את השיטה 8660/0566 ח6ק0, נמניס אובייקטי
וס ואפילו ערכות רשומות נוספות. שיטה זו מוסיפה ערכת רשומות חדשה
לאוסף ערכות הרשומות. אפשר ליצור 5 סוגי ערכות רשומות, כמתואר בטבלה הבאה.
אובייקטים של ערכת רשומות
סוג זה מתייחס לרשומה בטבלה, כגון זו שיוצרים באמצעות השיטה
. הסוג מתייחס רק לטבלה יחידה של 166. ניתן
לעדכן ערכי שדה, להוסיף ולמחוק רשומות. אין סמן 0086 מקביל
פה | סוג זה הוא אוסף רשומות דינמי שעשוי להיות תוצאה של טבלה
אחת או יותר. השדות הנבחרים ניתנים לעדכון, ולכן ניתן להוסיף,
למחוק ולשנות רשומות. המאפיין ₪8%8 008%806 משמש לקביעה
אם שדה כלשהו הוא בר-עדכון. במסד נתונים מרובה-משתמשים,
ניתן להציג שינויים נבחרים שנערכו על ידי משתמשים אחרים. סוג
ערכת רשומות זה מקביל לסמן 56ץ6א של 0086
| סוג זה מאפשר לבחון רשומות המבוססות על טבלה אחת או יותר,
אך אינו מאפשר לשנות אותן. ברגע שטוענים תמונה (0%ח805ח5)
לזיכרון, היא אינה משקפת שינויים נוספים כלשהם שנערכו
בטבלאות. סוג ערכת רשומות זה מקביל לסמן 5/9806 של 0086
ץוחס-0זוזס= | סוג זה זהה עקרונית לערכת הרשומות 006ַ05כְ8ח5, אך ניתן לגלול
אותו קדימה בלבד. סוג זה מקביל לסמן ץוחס-6זהּאוזס? של 0086
6ווחהחץכ | סוג זה מייצג תוצאת שאילתה המבוססת על טבלה אחת או יותר.
משתמשים יכולים לעדכן את ערכת הרשומות על ידי הוספה, מחיקה
ושינוי רשומות. סוג זה גם מציג שינויים שנערכו על ידי משתמשים
נוספים בסביבה מרובת-משתמשים. סוג זה זמין רק בסביבות
עבודה של 6%ז1כס0086 ומקביל לסמן 6וווהחץ0 של 0086
פרק 2: מודלי גישה לנתונים | 91
השיטה 6786607056%ק0. שיטה זו וקוקה לארגומנט מקור שמציין את מקור
תוצאת ערכת הרשומות. כפי שהוזכר, ארגומנט טיפוסי הוא שס טבלה, שס שאילתה
או משפט 501. ניתן לציין גס את סוג ערכת הרשומות; אס אין מצייניס, 40ם מחזיר
ערכת רשומות מסוג 80|6ל, +6/0856 או ץוחס-6ז8אוזס), בהתאם למקור הנתוניס.
ארגומנט אפשרויות (זחסוחטזהּ 5חסטסס) מאפשר לציין אחת ממספר תכונות של ערכת
רשומות, כגון מניעת כתיבה לערכת רשומות או קריאה ממנה. ארגומנט סופי
(טחסונסָזהּ |8ח₪) מאפשר לקבוע את המאפיין 6ו0א106 של ערכת רשומות. מאפיין וה
מציין את סוג הנעילה התקפה בעת שיישוס מעדכן, מוסיף או מוחק רשומות מתוך
ערכת רשומות. בסביבות עבודה של 266, ההגדרות שניתן לספק לארגומנט זה תהיינה
בדרך כלל ץ|חס-680?, 0665| 655101506 ו- 06%5| 06פוחשקס. אס ההגדרה היא
ץוחס-680ז, לא ניתן לעדכן את ערכת הרשומות. 0665| 0655101506 גורס לשיטה %ו₪0
לנעול את הדף שמכיל את הרשומה. במצב 06%68! 1506 קס, משתמשים אחרים יכוליס
לעדכן את הרשומה עד שהיישוס מפעיל את השיטה פזְפּסקש. סידור זה יכול לשפר את
ביצועי ערכת הרשומות, אך עלול גס לגרוס להתנגשויות בין פעולות עדכון.
שיטות 866070656%. אפשר לשנות את הרשומות בערכת רשומות באמצעות השיטות
%, /עצ006., 026316 ו-6ז616. השיטות 01ם ו-6ז08ק0 משמשות במשולב לעדכון
הערכים בערכת רשומות. השיטה 506 פותחת רשומה לצורך עריכה, והשיטה 86ססש
מחילה את הערכים החדשיס על הטבלאות שבבסיס ערכת הרשומות. השיטות
006 ו-08%6ק פועלות במשולב. הקוד מודיע על הכוונה להוסיף רשומה על ידי
הפעלת השיטה ש200%66. לאחר מכן שומריס את הרשומה החדשה באמצעות השיטה
6 השיטה ₪8|666 מסירה את הרשומה הנוכחית מערכת הרשומות. לאחר
שרשומה נמחקת היא ממשיכה להתקיים עד למעבר לרשומה חדשה. השיטה 6|6066
אינה מחייבת את השימוש בשיטה 0806סש.
בעת הוספת ערכת רשומות לאוסף ₪66070560 אפשר להשתמש בקבוצת השיטות 6עסוא
(מעבר אל) כדי לנווט אותה. השיטה +א6אפעסוא מנווטת אל הרשומה הבאה, והשיטה
5 מנווטת אל הרשומה הקודמת. כשנמצאיס ברשומה הראשונה
ומפעילים את השיטה פטסוטסזקפטסוא, 040 מחזיר סמן 80 ₪6 +0 פהוהחוס6)
מערכת הרשומות. אפשר לנצל סמן זה כדי לציין מעבר לרשומה כלשהי שבאה לאחר
הרשומה הראשונה. באופן דומה, כשנמצאיס ברשומה האחרונה ומפעיליס את השיטה
]66%עסו, 0הס מחזיר סמן ₪0 (6= 01 6חהם). ניסיון לנוע מעבר לסמניס 80 או ₪07
יוצר שגיאת זמן ריצה (זסזז= 6וחוד-חטח). השיטה 6טסוז מאפשרת לציין מספר שורות
קבוע למעבר. אפשר גס לקבוע מיקום התחלתי שונה מהרשומה הנוכחית. השיטות
|-35% 10/61 עוברות ישירות לרשומה הראשונה או האחרונה בערכת
הרשומות, בהתאמה. בערכות רשומות גדולות מאוד, עשויה לחול השהיה משמעותית
במהלך ההגעה לרשומות הקצה שבערכת הרשומות.
קבוצת שיטות נוספת מנווטת אל רשומה חדשה שעונה על קריטריוניס מוגדרים.
שיטות אלו הן 5%זו=6ח1", 61351ח1, +אסא שח ו-פטסועסיוקטחות. קריטריוני השיטה
מסוג 0חו= (חיפוש) נקבעיס באמצעות תחביר זהה לזה של הפסוקית =מפחה/ שבמשפט
. אס לא קיימת ערכת רשומות שעונה על הקריטריוניס שצוינו, שיטות אלו
2 הח 2000 460655
תספקנה למאפיין ה6פואסא של ערכת הרשומות את הערך 6טזז. אחרת, הן פשוט
תעבורנה אל הרשומה שעונה על הקריטריונים. השיטות א6א0חו= ו-פטסועסזקסחו=
מתחילות את החיפוש מהרשומה הנוכחית. השיטות =8זוח0חו= ו-01850ח= עורכות
חיפוש מהרשומה הראשונה או האחרונה, בהתאמה. בטיפול באובייקטים מסוג
3% השיטה 566% מסוגלת להפיק תוצאות מהירות יותר מאלו שיכולות לספק
שיטות 6חו=. כללית, בעת הפעלת השיטות 6607056 ח6ק0 ניתן לקבל תוצאות חיפוש
טובות יותר באמצעות משפטי 501. בשימוש בשיטות 0חו=, 6שסו! ו-566%, רצוי להגדיר
את המאפיין א06ח1 של ערכת רשומות, כדי לאפשר ארגון הרשומות בסדר הנכון
שנקבע על ידי שדות האינדקס.
אובייקטי סביבת העבודה של 36%
אובייקטיס של מסד נתוניס בסביבות העבודה של 360 כוללים אלמנטיס נבחריס של
סכימת מסד נתוניס, ובאפשרותם גם להפעיל אותם. לדוגמה, באפשרותך לפתות
ערכות רשומות לטיפול או להפעיל שאילתות פעולה שמעדכנות, מצרפות או מוחקות
רשומות. שיטות של מסד נתונים אף מאפשרות ליצור ולנהל עותקים. לפניך חמשת
האוספים ההיררכיים של מסד נתונים. האובייקט 8808856 כולל שיטות להוספת
אלמנטיס חדשיס לכל האוספים הללו.
5 ד
<>
5 <<
5-ו <
805 <
>
605
האוסף 60615וטבּד
אוסף זה מאפשר לגשת לאובייקטיס בודדים של /606!ט3ד במסד נתונים. אובייקטיס
אלה מכילים את האוספים ₪6|05 ו-65א1006, ולכן הס מאפשרים להגדיר טבלה
באמצעות אובייקט 189|8060. | באפשרותך להשתמש בשיטות | 67680660
ו-א61006ז6768 כדי להרכיב את הגדרת הטבלה. בעת השימוש בשיטה 6)0ו08%6ז6,
מגדיריס תחילה את השדה על ידי ציון שמו, סוגו וגודלו. לאחר מכן מפעיליסם את
השיטה 6ח6סס כדי להוסיף את השדה החדש לאוסף ₪66 עבור אובייקט ספ6וטבּד.
אם אוסף מכיל כבר שדה ששמו צוין כארגומנט, הקוד שכתבת ייצור שגיאת זמן ריצה
שניתן ללכוד אותה. תוכל לנצל ואת לניהול האובייקט )606!ט3ד למשל, על ידי הסרת
השדה הישן באמצעות השיטה 6!606.
בעת יצירת אינדקסיס, מפעילים את השיטה א0768061006 ומצרפים לאינדקס שדה
אחד או יותר. לאחר מכן מוסיפים את האינדקס החדש לאוסף 65א06ח1 עבור
האובייקט /189!806. אס קייס כבר אינדקס בשס זה, תקבל שגיאת זמן ריצה. תוכל
לנצל שגיאות אלו כדי לנהל את תהליך יצירת האינדקס של האובייקט 6806!ספד.
פרק 2: מודלי גישה לנתונים 93
האובייקט 19606 יכול לנהל קישורים אל טבלאות במקורות הנתונים 15%
ו-0086. הקוד דורש את המאפייניס 6%חח60 ו-6חַ66[]30!6%3זטס50 ואת השיטה
6867. השיטה 896060 0768%61 מופעלת כדי להגדיר הפניה במשתנה לטבלה
המקושרת. אחר כך מגדיריס את המאפיינים 600086605 ו-80!6806 661זטס5 של
המשתנה. המאפיין 6%חח60 מציין את סוג מקור הנתונים, כגון 5.0 08856 או
א.5 א800ז8ק, ואת הנתיב אל מקור הנתוניס הספציפי שאליו תיצור את הקישור.
המאפיין 6וח80!68 661זנוס5 הוא שס הטבלה המקושרת. לאחר קביעת מאפיינים אלה,
משלימיס את התהליך על ידי צירוף האובייקט ]30!606ד לאוסף 80665!טפּד.
האוסף 0615 וס 0
אוסף זה מאחסן את האובייקטים הבודדיס מסוג 060ץ067 במסד נתוניס. אובייקט
]טס הוא משפט 501 שמחזיר באופן טיפוסי קבוצת שורות או מבצע פעולה, כגון
עדכון, הוספה או מחיקת רשומות בערכת רשומות. כשמשפט 501 של אובייקט
פטס מחזיר שורות, יכול להיות לו אוסף ₪6!05 ובו שדות יחידים. אובייקט
זט יכול להכיל אוסף פוסזְסחִַהּזהּק, אס משפט 501 שכתבת מקבל ארגומנטיס
שמצייניס את הקריטריוניס שלו בומן ריצה. כשהאובייקט שסשוסטס פועל,
באפשרותך לציין פרמטריס אלה בצורה מתוכנתת (באמצעות קוד), או לאפשר
למשתמש לעשות זאת בזמן ריצה באמצעות תיבת דו-שיח.
תוכל ליצור אובייקטיס חדשיס מסוג 06ץז6ט0 באמצעות השיטה -6708%60067/26
עבור האובייקט 08198856 בסביבת העבודה של 36%, או האובייקטים סְהּפפַּזהכ או
ח6600החס6 בסביבת העבודה של 766ו00860. אס תיתן לאובייקט שפץשזפטס שס
באמצעות מחרוזת שאורכה שונה מאפס, 0כ יוסיף את השס אוטומטית לאוסף
5 וישמור את האובייקט %פץזפט0 באופן קבוע בדיסק יחד עס מסד
הנתוניס. השתמש בשיטה 26606 כדי להסיר פריט מהאוסף 666סעזס6טס. כל אובייקט
טס שהמאפיין חא שלו הוא מחרוות באורך אפס, הוא אובייקט ומני, ו-80ס
אינו מקייס אותו לאורך זמן. אובייקטיס 66פץז6ט0 זמנייס נוחיס לשימוש
כשהיישומיס צריכים ליצור אובייקטיס כאלה באופן דינמי.
שתי שיטות מאפשרות להפעיל אובייקט שפשזפטס. השיטה 6607056 ח6ק0 מחזירה
את השורות שבאובייקט )6סעז6טוס באמצעות המשפט 5607 5₪, והשיטה 66066א₪
מבצעת שאילתת פעולה. האפשרות זסזזםח0ס!ו00-89 יכולה לאפשר ליישוס לקבוע אס
אובייקט ]6פץז6ט0 נכשל בביצוע פעולתו המיועדת על כל הרשומות העומדות בדרישות
הקריטריוניס. כל עוד אובייקט 087060 מציית לכללי התחביר, הוא לא יגרוס
לשגיאה, גס במקרה שייכשל בביצוע פעולתו. האפשרות זסזזםחסוו₪0739 מחזירה את
המצב לקדמותו (886% ||0ז), אס האובייקט 060ץז6ט0 אינו מסוגל לבצע את כל
השינוייס. אפשרות זו אף יוצרת שגיאת ומן-ריצה כדי לסייע לבצע את פעולות העיבוד
הקשורות בתהליך, כגון הצגת הודעות למשתמש.
4 הח 2000 460655
האוסף 5חסו46|3%
האוסף 5חס0ג|₪6 (קשרי גומלין) ומערכת קשרי הגומלין שלו משמשים להגדרת
קישוריס (פ5אחו|) בין טבלאות באמצעות קוד. השיטה ח07680606!800 של האובייקט
6 יכולה לאתחל קשרי גומלין; היא מאפשרת ליישוס להגדיר קשרי גומלין
מסוג יחיד-ליחיד או יחיד-לרבים בין שתי טבלאות, לקבוע שלמות קשרים (|6/676008ז
שחפססחו) ולארגן מחיקות ועדכוניס על פי היררכיית קשרים (פרק 4 מרחיב בנושא).
מגדיריס קשרי גומלין ביןו טבלאות בהתאם לשדות משותפים בשתי הטבלאות.
האובייקט ח869|800 כולל אוסף ₪665 התומך בפונקציה זו. האוסף 5ח₪6|800
ואובייקטיס בודדיס מסוג ח₪6!800 ייחודיים לסביבות העבודה של 6%(. הס אינס
צמיניס בסביבות העבודה של 80%זו00860, מכיון שמנגנוני מסדי נתונים מרוחקיס
שומריס באופן טיפוסי בעצמס על קשרי גומלין בין טבלאות.
האוסף 5ז6חו600%3
אוסף זה מגדיר קבוצת אובייקטים של מכולה עבור מסמכי מסד נתונים. חלק
מהאובייקטיס מגיעיס מחלון מסד נתונים (28%90856): טפסים, דוחות, 567015 של
מאקרו ומודולים. כל אלה הס אובייקטים של 4660655 ולא אובייקטיס של מסד
הנתוניס 2360. האובייקטיס הנוספיס של המכולה הס אובייקטיס מבוססי-36: מסדי
נתונים, טבלאות וקשרי גומלין. אובייקט המכולה טבלאות כולל מידע על טבלאות
ושאילתות כאחד. אובייקט מכולה נוסף מכיל נתוני מתאר של קשרי גומלין שנשמרו.
אובייקטי מכולה מאחסניס מסמכיס המבוססים על כל הרכיבים השמורים של סוג,
כגון טפסים וקשרי גומלין. מסמכיםס אלה מספקים מידע מינהלי (ולא תוכן) על
האובייקטים שבאובייקט מכולה. מאפייניס נבחריס של מסמכיס כוללים תאריכי
יצירה ועדכון של המסמך ואת שס בעליו והרשאות הטיפול בו. 2% משתמש במידע
הכלול במסמך לניהול אבטחת האובייקטים של 460655, ושל הטבלאות והשאילתות
שלו עצמו.
חשוב להבין כי מסמכים באובייקטי מכולה שוניס מאלמנטיס של אוסף. מסמכים
מכילים אובייקטים שמוריס - בין אס הס פתוחים ובין אס לאו. אוספיס הס קבוצות
אובייקטיס פתוחים. אס אובייקט אינו פתוח, הוא אינו מהווה חלק מאוסף, אך הוא
עשוי להשתייך לאובייקט מכולה. בנוסף, מסמכים מכילים מידע מינהלי על
אובייקטים, אך אלמנטיס באוסף מכילים מידע על תוכן, עיצוב ואלמנטיס משניים של
האובייקטיס שבאוסף.
האוספיס 5ז₪56 (משתמשיס) ו-פקטסז6 (קבוצות) מכילים אובייקטים תואמיס
משלהס. אוספיס ואובייקטים אלה משלימים את מסמכי המכולה כדי לסייע ל-36%
לנהל אבטחה ברמת-משתמש. מסמכים כוללים הרשאות. משתמשים שייכים
לקבוצות. הרשאות מסמך מתארות רמות גישה של משתמשים וקבוצות. פרק 10
עוסק בהרחבה באבטחה ברמת-משתמש, לרבות משתמשים, קבוצות והרשאות.
פרק 2: מודלי גישה לנתונים | 95
אובייקטי סביבת העבודה של 00860166
כשמשווים את תרשים 2.2 לתרשים 2.1, ניתן להבחין כי מודל 008601766 חסכן יותר,
מכיון שסביבות העבודה של :008601766 מעבירות לשרתי מסדי נתוניס מרוחקים חלק
מהפונקציות שמנהל 26%. לדוגמה, שרתי מסדי נתוניס מרוחקים מנהלים את האבטחה
בעצמם, ולכן אין צורך באוספיס 05675 ו-5קטסז6. בנוסף, לא קיים אוסף 16065ט18,
מכיון ששרתי מסדי נתוניס מרוחקים מנהלים את טבלאותיהס בעצמם. כך הדבר גם
לגבי קשרים.
ישנס הבדלים נוספים בין שני מודלי סביבות העבודה: מודל 008601766 כולל אוסף
005 חדש בעל אובייקטים מקבילים משלו. אובייקט 08689856 ממלא תפקיד
אחר במודל 6זו00860, ואובייקטי 06/זסט) אינס מכילים אוסף 605ו₪. ניתן לגזור
אובייקט ₪660705% מאובייקט פץזפטס באמצעות השיטה 6607056 ח6ק0.
למרות ששתי סביבות העבודה כוללות אובייקט מסוג ספפּפפַּזכ, התנהגות האובייקט
בסביבת העבודה של 008601760 שונה במידת-מה מהתנהגותו בסביבת העבודה של
. בסביבת העבודה של 6606זו860ס0, אובייקט זה מכיל את המאפיין חטס6 שמחזיר
הפניה אל ח8000חח60. האובייקט 60000חח60 מכיל את המאפיין 08680856 שמחציר
הפניה אל אובייקט 6ִפהּפפּז8כ. במודלי 40פ, האובייקטים ח6000חח60 ו-8%90856
מהוויס דרכים שונות להפנות למשהו זהה. מאפייניס אלה מפשטים את המעבר
ממודלי סביבת העבודה של 36 אל סביבות העבודה של 00860176 וחזרה.
האוסף 6077665105
האוסף 6000660005 של סביבת העבודה והאובייקטים שלו מהוויס גורמיס קריטייס
בעת טיפול במסדי נתוניס מרוחקיס. בסביבות העבודה של 0086017606 מנצליס את
השיטה ח08000ח60ח6ק0 כדי להקים חיבור (ח6600חהחס6) אל מסד נתוניסם מרוחק.
הדבר מחייב ארבעה ארגומנטים, ששלושה מהס אופציונלייס. הארגומנט הנדרש הוא
השס. מתן שס לחיבור מוסיף אותו לאוסף 0660005ח60. שלושת הארגומנטיס
האחריס מגדיריס את טבעו של החיבור. מאחר שהם אופציונלייס, ניתן להגדירס בעת
יצירת החיבור או לאחר מכן. לעומת ואת, יש להגדיר חיבור בטרס ניתן יהיה
להשתמש בו לשליפת נתוניס לביצוע פעולה אחרת כלשהי במקור הנתוניס המרוחק.
לארגומנט 600066 חשיבות מיוחדת, בהיותו הארגומנט שקובע את המאפיין 66חחס6
של האובייקט ח6600חח60. ארגומנט זה מגדיר את מחרוזת התיבור. הוא מתחיל
ב-0086 ותו נקודה-פסיק (;) ולאחר מכן באיס נתוני החיבור הדרושיס לקישור אל
מקור הנתוניס המרוחק. נתוניס אלה יכולים לכלול שס מסד נתוניסם ושם קישור
ב-0086 והס גם יכוליס להכיל שס משתמש וסיסמה תואמת. מפרידים בין סוגי
המידע השוניס של הארגומנט באמצעות תווי נקודה-פסיק. יישוס יכול לבחון ולאתחל
את מחרוזת החיבור באמצעות המאפיין 6066 של האובייקט ח0 660₪חח60.
פרמטר אופציונלי נוסף של השיטה ח6600חח60ח6ק0 שולט בשני תפקודים נפרדים:
אופן התגובה של חיבור למידע לא שלם של מחרוזת חיבור, וצורת הפתיחה
האסינכרונית של חיבור. במקרה של מחרוזת חיבור שהמידע שבה אינו שלם, ניתן
66 החש 2000 60655
לאפשר לחיבור להיכשל וליצור שגיאת זמן ריצה, או ללכוד את השגיאה ולבקש
מהמשתמש להשלים את המידע. באפשרותך גס לנצל פרמטר זה כדי לקבוע פתיחה
אסינכרונית של חיבור. היישוס יכול לפתוח את החיבור ואחר כך לעבור למשימות
אחרות. יישוס 460655 יכול לשרת את המשתמש המקומי על ידי פתיחת טפסיס או
אפילו קיוס חילופי תקשורת עס המשתמש. באותו ומן ממש, שרת מסד הנתוניס
המרוחק מטפל בבקשת הקמת החיבור החדש. המאפיין 9ח0ט66אם!!50 של האובייקט
ח0ו66חהח0ס6 מאפשר ליישוס לדגוס את החיבור כדי לקבוע את זמינות השימוש שלו.
האובייקט ח0סו660חח60 כולל חמש שיטות :
> 86607056%ה6ק0. שיטה זו מחזירה קבוצת שורות ממקור נתונים מרוחק. מספר
רכיבי השיטה בסביבת עבודה של 008601766 רב יותר מזה שבסביבת העבודה של
%. קרוב לוודאי שההבדל הגדול ביותר ביניהס הוא שבעת הפעלת השיטה בסביבת
עבודה של 00860176 ניתן לציין יותר ממשפט 501 אחד, וכך יכול משפט
יחיד לספק ערכות רשומות רבות לשימוש מקומי.
> 6!056. שיטה זו סוגרת חיבור פתוח.
> 066ץ6768%60006. גם שיטה זו כוללת רכיביס נוספיס בסביבת העבודה של
וס ס. מה שברור הוא שאובייקטי שסץזסט0ס אינס כולליס שדות. אס
ברצונך להציג את השורות שהוחזרו באמצעות אובייקט שסץוסטס, עליך להפעיל
את השיטה ₪6607056%ח6ק0 של אובייקט זה. כל האובייקטים מסוג שפעזפטס
בסביבות עבודה של 76%זו00860 הס זמניים. במודל האובייקט 60ז1פ0086 לא
ניתן ליצור שיגרה מאוחסנת במקור נתונים חיצוני. אובייקטי ]6סץזפט) יכוליס
להשתייך לאובייקטי ח08600ח60 בלבד. השיטה )6768060067/06 אינה קיימת עבור
אובייקטיס מסוג 08190856 בסביבת עבודה של 76%ו00860, כפי שקיימת כזו
בסביבת עבודה של 266. באפשרותך לפתוח אובייקט 866070566 מתוך אובייקט
6 בשתי סביבות העבודה.
4 6006אם. שיטה זו מפעילה שאילתות פעולה, שאילתות פרמטר ושאילתות בחירה.
מגדיריס את הקבוע 6חץ45חט00₪ כדי לציין שעל האובייקט פעזסטס לפעול בצורה
אסינכרונית. בדיוק כמו במקרה השיטה ח600066000ח006, משתמשים יכולים לבצע
משימות במקביל לפעולת האובייקט 6פעזפטוס. המאפיין 8ח0ט66אש!!58 מאפשר
ליישוס לבדוק את מצב ההשלמה של האובייקט )שסשופטס.
> |68006. הפעלת השיטה ללא ציון פעולה אסינכרונית תסיים שאילתה אסינכרונית
ותחזיר שגיאת זמן ריצה. שחרור משאביס שצרך אובייקט 6פעזפט0 מתבצע על
ידי שיטת 6!056, או הגדרה של הפניית האובייקט כ-פַחוחזסא.
עדכון באצווה
עדכון באצווה (פַח68קט ח5866) הוא אחד החידושיס החזקיס בסביבות העבודה של
. הוא מאפשר ליישוס לטעון קבוצת רשומות, לעדכן אותן בצורה מקומית,
ואחר כך לעדכן את רשומות המקור כאצווה בודדת, במקוס לעדכן כל אחת בנפרד.
פרק 2: מודלי גישה לנתונים | 97
לעדכון אצוות יתרון ברור על נעילת רשומה בודדת. עקב הסיכוי להתנגשויות, מומלצ
לפעול בדרך גו רק במקריס בהס קטניס הסיכויים שמשתמשים רבים יערכו שינוייס
במסד הנתוניס. אך עיבוד באצווה כולל מספר רכיביס מוכללים לטיפול בהתנגשויות.
לדוגמה, המאפיין 5חסן8806060(|15 מחזיר סימניות שמצביעות על התנגשויות בערכת
רשומות לאחר טעינתה. אפשר לכפות על מסד נתונים מרוחק להיות תואס לעדכון
המבוצע, או לקבל את הערך שבמקור הנתוניס המרוחק. שלושה מאפייני ₪6!0
מאפשריס לבדוק ערך מקורי טרס טעינתו, ערך מעודכן בגרסת ערכת הרשומות
המקומית ואת ערך השדה החדש במקור הנתוניס המרוחק.
לפניך חמשת השלבים ליישוס עדכון באצווה בסביבת עבודה של 08601766:
1. הגדר את המאפיין זסטסזספזט0ו0גו6 | של סביבת העבודה בתור
זו
2. צור אובייקט ח6600חח60 או אובייקט ספפּט8ּזה.
3. הפעל את השיטה 8660/0565ח006 עבור האובייקט שיצרת בשלב 2 באמצעות
הגדרת ח001506880%5ק000 עבור הארגומנט 5016א1/06.
4. ערוך את השדה בצורה מקומית, לפי הצורך.
5. הפעל את השיטה 0008066 של ערכת הרשומות של שלב 3 באמצעות הגדרת
ח00(008%608%6 עבור ארגומנט הסוג. אס לא אירעו התנגשויות כלשהן, סיימת
בהצלחה. אס קיימות התנגשויות, תודקק ללוגיקה נוספת כדי ליישב אותן.
סקירה כללית על 400
0 00655// תומך בגירסה 2.1 של סס, הכוללת שלושה מודלים לגישה לנתונים:
הספריה 8כ0כג, הספריה אסכ והספריה ₪0(. חלוקת הגישה לשלוש ספריות
מאפשרת לתוכניות שאינן וקוקות לכל שלושת המודליס להשתמש רק בחלקם. מרכיב
נוסף באסטרטגיית הגישה לנתונים של 866655 הוא האמון בספקי ₪8 015. ספקיס
אלה פועליס בשיתוף עס 4300 כדי לספק גישה למקורות נתוניס מקובליס ולחדשיס
כאחד, כגון ספריות דואר אלקטרוני. סידור וה מעציס את התכנות של מסדי נתוניס.
הספריה 0008 היא ספריה קטנה ופשוטה, שמכילה אובייקטים חיונייס ומספקת את
הרכיבים הבסיסיים ליצירת חיבוריס, הסרת פקודות ואחזור ערכות רשומות. ספריה
זו גם מאפשרת לנווט בערכת רשומות. ניתן להשתמש בה לביצוע מטלות אחזקה
בסיסיות, כגון שינוי, הוספה ומחיקה של רשומות. העיצוב הלא היררכי של הספריה
מקל על משתמשיס מתתילים.
הספריה 00% תומכת בשפת הגדרת נתוניס ובנושאים הקשורים באבטחה. היא
כוללת אובייקטיס המקשריס את המשתמש עס הסכימה הכוללת של מסד הנתוניס.
לדוגמה, היא מאפשרת ליצור טבלאות וקשרים. המודל כולל תמיכה בשלמות קשריס
((600לחו |08ח6ז606ז), עדכון שדות קשוריס ומחיקת רשומות קשורות, ומציע שגרות,
תצוגות ואוספיס של 05678 ו-005ז0 לאבטחת מסד נתוניס ברמת-משתמש.
8 הח 2000 460655
הספריה 380 מאפשרת יצירת שכפול של מסד נתוניס 26. 2000 860655 תומך בשכפול
מסד נתוניס במסדי הנתונים 260 ו- ז6ו567 .501. פרק 11 עוסק בהרחבה בשכפול מסד
נתוניס.
היתרון העיקרי של 00 הוא מודל האירוע. 00860764 מאפשר ביצוע פעולות
אסינכרוניות, אך 400 גס מספק אירועים. על ידי כך הוא משחרר את היישוס מהצורך
לבחור אובייקט ומבדיקת המאפיין פַח0ט60אם!|50. במקום זאת, ניתן ליצור מטפליס
באירועים שיגיבו על אירועיס בעת התרחשותס (בפרקים הבאיס נסביר כיצד לבנות
מטפלים באירועים).
ספקי ₪8 015 מסייעים לפתח את העוצמה של 00ג. הס מספקיס דרך חדשה לגשת
לנתוניס מרוחקים, דרך שמתבססת על 0086 ומרחיבה את יכולתה, ומציעים גישה
למסדי נתוניס יחסיים ולמקורות נתוניס לא יחסיים באמצעות ממשק ססג עקבי.
0 160655 משווק עס מיגוון של ספקי ₪8 015, כולל כאלה עבור זפצז56 .501, 366,
86 מקורות נתוני 0086 כללייס וגםס מקורות לא מקובלים, כגון
6 7ץ6000ז1 6ע460 16070508 ו- 567/87 %א06ח1 50%סז6ווא. בבוא הזמן יש לצפות
לגידול במספר ספקים אלה.
בטרס תוכל להשתמש בספריית 0כג כלשהי, עליך ליצור הפניה אל ספריה אחת
לפחות. יוצריס הפניה מתוך התלון זסזו0ם 8856 |טפוצ (85/) באמצעות הפקודה
65 (הפניות) בתפריט 0015ד (כליס). תרשים 2.3 מציג את תיבת הדו-שיח
65 כשכל שלוש הספריות נבחרו. נוח יותר לבחור את כל השלוש, אך בחירת
הספריה הדרושה בלבד משמרת יותר משאבים. בחר לניסיון ספריות שונות ביישומיס
שוניס הפועליס במחשביס שונים, כדי לקבוע את הצירוף המתאים ביותר לסביבת
המחשוב. אס ברשותך יישום המשמש לעבודה שוטפת, שפועל בסוגי מחשבים שונים,
עליך לשמר משאבים עבור דרישות אחרות של היישוס.
2 - 06%ח6)6:6
:665 6ופב|ו יה
פחסוסה3סו|קק זס= 8356 |הטפו/
ץזב זט | ןפ 9.0 866655 +]ס5סזסוי]
חססבוחסזוום 15
עזב זו | 2.0 00016065 בב אפעי- = הס5סיווין
560 חב וכ זס] 2.1 .₪6 סה >ספפיסוויז
|+ ץזהזפו | 1.0 8655[ הססבסווק 26% + ס5פלסווי]
3020
שסוזסוזק ץז זו ! סוחס וקו 06655 5066סזסויז | |
ץז זט | 66[פכי 3.6 מכ 506סזסוי | |
|+ זב זו | וסלחס = 56 עוסמ | ]
ץז זפו| 56 |סחס6 6ויסן ו
חס 66ח6זט]חס = אפשו0 ה
8606 0
שה זט ] פיד 1.0 ספ/5% 6
> |>| > > > >
ץזב זפ | 2.0 6665[ 0363 606% ספסזסויז
0015 ה5!י] סיפה ויז ד5 ₪55 |[= טויס 5ם וז יז 0 חק:6 | :16300
יסִהַבמַח3 1
תרשים 2.3: תיבת הדו-ש'ח 60665'ו₪6106 משמשת להוספת ספריות ססג ליישום
פרק 2: מודלי גישה לנתונים | 99
הספריה 0008
ספריית האובייקטיס 0008 כוללת שבעה אובייקטים עיקריים. ארבעה מתוכס
כולליס אוספים. האובייקט 600066000 מופיע בראש המבנה ההיררכי, אך ניתן ליצור
חיבוריס באופן משתמע ססו|סחו) באמצעות אובייקטיס אחריס. האובייקטיס
הסוח ה 60, 0חה8 ה 00, ₪6607056% ו-6|6= כוללים אוספי 65ווסקסזס.
צםא
הסוז60!!56
וב
ז16וח8זה
תרשים 2.4: ספריית האובייקטים 008סא
האובייקט ח0ו60766%
אובייקט וה יוצר קישור אל מסד נתונים. משתמשיס באובייקט ח6000חח60 בצורה
משתמעת או מפורשת (וסו|טא6) בעת טיפול במסד נתוניס. בעת יצירה מפורשת של
קישור, ניתן לנהל ביעילות חיבור אחד או יותר ולהקצות מחדש את תפקידיהס
ביישוס. בעת יצירה משתמעת של חיבור ניתן לקצר את הקוד. כל אובייקט חדש שנוצר
באמצעות חיבור משתמע, צורך יותר משאבים. אס היישוס מכיל אובייקט אחד או
שנייס לכל היותר, שכל אחד מהס דורש חיבור נפרד, חיבורים משתמעים ייטיבו לענות
על צרכיך. 400 מאפשרת לבחור את דרך היצירה והניהול של חיבוריס באופן שתמצא
לנחוא.
0 ;א 2000 466655
בניגוד ל-0כ, 00 היא שפה כללית לגישה לנתוניס, ולכן לא כל השיטות והמאפייניס
שלה מתאימים למנגנון 36. לעומת ואת קייס ספק 8 015 עבור 4 366, הגירסה
העדכנית ביותר של 60( המשווקת עס 2000 8266655. האובייקטיס ח6600חחס6 תלוייס
במידה מכרעת במפרטי הספק, ולכן יש ערך רב ליכולת להגדיר פרמטר 6000660000
שמתייחס לספק של 4 366. בעת הפניה אל מסד נתוניסם שנמצא בקובץ אחר, ייתכן
שתרצה לכלול פרמטר 6סזט50 זכ שמצביע על המיקום הפיסי של מסד הנתוניס
שאינו נמצא בפרויקט הנוכתי.
הקוד שלפניך הוא דוגמה פשוטה לפתיחת מסד הנתוניס המוכר סחוששחצוסא. שים לב כי
משפט חום מצהיר ויוצר הפניה אל שחוצווזוסחח6 בתור אובייקט ח66000חח60.
השימוש בשיטה ח6ק0 ב-6חואוח+זסאחהח6 הופך את מסד הנתונים לזמין עבור שאר חלקי
השיגרה. שיס לב כי הפרמטרים זססועסזק (ספק) ו- 66זט50 0868 (מקור נתוניס)
מופיעים בין גרשייס. פרמטר ז06וטסזס מצביע על ספק 8 015 של 4 26, ופרמטר זה
506 מצביע על המיקוס הפיסי של מסד הנתוניס 6חוצוחזזסא.
()םסץ ה6קס פט5
חסו66 ה ח 60 צו6 5 סהוצשוח+זסהח6 וחוס
5 5זסו 50500 וחוס
660 60 6+ 076866 '
= 8 ";0.4.0סם 11670508.26%.01]= 6 0ועסזק" השס חוצות+זסא]החס
8 " 11606 006 67050ו]1!65= ותהזפסזק:06=6טס5 הזכ"
"; סח 6 חועשח סא 165 5"
.5 55 56% 800 761076706 6007056% 076806 '
0% וש = 500500075 56%
3% = 6קץ 5.650 560500
06 301 = 6כץ דא06 65.1 56560
041 605% 8 %חוזכן 0ח3 6607056%ז חסמס '
06 , , ,הרסא החש ,"005605" 5.06 זו 56560
6 (5.16105)1ז5005%06 ,6טו3/. (16!05)0=. 5זס רת 0ז505ז +חוזק. פטססס
5-6
6 התסהה
סט 0ח=
לאחר יצירת הפניה אל החיבור, הקוד יוצר אובייקט 86607056. הקוד יוצר הפניה אל
משתנה האובייקט המציין את ערכת הרשומות, ולאחר מכן מציב ערכים בכמה
מאפייניס של ערכת הרשומות. קטע הקוד האחרון פותח את ערכת הרשומות ומדפיס
שני שדות מתוך הרשומה הראשונה. השיטה ח6ק0 של אובייקט ₪66070566 יכולה
להפנות חיבור אל מסד נתוניס וגם אל מקור רשומות כלשהו במסד הנתוניס. הקוד
בוחר את כל הרשומות מהטבלה 605000675 שבמסד הנתונים 6חושחזזסא. השיטה
ח6ק0ס הופכת מלכתחילה את הרשומה הראשונה לזמינה עבור היישוס.
שתי השורות המסיימות את קטע הקוד האחרון, סוגרות את ערכת הרשומות ולאחר
מכן גם את החיבור. סגירת חיבור הופכת את כל האובייקטים שמפנים אליו, כגון
אובייקט ₪66070566, לבלתי פעילים. כל ניסיון להגדיר מאפייניס או להפעיל שיטות
פרק 2: מודלי גישה לנתונים 101
עבור ערכת רשומות שמפנה לחיבור סגור, יוצר שגיאת ומן ריצה. יצירת חיבור בצורה
משתמעת עשויה להיות בחירה טובה יותר, מכיון שהאובייקט יכול להשתמש בחיבור
רק במשך קיוס האובייקט.
הקוד שלפניך פותח גס הוא ערכת רשומות המבוססת על הטבלה 6059500675 במסד
הנתונים 6חושוזוסא ומדפיס את הרשומה הראשונה. אך הפעולה מבוצעת באמצעות
קוד פשוט יותר ומספר שורות קוד קטן יותר, כיון שהחיבור נותר בצורה משתמעת
תוך התבססות על מספר הגדרות ברירת מחדל גדול יותר.
(85%-ח6ק0 פט5
9 5 8זסו 50500 וחוס
0% עשס) = 5005000075 56%
וטו טח 60 6500766 זסזהזם ץ|והסחסזסק זט ,6006 1685 '
8 ";00.4.0= 11670508.26%.01]=ז06ועסזק" ,"65065" ח5.026ז6 ו 565%0ז
8 " 11606 006 67050ו]65!= ותהזפסזק:06=6זטס5 זכ"
"; רחוס 165 5"
(1 )16105 . זר 50560 , (16|05)0=. 5זס רת 56560 +חוזק. פטססס
5-6
סט 0ח=
מאחר שלא קייס חיבור מפורש, השיגרה 8%ח6ק0 אינה צריכה להצהיר על אובייקט
חיבור (ולכן אינה חייבת לפתוח או לסגור אותו). כפי שניתן לראות, השיטה ח6ק0 של
אובייקט ערכת רשומות יכולה להכיל את נתוני החיבור החיוניים של ספק ושל מקור
נתוניס. הקוד שהוצג מכיל רק פרמטר אחד נוסף - מקור ערכת הרשומות הוא הטבלה
5ה6050.| השיטה ח6ק0 מתבססת על הגדרות ברירת המחדל 6קץ07פזט6
ו-06ץ10601, שמייצגות את המאפיינים קדימה בלבד (עוחס-0זפווחס)) וקריאה בלבד
(ץוחס-7680). הגדרות אלו נועדו לפעולות מהירות מאוד, אך הן אינן מספקות תפקודיות
רבה. אך אס ההגדרות הולמות את צרכיך ומאפשרות להפנות את תשומת ליבך
להיבטיס אחריס של פיתוח יישומים, ייתכן שהן הבחירה הטובה ביותר.
המאפיין 86006 (מצב). כברירת מחדל, השיטה ח006 של האובייקט ח6600חח60 יוצרת
מסד נתוניס עבור גישה משותפת. לעומת זאת, באפשרותך להגדיר את המאפיין 6ססו₪
של אובייקט ה בתור אחת משבע ההגדרות שמעניקות רמות שונות של גישה מוגבלת
למסד נתונים. הגדרות מצב אלו מתייחסות לכל ערכות הרשומות והפקודות שמקצות
חיבור למאפיין שלהן ח006600ח6/660. הקוד שלפניך מציג את השפעת הגדרת המצב
קריאה-בלבד על היכולת לעדכן ערכת רשומות.
()ץוחסאסס ]ח6ק0 סט5
חס 66 ה ח 60 שצ6 5 1 החש חחוס
5 8זסו 50500 וחוס
0 = 1.1006 חהחס'
8 ";508.4.0 67050.26%.01ו = זסוטסזק" ה6ק1.0החס
8 " 1606 0106 67050ו]65!!= ותהזססזק:06=6ט50 הזכ"
"; 0.00 הטרס סו 65 !קרח 58"
2 ;א 2000 406655
.0חוז560 1006 061301 6+ 6ח1ר06667 0+ 6חו] 6%%ח 606 56'
6 חח זחוזק. פטטסכ
סא = 5005000015 56%
1חחס = 66000 00/6600 5 זר 565%
"005000075" ה06 65.0 56560
.זז 5וח+ הו זסזז6 חה 680565 1.1006 הח6 זסז 0חו560 680 6טסוזס חח '
.6ז זסזום חה 566 60 6חו! 1.1006 חח6 06 הס +ה6ר 60 06 6עסוח6ק '
"אאאאא" = ("1605)"005%06710=. 565606175
ב ב
("16|05)"005%06710=. 65 0ש565ז +חוזק. פטססס
5-6
סט 0ח=
השיגרה ץ|ח06%0 1ח6ק0 מצהירה על אובייקט 600066000 חדש בשורת הקוד הראשונה
שלה. השורה השלישית (אם תבטל את סימונה בתור הערה) מגדירה את המאפיין
6 של החיבור בתור 30%/006₪680 כדי לאפשר גישה מסוג קריאה-בלבד. אם נעיין
בשתי שורות הקוד הבאות, נראה כי השיטה ח6ק0 הופכת את ערכת הרשומות
"500500067 לזמינה. ווג השורות הבא מנסה לעדכן את ערך השדה 65000610
ברשומה הראשונה. אס תסיר את ההערה בשורה השלישית, עדכוניסם אלה יגרמו
לשגיאה, מכיון שלא ניתן לעדכן מסד נתוניס לקריאה-בלבד.
הטבלה שלפניך מתארת את שמונה הקבועיס שבאמצעותם ניתן להגדיר את המאפיין
6 של חיבור. באפשרותך לנצל קבועיס אלה כדי לשלוט בסוג העריכה שיכוליס
לבצע משתמש אחד או יותר באמצעות חיבור לערכת רשומות.
קבועים שמגדירים את המאפיין 1006 של אובייקט החיבור
| קמע |עך 00000 תלד 0000
תטאה | 0 | הרשאות לא הגדה אבש 5 >
הרשאת כתיבה-בלבד
|הושאתנפנהלבד 0
300650 | 8 | מונע מאחרים לפתוח מקור רשומות עם זויות כתובה. =
השיטה 675676₪83ק0. השיטה 068ח56ח6ק0 של האובייקט ח6600חח60 מאפשרת
ליישוס לעיין באובייקטיס שבאוספיס הזמיניס באמצעות חיבור מבלי למספר את
האלמנטיס ברשימה. פלט השיטה עשוי לחכיל מידע על טבלאות, תצוגות, שגרות,
פרק 2: מודלי גישה לנתונים 103
אינדקסיס ועוד. הפרטים הספציפיים תלוייס באופן בו ספק 8 015 נתון מיישס את
יכולות השיטה הכלליות. הקוד שלפניך מנצל את השיטה 0060560688 יחד עס ספק
4 36% כדי להציג את התצוגות הזמינות באמצעות חיבור.
()6708%ה56ח6ק0 פט5 סוופטק
הסוח ח 5.60 00 ג צוס] 5 1 החש חחוס
585 68ה5%56ז וחוסם
8 ";₪08.4.0 67050.26%.01ו = זסוטסזק" ה6ק1.0החס
8 " 1606 01606 67050ו]65!= ות8זפסזק:06=6זטס5 הזכ"
"; סח 6 חושח סא 165 5"
(80|65 68 80560 )68 56 1.026 הח6 = 56567608 56%
6 ןסח 67068 ה56!6600 זסחשס ;פאוסוע %פטן זחוזק '
.= ]פד |אם 557 חב ,= ופד 66555ג ,= ופחד '
0ם. 8וה6ה5056ז וסחט ספ
חסחד "/עום1/" = ("םקצך ם 81 ד")6105=. 5560608 +
זסססע 8 ("ם א ₪ 1 ד")6|05ו. 55567068 8 " :6חזהח עשסו/" זחוזק. סטטסס
+ 0חם
+ 0ו. 56560608
קסס |
6
6
סט5 0חם
השיגרה פותחת בהצהרה על חיבור ועל ערכת רשומות. ערכת הרשומות מכילה את
הפלט שיצרה השיטה 608ה56ח6ק0. ארגומנט השיטה 0608ח560ח6ק0 מציין כי
אלמנטיס של התחוס 65פ89ד של סכימת מסד הנתונים יציבו ערכים ברשומות. לעומת
זאת, השיטה 0060560688 עוקבת אחר סוגי טבלה אחדים, כולל תצוגות, טבלאות
משתמש רגילות, טבלאות מערכת מיוחדות, טבלה נוספת של אובייקטי 466655
וטבלאות מקושרות. הקוד שהוצג מדפיס את פלט השיטה עבור תצוגות בלבד.
האובייקט ₪6601056%
ערכת רשומות היא מבנה תוכניתי (6פוחוח8זפָסזס) לטיפול ברשומות. ניתן לבסס את
הרשומות על טבלה או על תצוגה בפרויקט הנוכחי, או על קובץ אחר, משפט .501 או
פקודה שמחזירה שורות. אפשרויות הטיפול בערכת רשומות תלויות בספק ₪8 015
שלה ובתכונות מקור הנתוניס המקוריים.
באפשרותך לשלוף ערכות רשומות באמצעות אוביקטיס אחרים, כגון חיבוריס
ופקודות, אך מיגווו המאפייניס והשיטות העשיר של האובייקט ₪6607056 הופך אותו
לבחירה הטבעית לביצוע חלק גדול מעיבוד הנתוניס. ניתן להשתמש בערכות רשומות
כדי לבצע פעולות רבות כנגד קבוצת שורות: ניווט בין שורות; הדפסת תוכן השורות,
4 הח 2000 466655
כולן או מקצתן; הוספה, עדכון ומחיקה של רשומות; חיפוש רשומות; וסינוו רשומות
כדי לבחור קבוצת-משנה כלשהי מתוך ערכת הרשומות המלאה. מבחינה היסטורית,
ערכות רשומות היו ונותרו אובייקטיס לא מתמידיס - הן קיימות רק כל עוד הן
פתוחות בתוכנית. גירסה 2.1 של 400 המשווקת יחד עס 2000 466655 כוללת ערכות
רשומות מתמידות, אותן אפשר לשמור בדיסק ולפתוח במועד מאוחר יותר.
המאפיין ח0וז66ח ה660עוש6. מאפיין ערכת רשומות זה מאפשר ליישוס לנצל חיבור
פתוח כדי לתמוך בערכת רשומות. ניתן לקבוע מאפיין גה בומן כלשהו לאחר הגדרת
האובייקט עבור ערכת הרשומות. השימוש במאפיין זה מפשט את משפט השיטה ח006
של ערכת הרשומות, כיון שהוא מבטל את הצורך לכלול את נתוני החיבור. בעת הגדרת
המאפיין מראש, אינך צריך אפילו להתייחס לחיבור קייס במשפט השיטה חס6כס.
השיטה ח6סס. שיטת ערכת רשומות וו מהווה נתיב מקובל להפיכת ערכת רשומות
לוּמינה בשיגרה. ארגומנט המקור הוא הארגומנט הקריטי ביותר עבורה. הוא מציין
את מקור הנתוניס שעליו מבססת השיטה את האובייקט שהיא פותחת. אפשרויות
טיפוסיות של ארגומנט המקור כוללות טבלה, משפט 501, קוב ערכת רשומות שמור
או שיגרה מאוחסנת. משתמשים בארגומנט 00005 של השיטה ח6ק0 כדי לתאר את
סוג המקור בעת פתיחת ערכת רשומות.
סוג הסמן. סוג הסמן הוא אחד הרכיבים הבסיסיים ביותר של ערכת רשומות. סוג
הסמן קובע את אופן הניווט בערכת הרשומות ואת סוגי הנעילות שניתן להחיל עליה.
0םג תומכת בארבעה סוגי סמן:
> 6ווההּחעס. סוג סמן וה מאפשר למשתמשים להציג שינוייס במקור נתונים, שביצעו
משתמשים אחרים. הוא מאפשר פונקציות אחזקה של ערכת רשומות, כגון הוספה,
שינוי ומחיקה של רשומות, ומרשה ניווט דו-כיווני במסד נתוניס, מבלי להסתמך
על סימניות.
> 56%צ6א. סמן זה כולל את רוב המאפייניס של סמן דינמי, למעט גישה מיידית
לשינוייס שביצעו משתמשיס אחריס במקור נתוניס. דרך אפשרית להצגת שינוייס
כאלה היא על ידי הפעלת השיטה צז₪606 של ערכת רשומות.
> 508₪6. סמן ה הוא תמונה של ערכת רשומות בנקודת זמן מסוימת. הוא מאפשר
ניווט דו-כיווני. לא ניתן להציג שינוייס שביצעו משתמשים אחריס במסד הנתונים.
גירסה 4 ואילך של זסזסוקא= 6חז%6ח1 1670506 תומכות בסוג זה בהיותו סמן
צד-הלקוח הגמיש ביותר של הדפדפן.
> צוחס-6זהעזס=]. סמן זה, הנקרא לפעמיס סמן ברז-שריפה טחאזסעח), פועל בכיוון
אחד ומסוגל להאיץ את ביצועי הסמן. והו סמן ברירת המחדל של ססג. אס אתה
וקוק לסוג סמן אחר, עליך להגדיר את המאפיין 6קץדזס5זט6, בטרס תפתח את
ערכת הרשומות.
פרק 2: מודלי גישה לנתונים | 105
הערה:
הגדרת סוג הסמן מתקשרת עם הגדרות סוג הנעילה. אם תגדיר סמן מסוג
ץוחס-80זס? בעל סוג נעילה שונה מ- ץוחס-680ז (ץ|ח801.066₪6800), ססה
ידרוס את הגדרת סוג הסמן שקבעת. לדוגמה, אם קובעים נעילה אופטימית, ססג
ממיר אוטומטית סמני ץוחס-0ז8אוס] לסוג 660566.
המאפיין 06ץ1א106. מאפיין וה מתקשר חלקית עס סוג הסמן, מכיון שהוא קובע
כיצד יטפלו משתמשיס בערכת רשומות. הגדרה אחת של סוג נעילה (עוח₪6800א06 801)
תואמת באופן ייחודי לסמנים מסוג ץוחס-0ז8אוזס?. והו סוג ברירת המחדל לנעילה.
הטבלה שלפניך מתארת את ארבע ההגדרות האפשריות של המאפיין 06ץד1066.
ההגדרה 000015806ח8806א801.06 מיועדת במיוחד עבור מסדי נתוניס מרוחקים, כגון
זז .501 או 866זס, בניגוד למסד נתוניס מקומי 266. פרק 12 מרחיב בנושא זה.
קבועים שמגדירים את המאפיין 66ֶץד106 של אובייקט החיבור
ו
0
6 נועל רשומה מייד לאחר שהמשתמש מתחיל בעריכתה
06 30 | 3 נועל רשומה רק לאחר שהמשתמש מחיל את השינויים
על מסד הנתונים
30006 | 4 | מאפשר פעולות עריכה באצוות רשומות טרם הניסיון
לעדכן מסד נתונים מרוחק מתוך אצוות רשומות מקומית
הערה:
תוכל לקבוע אם ערכת הרשומות בה אתה מטפל תכלול רכיבים תפקודיים
מסוג מסוים, על ידי שימוש בשיטה 5זוססקט5. כל שעליך לעשות הוא להציב
בסוגריים את הקבוע שמייצג את הרכיב התפקודי הרצוי, בעת הפעלת השיטה. ערך
ההחזרה 6טזד מציין כי ערכת הרשומות כוללת את הרכיב התפקודי הנדון. התיעוד
המקוון של פוזססקט5 מתאר את שמות הקבועים. חפש את וחטחפחסטקסיספזווס בעזרת
סורק האובייקטים (זספאוסז8 05[60%), כדי להציג רשימת קבועים עבורם 715ססקש5
מחזירה 6טזך או 4|56=.
ניווט בערכת רשומות. ארבע שיטות מאפשרות לנווט בערכת רשומות על ידי שינוי
מיקוס הרשומה הנוכחית :
> 5%זו]6עס1א. שיטה זו הופכת את הרשומה הראשונה בערכת הרשומות לרשומה
הנוכחית. סדר הרשומות תלוי באינדקס הנוכתי, ואם לא קיים אינדקס, הסדר
תלוי בסדר ההכנסה. השיטה פועלת בכל סוגי הסמנים. השימוש בשיטה עם סמני
ץוחס-0ז8\זס+ עשוי לאל ביצוע חוזר של הפקודה שיצרה את ערכת הרשומות.
6 הא 2000 406655
> 6|85%ע0//. שיטה וו קובעת את הרשומה האחרונה בערכת רשומות כרשומה
הנוכחית. היא דורשת סוג סמן התומך בתנועה לאחור, או לפחות כזו שמבוססת על
סימניות. השימוש בשיטה עס סמן ץוחס-6זהאח0ס1 יוצר שגיאת זמן ריצה.
4 %א6)6עסוא. שיטה וו ממקמת מחדש את הרשומה הנוכחית מקוס אחד קדימה
ביחס למיקומה הנוכחי (בכיווו הרשומה האחרונה שבערכת הרשומות). אס
הרשומה הנוכחית היא גס הרשומה האחרונה, המאפיין *0ם של ערכת הרשומות
יקבל את הערך 6טזז. אס השיטה נקראת בזמן שערך המאפיין 50 הוא 6טזד,
תתקבל שגיאת זמן ריצה.
> פטסועסקסטסוא. שיטה זו מזיוה את מיקוס הרשומה הנוכתית רשומה אחת
לאחור. אס הרשומה הנוכחית היא הראשונה, המאפיין 80 של ערכת הרשומות
יקבל את הערך פטזד. אס השיטה נקראת בזמן שערך המאפיין 80 הוא 6טזד,
תתקבל שגיאת זמן ריצה. השיטה יוצרת שגיאת זמן ריצה גס במקרה שמפעילים
אותה עס סמן ץוחס-0ז8אוס1.
השיטה שעסוא (מעבר אל) פועלת בצורה שונה מארבע שיטות הניווט בערכת הרשומות,
מכיון שהיא יכולה להעביר את מיקוס הרשומה הנוכחית מספר רשומות משתנה בשני
הכיווניס. לציון תנועה בכיווו הרשומה האחרונה משתמשים בארגומנט חיובי, ואילו
לציון תנועה בכיווו הרשומה הראשונה משתמשיס בארגומנט שלילי. אס התנועה
תעבור את הרשומה הראשונה או האחרונה, 6שסוז תיתן למאפיין 80 או 0%ם את
הערך 6טזד. אס ערך המאפיין הוא סטזד, השיטה תיצור שגיאת זמן ריצה. התנועה היא
יחסית לרשומה הנוכתחית, אלא אס מצייניס פרמטר 5% המאפשר לתנועה להתתיל
ברשומה הראשונה או האחרונה.
ניתן לשפר את ביצועי השיטה 6עסוז בכמה דרכים, על ידי הגדרת המאפיין 686065126
של ערכת הרשומות לערך גדול מ-1 שהוא ערך ברירת המחדל. שינוי הערך של
6 גורם ל-400 לאחסן מספר רשומות קבוע בויכרון המקומי של תחנת
העבודה. אחזור רשומות מהזיכרון מהיר בהרבה מאחזורן מאמצעי אחסון של הספק,
ולכן ניתן להאיצ את הניווט ברשומות באמצעות 6עסוז על ידי הגדלת ערך 126ו680065.
סמן מסוג ץ|חס-0ז8/זס) ו-686065126 מוגדל, מאפשרים גלילה קדימה ואפילו אחורה.
אם הגדרת המטמון זהה למספר הרשומות שבערכת הרשומות, תוכל לגלול את ערכת
הרשומות למלוא גודלה בשני הכיווניס. המאפיין 686065126 אינו מאפשר גלילה לאחור
באמצעות השיטה פטסועסזק6שסויז (לשס כך משתמשיס בשיטה עסו עם ארגומנט
שלילי).
השיטה 6חו=. שיטה זו מחפשת אחר הרשומה הראשונה העונה על קריטריון בחירה
מוגדר. השיטה דומה להפליא לאוסף השיטות 6חו= של גרסאות מוקדמות של ₪60655,
אך הגירסה החדשה מאופיינת בתחביר ובתפקוד שוניס. במקוס לנסות לפרט את קווי
הדמיון והשוני בין הגרסאות, מוטב ללמוד את התחתביר ואופן הפעולה של הגירסה
החדשה.
פרק 2: מודלי גישה לנתונים 107
הגירסה החדשה של השיטה 6ַחו= קולטת עד ארבעה ארגומנטים. הארגומנט הראשון,
קריטריון החיפוש, הוא ארגומנט נדרש. התחביר דומה לזה של פסוקיות =85שה/
במשפט 501. אס אין מצייניסם ארגומנט נוסף כלשהו, השיטה עורכת חיפוש אחר
רשומה העונה על הקריטריון החל ברשומה הנוכחית ועד הרשומה האחרונה. לאחר
שנמצאה רשומה תואמת, עליך לעבור על פניה, כדי למצוא רשומה תואמת נוספת. אס
לא נמצאה רשומה כזו, השיטה נותנת למאפיין 50 את הערך 6טזד. עיין בעזרה
המקוונת לקבלת תיאור של שלושת הארגומנטיס האופציונלייס הנותרים.
המאפיין +501. מאפיין אה יכול להשפיע על תוצאות פעולתן של השיטות 6חו= ו-6עסוז.
מאפיין ה מייעד שדה אחד או יותר לקביעת סדר הצגת השורות. ערך המאפיין +50
מאפשר לקבוע סדר מיון עולה או יורד בהתאסם לשדה כלשהו. ברירת המחדל היא סדר
מיון עולה. ערך המאפיין אינו משפיע בפועל על סדר השורות, אלא על סדר הזמינות
שלהן בערכת הרשומות.
המאפיין 60ז6פ!1=₪. מאפיין זה של ערכת הרשומות מגדיר ערכת רשומות חדשה שהיא
גירסה מסוננת של ערכת הרשומות המקורית. למאפיין ה יש יישומים מיוחדים עבור
סינכרון מסד נתוניס ועדכון באצווה של מקור נתונים מרוחק, אך הוא יכול לשמש
חלופה פשוטה להגדרת ערכת רשומות חדשה שמבוססת על משפט 501. אס אתה וקוק
רק לקבוצת-משנה למטרה כלשהי, מאפיין זה יענה היטב על צרכיך.
השיטה ש6א26₪0. שיטה זו מוסיפה רשומות חדשות לערכת רשומות. לאחר הפעלת
השיטה, מגדיריס את ערכי השדות בשורה החדשה. אחר כך עוזביס את הרשומה
באמצעות השיטה 6שטסוא, או קוראיס לשיטה 00806 מבלי לצאת מהשורה החדשה
(תוכל לשנות את הערכיס בשדה באמצעות שתי טכניקות דומות: עדכון שדות על ידי
מתן ערכיס חדשיס ואחר כך עזיבת הרשומה. לחילופין, קריאה לשיטה 086ק. אפשר
למחוק רשומה על ידי ניווט אליה וקריאה לשיטה 6!666ם. הרשומה שנמחקה נשארת
הרשומה הנוכחית עד המעבר לאחרת).
הדפסת עוכי שדה. השיגרה הפשוטה שלפניך פותחת מקור נתוניס ולאחר מכן
מדפיסה את שורות מסד הנתוניס בצורה סדרתית. השיגרה כוללת לולאה שעוברת על
כל הרשומות ומדפיסה את שני השדות הראשוניס של כל רשומה.
500 ₪851 000)(
8 075וח505%0ז וחום
הסוח ח 0.60 ג 5 1 החש חחוס
אש = 5005000075 56%
סו 66066.6 = הס 66 חח 0/6600 5 505%
= 6קץ 5.50 560500
06 301 = 6כץ דא06 5.1ז רת 56500
6 , ,"סטב דץוא" ה6ק 5.0 זו 56560
8 ;א 2000 406655
8 ";0.4.0ם 67050.26%.01ו1]= 6 0ועסזק" ,"זר 65%" ח5.076ז50₪5606ז'
8 " 106 006) 670508 65!ו= ותהזפסזק:606=6ט50 הזה"
"; 00 0 הועשר סא 65| 58"
"0 605%" = 50₪5%07675.50%ז'
הפטסזח+ קסס ['
675.50₪ו505%0ז וטח ספ
(1 )16]05-. 65 5050 , (16!05)0=. 5056065 +חוזק. פטוססס
5% 56500
קסס |
5-6
50 0ח=
אחד החסרונות של השיגרה קסס|ץ585 הוא שהיא מדפיסה רק ערכי שדות מבוקשיס.
השיגרה 58510002 שלהלן, מתגברת על הקושי. אין אה משנה מה מספר השדות
במקור הנתוניס של ערכת הרשומות, השיגרה מדפיסה אותס במלואס ללא התערבות.
()10002/ץ85= 5
8 075וח505%0ז וחום
0 5 בסו עו חזוס
9חו50 5 צוסחזוס- 507 וחוס
צשס) = 5005000075 56%
8 ,"605005" 65.06 56560
8 ";08.4.0 0501.26%.01ז6ו]= 6 סוטסזק"
8 " 1606 0106 67050ו]65!= ות8זססזק:06=6ט50 זכ"
"; סח 6 חוששח סא 165 ו 5"
.05 )ועט 16!05 0חה 66070566 הפטסזחץ קססן'
"65.50 560500 וסח ספ
"" = שש80זס-507
555 ה1 6!0ו-ץ₪010 ₪86 זס-
" ;" 8 6|0ו 0 8 וסמזס- 5 = שוסמוס- 50
ו וס )אסא
אוס זס- 50 זחוזק. פטטסס
5.0 565%
קסס |
6 ]505
50 6ח=
פרק 2: מודלי גישה לנתונים 109
קבוצת השורות הראשונה והקבוצה האחרונה בשתי השגרות, פותחות ערכת רשומות
וסוגרות אותה. השיגרה 58510002 מקננת לולאה מסוג זס] בתוך לולאה מסוג ספ.
הלולאה הפנימית זס] ממספרת את שדות השורה ויוצרת בכל שורה מחרוזת אחת
שמורכבת מכל ערכי השדות (בתחילת הלולאה מנקיס את המחרוזת מכל ערכיה כדי
לבצע את התהליך פעס נוספת עבור השורה הבאה).
לולאה היא דרך קלה לביצוע פעולה על שורות ועמודות של ערכת רשומות. לעומת
זאת, אין זו הדרך היעילה ביותר לאחזור ערכי שדה של ערכת רשומות. השיגרה
קסס ₪851 שלפניך מנצלת את השיטה 66050108 כדי לאחזר ולהדפיס את כל השדות
בכל שורות ערכת הרשומות, וזאת בשלב אחד בלבד. השיטה 9(חו66151 מחזצירה ערכת
רשומות בתור מחרוזת. היא יכולה לקבל עד חמישה ארגומנטיס; הקוד שלפניך מנצל
שלושה מהם. מציבים את הקבוע פַחו50קו!800 בתור ארגומנט ראשון - זוהי הבחירה
היחידה. הארגומנט מציין את תבנית הייצוג של ערכת הרשומות בתור מחרוזת.
הארגומנט השני מציין את מספר שורות ערכת הרשומות שיש להחזיר. הקוד מחזיר
חמש שורות. אס אין מגדיריס ערך כלשהו לארגומנט, השיטה תחזיר את כל השורות
של ערכת הרשומות.
הארגומנט השלישי מציב נקודה-ופסיק (;) בתור תו מפריד בין עמודות בשורה. מפריד
ברירת המחדל הוא טאב. הארגומנטיס הרביעי והחמישי, שאינס מופיעים בדוגמה,
מצייניס מפריד עמודות וביטוי לייצוג ערכי |וטח. ערכי ברירת המחדל של ארגומנטיס
אלה הס תו החזרת גררה (68) ומחרוזת באורך אפס.
()קסס 1ץ585 0 פט5
9 5 5זסו 50500 וחוס
שס) = 500500075 56%
,"605000675" ה06 65.0 56560
8 ";08.4.0ם 0501.26%.01ז6ו]= וס סושסזק"
8 " 1606 01606 67050ו]65!= ותהזפסזק:06=6זטס5 זכ"
"; סח 6 חועשחזס 165 ו 5"
.קסס! 8 +טסווצ 660705 זחוזק'
(" ;" ,5 ,0500 !066507100)806. זרת 50560 זחוזק. פטססס
5-6
טפ 0ח=
השיטה 4חו50ז06 מחליפה שתי לולאות מקוננות. אס ברירות המחדל מתאימות
לצרכיך, תוכל להשתמש בשיטה ללא ארגומנטיס כלשהסם. הדבר מאפשר לשלוף ערכים
מתוך ערכת רשומות. למרות שלולאות מקוננות הן דרך אינטואיטיבית לשלוף ערכיס
מתוך ערכת רשומות, השיטה 66150109 יכולה להביא לתוצאה דומה בשורת קוד אחת
בלבד.
הוספת רשומה. הקוד הבא מבצע משימה חדשה: הוספת רשומה חדשה למקור
נתוניס.
406655 2000 ₪ 0
()8660170 00 פט5
5ב סוסה דץז5ז הזוס
.06|66 0 ץ|הס-7680 %סח 15 5| +08ז 50 זס5זט6 זטסץ 56% '
00 6 = 6וסה דץ51ז] 56%
הסוח .6601660 = ה6600 ה 6600 6וסב דץו5ז
6 0 ,6 5₪וחוק 3010680 560ש66ח6ק00ה , ,"ס!פב3 דעו" הססס.6וסב דץופז
.0 ש200%6% 6+ 6אסטחץ '
00% סוסה דץ וז
6 = 6ט!3/. ("1 חר ט!6|05)"60ו= .316 דץז5ז
7 = 6ט!8/. ("2חותט!00" )605 .316 דץ וז
8 = 6טו3/. ("3 חותט!60" )1605 .316 דץ וז
ץז
סט 0ח=
השגרות 000ס!/585, 85/1002 ו-ק00|ץ85שסא מקבלות כולן את הגדרות ברירת
המחדל של סוג הסמן וסוג הנעילה, אך השיגרה 00866070 אינה נוהגת כך. כזכור,
ברירות המחדל הן סמן מסוג ץוחס-0זפשוזס+ ונעילה מסוג ץ|חס-680ז. הגדרות אלו
מתאימות רק עבור הדפסת תוכן ערכת רשומות. אך יש צורך בסוג סמן ובסוג נעילה
המאפשריס עדכון ערכת רשומות, כשהמשימה הנדרשת כוללת הוספה, עריכה או
מחיקה של רשומות. הארגומנטיס 8000666566 ו-001506ק0א0106 של השיטה
הח6קס מאפשריס להוסיף שורות חדשות לערכת רשומות. שיס לב שההגדרה
6600066000ש6 בקוד לעיל אינה מפנה לפרויקט הדוגמה 6חושחזוסא, אלא מפנה
לחיבור הפרויקט הנוכחי. כשעליך להתייחס למקור נתוניס בפרויקט הנוכחי, פעל לפי
כללי התחביר. משפט החיבור מציב מפורשות טבלה בפרויקט הנוכחי כמקור הנתוניס
של ערכת הרשומות. קיימיס מקורות חלופיים אחדים, כולל טקסט של משפט .50,
שיגרה מאוחסנת, קובצ חיצוני שנשמר בתבנית מיוחדת ועוד.
כדי להוסיף רשומה באמצעות השיטה שו800%6, קוראיס לשיטה, מפעילים משפטי
הצבה כדי למלא את הרשומה החדשה בערכים, ולאחר מכן מפעיליס את השיטה
6. אין חובה מוחלטת לקרוא ל-6ז08ק0; ניתן פשוט לעזוב את הרשומה הנוכחית
החדשה. לדוגמה, תוכל להפעיל את זפזוח6עסו] או שיטה אחרת, כדי לנווט לרשומה
חדשה.
עריכה או מחיקה של רשומה. הקוד הבא עורך או מוחק רשומה. הקוד אינו משתמש
בשיטות :₪01 או 050806 כדי לשמור את הרשומות לאחר עריכתן, אלא עוזב את
הרשומה. אם אין זה מעשי לעזוב את הרשומה, או אם היישום צריך לאמת את
השינוייס טרס עזיבת הרשומה, השתמש בשיטה 00806.
פרק 2: מודלי גישה לנתונים 111
()₪660170 08%6ק(6!6%607כ פט5
5ב סוסב דץוז5ז הזוס
.0666 0 שץ]הס-680ז זסח 5! זו +8ח% 50 זספזטס זטסץ 56%'
00 6 = 6|סה דץ51ז] 56%
הסוח .6601660 = ה0ס660 ה ה 6600 6וסב דץוז5ז
6 0 ,6 50וחוק 3010600 560ש66ח6ק00ה , ,"ס|פב3 דשוז" הססס.6וסב דץוז5ז
הפטסזח+ קססן '
"0ם.6|סה דץן5ז וסחט ספ
החד 16 = ("1 חותט!0ס605)"6ו=. 6ופב דץוז5ז +ז
8 = ("1 חוט!16!05)"60= .316 דץ וז (
ץז
+ 0חם
]אסאס עסו 6וס3 דץ וז
קסס |
6 ץז
טפ 0ח=
לולאה כדוגמת זו שבשיגרה 164866070ז06!6060700008 יכולה לסייע לך לבחור רשומות
למחיקה או לעריכה. השיגרה בודקת כל ערך של השדה 1חחטוס6 בערכת רשומות
בחפשה אחר שדה שערכו 16. כשנמצא השדה המבוקש, השיטה מוחקת את השורה.
שיס לב שהלולאה כוללת שורת הערה. כדי לעבור משגרת מחיקה לשגרת עדכון, העבר
את סימן ההערה משורת ההערה לשורת השיטה 66066.
חיפוש רשומות. שימוש נפוצ נוסף בערכת רשומות, הוא חיפוש רשומה אחת או יותר
העונות לקריטריוניס מוגדרים. 2000 866655 מאפשר לבצע משימה זו בכמה דרכים.
בגרסאות מוקדמות של 466655, הרבו להשתמש בווריאציה אחת או יותר של השיטה
0חו. כפי שכבר הזכרנו, 2000 460655 כולל גירסה יחידה של השיטה 6חו= השונה
במידת-מה מגרסאותיה הקודמות. גם בגירסה זו תוכל להשתמש ברכיביס התפקודייס
הדומיס של הגירסה החדשה של 6חו=.
הקוד שלפניך מציג יישוס פשוט של השיגרה 0חו=, אשר מחפש רשומה שמזהה הלקות
שלה (כ1ז605%0006) מתחיל באות כ. כשהרשומה מאותרת, השיטה קובעת אותה
כרשומה הנוכתית. הקוד מדפיס את השדות 605006710 ו-6וח%86%%8ח60 כדי שאפשר
יהיה לאשר במדויק את הרשומה העונה על קריטריון החיפוש.
()ח0/]3%6חו= ספ
9% 5 5זסו 50500 וחוס
שצס) = 500500075 56%
= = 675.60/600700660078 500560
8 ";08.4.0 050.26%.01ז6ו]= וס סועסזק"
8 " 1606 0106 67050ו]65!= ות8זפסזק:06=6ט50 הזכ"
"; סח 6 חועשח סא 65| ו 58"
406655 2000 ₪; 2
,2655|001506א06 301 ,067560 30006 , ,"605605" ה .זו 56560
06
("'*כ' 1186 610 65%0") 06חו.5 זו 565%
,("6|05)"6005006710ו.5 סו 50560 זחוזק. פטטסס
( "36 ז0%6 00" )1605 .זר 5605%0ז
סט5 0חם
אחד החסרונות של הגישה שתוארה הוא בכך שהיא מחפשת מופע תאימות בודד
ותהליך החיפוש נעצר מייד לאחר שנמצאה התאמה כזו. הקוד שלפניך מגלה את כל
הרשומות התואמות למשפט הקריטריון. יישוס פשוט וה מציג היבטים נוספים של
גמישות השיטה שחו".
()2ח6ז0/]13ח1ו= ספ
5 5זסו 50500 וחוס
שס) = 500500075 56%
8 ";₪08.4.0 11070500.260.01] = ז6 סק" = הס 66 הח 5.6660 505%
8 " 1606 0106 67050ו]65!= ותהזפסזק:06=6זטס5 הזכ"
"; סח 6 חועשח סא 165 58"
265516 060 ]80 ,3000606561 , ,"005605" ה6 5.0 זו 56560
6 0
סס
("'*כ' 1186 610 5%0ט") 6ח!ו.5 ו 5605%0ז
הסח ד 65.50 0ז5005ז +[
טפ זוא
+ 0חם
("0005%06710" )16|05=. פס 0ש565ז זחוזק. פטטסס
5.0% 50500
קסס |
סט5 0ח=
הפתרון לאיתור כל הרשומות העונות על קריטריון החיפוש הוא לשב את השיטה 6חו=
בלולאה מסוג סם. כשהשיטה 8חו= מגדירה את המאפיין +50 של ערכת הרשומות בתור
6זך, לא קיימות רשומות תואמות נוספות. במקרה זה, הקוד מבצע את המשפט זוא=
טפ ועל ידי כך מסייס את השיגרה. כל עוד 6חו= תמשיך לגלות מופעי תאימות נוספים,
השיגרה תדפיס את מזהה הלקוח בחלון 160/86 (מיידי). לאחר הדפסת רשומה
תואמת, השיגרה מתקדמת מהרשומה הנוכחית אל הבאה אחריה. לולא עשתה כן,
השיטה 6ַחו" היתה חוזרת שוב ושוב לאותה רשומה.
השיטה 6חו= עוברת על ערכת רשומות בצורה סדרתית ובכל פעס מגלה התאמה אחת.
השיטה אינה יוצרת גירסה נוספת של ערכת רשומות שכוללת את כל הרשומות העונות
על הקריטריון. אס יש צורך בערכת רשומות חדשה או חלופית המכילה את הרשומות
התואמות בלבד, עליך לנקוט גישה שונה מזו. המאפיין זטוו= (מסנן) של ערכת
הרשומות עשוי להיות התשובה. מאפיין וה מאפשר להגדיר קריטריון פשוט לשדה,
פרק 2: מודלי גישה לנתונים 113
ומחזיר גירסה מסוננת של ערכת הרשומות המקורית הכוללת רק את הרשומות
העונות על הקריטריון שצוין. על ידי הגדרת המאפיין ווח כקבוע כלשהו מתוך
רשימת קבועים, תוכל להשיג תוצאות מיוחדות בתהליכי שכפול מסד נתונים, או עדכון
מקור נתוניס מרוחק. קבוע המסנן 6חסאז6טוו80 מסיר את הגדרת המסנן מתוך ערכת
הרשומות ומשחזר את ערכיה המקוריים.
סינון רשומות. שתי השגרות שלפניך מסננות ערכת רשומות המבוססת על הטבלה
6055 במסד הנתוניס 6חוששחצוסא. השיגרה 66070560חזסטוו] מנהלת את השימוש
הכולל במאפיין זוסטוו=, מדפיסה את קבוצת התוצאות, מנקה את המסנן ולאחר מכן
מדפיסה את קבוצת התוצאות פעס נוספת. השיגרה 6607056%אזטוו= מתבססת על
הפונקציה 66166 |זספוו= המנהלת את הגדרת המאפיין זטוו₪, בהתאם לפרמטריס
שהעבירה אליה השיגרה 6607056%חזסטוו=.
( 667166070566|= 55
9% 5 8זסו 56500 וחום
6000566 076866 '
שס) = 5005000075 56%
8 ";08.4.0ם 11670506.266.01] = זס סק" = הס 66 הח 5.6660 505%
8 " 1606 006 67050ו]65!= ותהזפסזק:06=6ט50 זכ"
"; סח 6 חוששח סא 165 ו 5"
.6% חססס '
6 , ,"005605" 5.06 זו 56560
0 זססון-'
("*ס" ,"610 0500" ,7675 0ש616|0)7505א! [זסס|ו= = 500500075 56%
26050 זרת 505%0ז +חוזק. פטססס
05006 '
6חסא667|ן80 = ז0ס|]. זר 565%0ז
2650 סרח 505%0ז זחוזק. פטססס
5-6
סט 0ח=
66070560. 008 5 6 50ז)6!0ו6א! != הסססחטת
5ב (8חוח5 5 זסס|ו 50 ,0חו507 ₪5 6|0 50
הז 30 00[66% 66070561 50661160 6 חס זססו11 8 56%'
0066 ₪6607056% צוסח 8 הססס'
"" 8 זו 5 8 "' 1185 " 6 507610 = זסס|ו=. 6 50
קוחש 50 = 6|0ו6א| |זססוו= 56%
חסססחט- 0חם
השיגרה 6607056%זסוו= פותחת ביצירה ובפתיחה של ערכת הרשומות ז08ח565%0ז.
לאחר מכן היא מיישמת מסנן על ידי קריאה לפונקציה 6|6ו6₪א] |זסטוו, אשר קולטת
שלושה ארגומנטים ומחזירה ערכת רשומות המבוססת עליהם. 1!67866070560= מציבה
את ערך ההחזרה המסונן ב-ז5605%08ז ומדפיסה אותה כדי לאמת את התוצאה.
466655 2000 /,;; 4
הארגומנטיס שנשלחו אל 6660 |זסטוו= כוללים את זסוחס6פט56ז (ערכת הרשומות),
שס שדה שלפיו יש לערוך את הסינון (1ו6ח500ט6), וערך קריטריון סינון (*ס).
קריטריון הסינון עשוי לכלול ביטוי חוקי עבור האופרטור 66!(]| של הפונקציה
660 [זסש|ו=. ₪6601056%זסט!ו= מעבירה *פ כדי לצמצס את החיפוש לרשומות שערך
השדה 605000610 שלהן מתחיל באות פ. המאפיין זטוו= אינו מגביל את הסינון
לאופרטור 6או1 בלבד. ניתן גס לבצע סינוו באמצעות האופרטוריס >, <, =>,=<, <>
ו-=. אפשר לכלול את האופרטוריס הלוגייס 400 ו-זס בביטויי הקריטריון, כדי לחבר
שני ביטויים או יותר בהתבסס על אופרטוריס חוקיים נוספים.
מאפיין זסטוו= מגביל את הקריטריון לביטוייס בתצורת 6ט8[0/-ז678%0ק6-0וח3ּ16!0=. אך
קיימיס קבועים של וו המאפשרים שימושים מיוחדים. ₪66070566ז6!ו= משתמשת
במאפיין 6חסאזטט!ו80₪ כדי לשחזר ערכת רשומות על ידי הסרת המסננים.
שימוש ב-501 ליצירת ערכת רשומות. עובדה אחרונה שעליך לדעת על ערכות
רשומות: כיצד ליצור ערכת רשומות בהתבסס על משפטי 501. לעיתים קרובות משפטי
אינס מורכבים יותר מהמשפט יישוהאם ופחד ומסח * ד0ם |55'י, אך באפשרותך
לנצל את מלוא הרכיביס התפקודיים של 501 כדי ליצור ערכות רשומות. תוכל גס
להשתמש במשפטי ז0= ]55 מורכבים ומרובי טבלאות עס שדות מחושביס המשתמשיס
בצירופים (פחוס[) פנימיים וחיצונייסם אשר מגבילים או מארגניס קבוצות החזרה בעזרת
הפסוקיות =םה/, ץצ 6007 ו- צם הפסמס. דרך קלה ליצירת ערכת רשומות
מותאמת אישית שמבוססת על משפטי 501, היא השימוש בפסוקיות =חפה/ו.
באפשרותך לשלוף רשומות בצורה סלקטיבית מתוך מקור קיים באמצעות ביטוייס
מורכביםס יותר מאשר ניתן להפעיל בעת שימוש במאפיין זסטוו=.
הקוד שלפניך משתמש בשיטה ח6ק0 ובמשפט .501. כשמבססים ערכת רשומות על
משפט 501 במקוס על טבלה קיימת, מעביריס את משפט 501 ומשתמשים בארגומנט
האופציונלי 806 06001 במקוס בארגומנט 6% 84067001. זה כל מה שיש לעשות. לאחר
מכן ניתן לנצל את ערכת הרשומות כדי לבנות ערכת רשומות פשוטה כלשהי שמבוססת
על טבלה מסוימת. משפטי 501 מורכבים יותר אינס משנים את ההצהרה או את אופן
הטיפול בערכת רשומות באמצעות ססג.
()₪6607056% 501 5
5 5זסו 50500 וחוס
600056 076866 '
אעשוס = 5005000075 56%
8 ";08.4.0ם 11670500.260.01 = זס סק" = הס 66 חח 5.6600 505%
8 " 01606 0106 67050ו]65!= ות8זפסזק:06=6טס5 הזכ"
"; סח 6 חוששחל סא 165 ו 5"
6 השכס '
ץ!ה00ז וס 3006 , ,"5 00500 םת * 607ם 551" ה5.006ז ו 56560
0% ,680 א6ס וה
0650 זרת 505%0ז +חוזק. פטססס
6-]- 505
50 06ח=
פרק 2: מודלי גישה לנתונים | 115
האובייקט 6!60ו=
שדה הוא עמודת נתוניס שמכילה ערכים מסוג נתוניס והה. בספריה 8סססג, האוסף
5 שייך בלעדית לערכות רשומות וחבריו הס האובייקטיס ₪6!0. אובייקטיס אלה
כוללים מאפייניס ושיטות המשמשיס לאחסון ושליפה של נתוניס.
ערכות רשומות מנצלות את המאפיין ס6טו3 של האובייקט ₪6!0 כדי להציג את תוכן
העמודה של הרשומה הנוכחית. כשמשנים את הרשומה, ערך זה יכול להשתנות כדי
לייצג את תוכן הרשומה החדשה. מאפייניס רביס נוספיסם של ₪66 מכילים
8-ה - נתוניס אודות נתוני הרשומה. המאפיין 6חג הוא נקודת אחיזה (6ו0ַחַח)
שמאפשרת ליישוס להתייחס לשדה מסוים. המאפיין 26ו6₪0605 מאפיין את הגודל
המירבי של שדה (בתווים, בשדות 16%%). המאפיין 8668|526 הוא הגודל בפועל,
בבתים, של ערך באובייקט 8|6ו=. המאפיין פסטפוזשה מכיל מערך רכיבי מידע על שדה.
באפשרותו לציין אס ערך שדה הוא בר-עדכון או אס השדה יכול להכיל ערכי ווטא.
הערה:
המאפיינים 805/26ח2661 |-26ַ60015/ משתמשים ביחידות מידה שונות עבור
שדות 16%0. 805/26חו26 הוא מספר התווים המירבי בשדה, ו-46008|5/26 הוא מספר
הבתים שהשדה מכיל בפועל. שדות ז6%ד של 4 365 מייצגים תווים באמצעות שני בתים
לכל תו, ולכן הערך 60081526 שלהם עשוי להיות אפילו כפול מהערך 660605126.
בשדות נומריים ובשדות 6ד במסדי נתונים המייצגים תו באמצעות בית יחיד (כגון
מסד הנתונים 3.51 26%), הבדל זה אינו קיים.
השיטות של ₪66 - אחטח0ז06 ו-אחטח06ח6סק - מאפשרות לעבד שדות גדולים של
טקסט או של נתוניס בינארייס בגושיס קטניס שקל יותר לטפל בהס בזיכרון המחשב.
השיטה א%חטח66)0 משמשת להעביר לזיכרון חלק מהשדה. הארגומנט 5126 מציין את
מספר הבתיס שיש לאחזר בהפעלה אחת של השיטה אחטח66%0. בכל הפעלה רציפה
ללא הפרעות של השיטה, מתבצעת קריאת נתוניס חדשיס מהנקודה בה הסתיימה
קריאת הנתוניס הקודמיס. השיטה 00%ח06ח6סקה מאפשרת לבנות מתוך הזיכרון שדה
גדול מאוד המכיל טקסט או נתוניס בינאריים, בצורת גושים. בדומה לשיטה
אחטח6600, גס שיטה זו כותבת בשדה נתוניס חדשיס החל מהמקוס בו הסתיימה
הכתיבה הקודמת של אחטח6חססכה. כדי להפעיל את השיטות בצורה נכונה, יש לתת
לסיבית פַחס 3001 של המאפיין שטטה באובייקט 6|0= את הערך 6טזד.
המאפיינים ס6וחב3 ו-6טו/. השיגרה שלפניך מציגה את השימוש הנפו של מאפייניס
אלה. השיגרה מציגה את כל שמות השדות לצד ערכיהם. היא יוצרת ערכת רשומות בת
רשומה אחת בהתבסס על משפט 501.
466655 2000 ₪ 6
()6ט]6/3רח 3 16!01= פט5
חס 66 ה חה0ס0. 308 5 1חח6 וחוס
58 סו 5560 וחום
.םסכ 45 קסס 1101 הזוס
30 660 ה חס60 ח6מס '
= 8 ";08.4.0ם 16070500.260.01 = ז06ועסזק" = חח506
8 "0106 65]!670508!= ות8זססזק:06=6ט50 הזכ"
"; 0 0רח. 6 חוצוח+זסא 65!ק רוחה 5 166"
הסוח .כ סכ צו6 = 1חחס 56%
חח506 ה1.06החס
0% שס) = 5005000075 56%
1חח6 = 0ה660חה6600עו5.6 זו 56560
8" 0050005 את * 607ם 551" ה5.006ז ו 56500
+ , ,"קבא ספ'= 61 60560 םשהש"
1 חס 81065 30 65וחהח ₪610 +60 '
5-ה ח1 01000 ח86ם זס=
6|/. קסס ₪01 ,6 1 קסס 61 שחוזק. פטס
קסס 01 6%
סט 0ח=
השיגרה מתחילה בפתיחת חיבור ולאחר מכן יוצרת ערכת רשומות בחיבור. משפט 501
שולף את רשומת הלקוח שערך השדה פ0671 6500 שלה שווה ל-ק4אספ. לולאת ספ,
הבאה לאחר יצירת ערכת הרשומות, עוברת על שדות ערכת הרשומות. הדפסת
המאפיין 6וחגּ יחד עס המאפיין 8|06/ מסייעת להבנת פעולת השיגרה.
המאפיין 6קץד. המאפיין 6קץד של האובייקט 6!0= מציינת את סוג הנתוניסם שהשדה
יכול להכיל. המאפיין מחזיר את אחד מקבועי סוגי הנתוניס שבטווח הערכיס
וחטחם6סץ דזהכ. תוכל להציג את הקבועיס האפשריים שבספריה 0008 באמצעות
סורק האובייקטיס. תרשים 2.5 מציג את הקבועיס הללו בחלון ו56ש0סז8 00[66%.
בחירת סוג שדה מאפשרת לקבוע ערכים חוקיים עבור המאפיין 6טו של סוג השדה.
הדפסת סוגי נתונים של שדות. שתי השגרות הבאות פועלות יחד כדי לעבד קבועיס
של סוגי נתונים באמצעות סכג. השיגרה 6סץ8067א60%=₪ פותחת ערכת רשומות
המבוססת על הטבלה 00675 במסד הנתוניס 6חושוחשזסא. טבלה זו מכילה מיגוון עשיר
למדי של סוגי נתוניס, ולכן ניתן לנצל אותה כדוגמה לבחינת הנושא של סוגי נתוניס.
לאחר פתיחת ערכת רשומות, השיגרה עוברת בלולאה על כל השדות שבערכת
הרשומות ומדפיסה שם וסוג של כל אובייקט 6|0ו=. הפונקציה 06ץד8!0ו₪ מתרגמת את
הערך המספרי של הקבוע למחרוזת המייצגת את הקבוע. הערך המספרי של הקבוע
ץ6ח776ְ300 הוא 6. הפונקציה 6קץד160= ממירה את הערך 6 למחרוזת 'ץ6ח6זוט00'י.
כעת מדפיסה השיגרה 6מץ67ו6!088ו₪ את שמות כל השדות ואת שמות כל הקבועיס
של סוגי הנתוניס.
פרק 2: מודלי גישה לנתונים 117
<1ם)- | זז )ס6ן 0 "בי
| |= | [. |. |- 8
2 | |- הונח 41|
6 זט | |
ופרט ₪ ההדזה שב פסססג תו
'ההטח= 313708 כ' זט זפ מחזפו
- 1חוטו8ה3 ₪
ץהּחוםב3ּ ₪
30000 ₪ זסזום ₪
ה ₪ פופו ₪
303 =
זה ₪2
וח 8350 ה)חטשם קב
ו ההטח=פט|פ/וסזז ב
הזח פע ו
=
8 ₪ = הסוס 86180 שב
6 ₪ ו ו
פוחו ד8!ו ]30 ₪ ההנוח= זט 18/0 שק
3408 ₪ - וי
4 וד 0 ₪ [= המטח= קטסז6זפווו שב
6 = 606 זזוו806 0091
ההונוח-61 03431 0008 01 זסמחז6וו
תרשים 2.5: סורק האובייקטים מציג מבחר קבועים של סוגי נתונים
18
()6קץ 67 3 610% 5
חס 66 ה חה0ס0. 308 5 1חחם6 וחוס
58 5070675 חזוס
.םסכ 45 קסס 101 הזוס
₪0 6608 ח60 הסכס '
= 8 ";08.4.0ם 1670500.16%.01]= ז06ושסזק" = החה506
8 "0106 65]!6070508!= ות8זססזק:06=6זטס5 הזה"
"; 0 6.0 חוצשח+זסא 65!ק רוחה 5 1166"
הסוח ח 8.60 )א ופא = 1חחס 560
החה506 ה1.006החס
0% שו 6 = 50700675 56%
1חס = 8ה6600הה600ע5070075.60ז
6 , ,"וס" ה5.006ז50706ז
זז 065 0ח3 65חחהּח ₪6|0 +זסס6א יד
65 חן ₪01.00 586 זס=
= 8 זע 8 סוחבּ. קסס ₪81 .8 " :ספא |" זחוזק. פטטסס
זפ 8 (6סץ ד.קסס 6)101קץ ד60ו= 86 " :מצד "
קסס 01 6%
50 0חם
66655 2000 8
0חו 5 45 (ז10%606 5 6קץ הזחו)6קץ ד610ו= הסטסחט= סווטגוק
6 דחו 6856 561666
ץח הסה 6856
"זה /זה/ה" = 6קץדסו6ו=
0 6856
"לְסח6ט00" = 6קץד6!0ו=
0 6856
"0160" = 6קץ ד6!0ו=
86 0856
"3028%6" = 6קץד6!0ו=
סחם
חסשס6חט= 6ח=
| 6 ה!
:
עשקָשסתזההּ :
5 משס0 סוס :
העבשהה :
2 עקת
עסקססמדהה :
עס :
366 תבה :
סע נגו שת
שסהתהה :
שסהתהסעעו+תפ :
ה :
הנטקגםם :
עסקססמדבהה :
סמ 1נסעץ
|* צְסמשתמגוסבה :
,
תרשים 2.6: קטע מתוך הפלט של 6כץד6!0%836=
תרשיס 2.6 מציג קטע מתוך פלט 6מץדפוח8ּ\6!0ו=. הקטע כולל לפחות שדה אחד מכל
סוג נתוניס שממירה הפונקציה 06ץ8!01=. תוכל להפעיל את 6כץ7ַ86א₪6!0 ואת
6 ד כנגד ערכות רשומות בהתבסס על מקורות נתוניס שונים. ייתכן שתפגוש סוג
נתוניס נוסף לארבעה שברשימה. במקרה זה, שדה 6ץד שבדוח יהיה ריק. תקן את
הבעיה על ידי קביעת ערך השדה. הכנס נקודת עצירה במשפט זחחק.פַטט6כ בלולאת סס
פרק 2: מודלי גישה לנתונים 119
של השיגרה 6כץ6!0%8067ו=. בדוק את ערך 6סץד.קססו0ו של שדה שסוגו אינו מוצג,
ואחר כך התאס את ערך הקבוע כנגד הקבועיס בטווח הערכים וחטחסססְץְדַזהכ שמציג
סורק האובייקטיס (תרשיס 2.5). לבסוף, הוסף את המשפט 6856 56|665 לשיגרה
6 = כדי להמיר את הקבוע החדש.
חיפוש ערך השדה הגדול ביותר. השיגרה 265ו₪16!05 שלפניך מיישמת את המאפיין
86 כדי למצוא את הערך הגדול ביותר בשדה 6האץח8קח0ס6 של הטבלה
5קוח5 במסד הנתוניס 6חושחזזס. השיגרה מתתחילה ביצירת חיבור אל מסד
הנתוניס ולאחר מכן פותחת ערכת רשומות המבוססת על הטבלה פזססקוח5. חלקה
השני של השיגרה מאתר את שס המוביל הארוך ביותר ומציג תיבת הודעה ובה השס
ומספר התווים שהוא מכיל.
()16!051265= 500
חס 66 ה חה0ס6. 308 5 1חח6 וחוס
58 פזססקוח55ז הזוס
.םסכ 5 קסס 01 הזוס
58 5 507150 ,1006007 45 5זהח6אהּ |ושחו וחוס
509 5 507436 וחזוס
30 600 ה ח0ס60 ח6כס '
8 ";₪08.4.0 1167050.16%.01]= ז06ושסזק" = החה506
8 "0106 1670508 65!= ות8זססזק:06=6ט50 זכ"
"; 0 הח 0 חוצוח+זסא 65!ק וח 58 7166"
66 8.60 20 צוסא = 1חחס 560
חח506 ה6ק1.0החס
צעצס)] = 5זססקוח55 56%
1חח6 = 066000 ח600עו5.6זססקוח55ז
, "5זססקוח5 את * ד60ם 551" ה6ק5.0זססקוח55ז
.6וחפח 5'זסקקוח5 65%שחס! סחוח '
0 = 5זבח6)אבּ]סחו
"0ם.5זססקוח55ז וסחט ספ
חס ד 5זה הוחו < 2 / 600815126 36 חק וח 60!זסקוח55 +
2 / 600815126 36 חקו 510 סק קות55ז = 5זבּח-)אהּוסחו
("6 ה קרח 0" )16105 סק 551 = 6וח508
+ 50
עס 5ז סק קוח55ז
קסס |
8" 15 6החח 5'זסקקוח5 65%שחס! 6חד" = 507150
". (075ז86 1 ח6 " .8 5זהח)אב שחו 8 ") '" 8 6ההא5
"2000 66655( 500סזסו] פחוהחרחה טסוק" , הסטפוזס+ה1פע ,5071150 אס 15
6
סט5 0חם
0 ;א 2000 406655
המשתנה פזהּח6אף|זחו עוקב אחר אורך השדה הגדול ביותר. חלקה שני של השיגרה
5 מאתחל את המשתנה ל-0 בטרס יחל ביצוע הלולאה שעוברת על כל
הרשומות שבערכת הרשומות. אין הכרח לאפס את פ5זהּח6אב!זחו, מכיון ש-84/ עושה
זאת בעצמו. אך האתחול תורס למעין תיעוד עצמי של השיגרה. כל שס מוביל שמספר
התוויס שהוא מכיל גדול יותר מהערך הנוכחי של 5זהח6אפּ|חו הוא השס הארוך
ביותר עד לאותו שלב של הבדיקה. כשהשיגרה מוצאת שם העונה על קריטריון זה, היא
מעדכנת את המשתנה 5זהּח6אהחו ושומרת את השס. שיס לב שהשיגרה משתמשת
בשתי מערכות של כללים תחביריים כדי להפנות לשדה. משפטים אחדים משתמשיםס
בתו 8ַח98 (!) שהוא סימון שהיה מקובל בגרסאות ישנות של 466655. בסימון הנוכתי,
התו 8809 מפריד בין שס ערכת הרשומות לשס השדה. הדרך החדשה והמקובלת יותר
היא ליצור הפניה אל השדה באמצעות האוסף 68!6=. באפשרותך להשתמש באינדקס
המספרי, אס הוא ידוע לך, או לתחוס את שס השדה בין גרשייס.
האובייקטים 6חבּוווה0ס6 ו-זס%סוחבּיובּק
לאובייקטיס חח 60 של הספריה 8ססכג שלושה יתרונות:
4 הס מסוגליס לבצע שאילתת בחירה כדי להתזיר קבוצת שורות ממקור נתונים.
> הם מבצעיס שאילתת פרמטר, דבר שמאפשר לספק קריטריון חיפוש בומן ריצה.
> הס תומכים בשאילתות פעולה כנגד מקור נתונים, כדי לבצע פעולות כגון עדכון,
מחיקה והוספת רשומות.
כפי שנלמד בסעיפים הבאים, האובייקט 6ַחגּוחוח60 יכול למלא תפקידים נוספים
בספריות אחרות.
עליך לייעד אובייקט ח0668₪0הח60 שעליו תופעל פקודה. תוכל ליצור אובייקט
ה6000החס6 בצורה משתמעת בעת ציון פקודה, או לשייך מפורשות אובייקט
ח6600חח60 קייס לפקודה. אפשרויות אלו זהות לאפשרויות ערכות רשומות.
המאפיין %טססוחו ד0ההּוחוחס6 קובע את משך הזמן ש-0סג תמתין לסיום ביצוע
פקודה. מאפיין זה קולט ערך מסוג 108 שמציין את ומן ההמתנה המירבי בשניות.
ערך ברירת המחדל שלו הוא 30. אס פסק הזמן חולף בטרס סייס האובייקט
0ח8וחוחס6) את ביצוע הפקודה, 00 תבטל את הפקודה ותחזיר שגיאה. אובייקט
ח0ו66חחס6 תומך אף הוא במאפיין %טססוחו דחה וה60, אך אינו תלוי במאפיין
0 60 של אובייקט 0ח8ח וח 60. מאפיין זטססחו ד0ח8 וו 60 של אובייקט
80 וח60 אינו יורש את הגדרת המאפיין סח הוח 60 של אובייקט חס 66החס6.
המאפיין 26ץד6חהּווח 0ס6. קיימיס למעשה סוגים אחדים ושוניס של האובייקט
0ח וח60. המאפיין 6ץ ד0ח8ח 60 מגדיר את סוג אובייקט 06ח8ח חח 60. תוכל לבסס
את הפקודה על משפט 501, על טבלה או על שיגרה מאוחסנת, כפי שמציגה הטבלה
הבאה. הסיבה העיקרית לשימוש בהגדרת המאפיין 06ץ01ח8 60 היא לאפשר יצירת
פרק 2: מודלי גישה לנתונים 121
אובייקט 0ח8ח 60 שמבוסס על משפט 501. החלפת ערך ברירת המחדל של הקבוע
6 ו 60 בערך אחר, עשויה להאיץ את ביצוע הפקודה. לכן, אס המקור ידוע לך,
מוטב שתגדיר את הקבוע הזה.
המאפיין %א6 ד0חהּ ווח 60. כדי לכתוב משפט 501 שייבצע את הפקודה, משתמשיס
בהגדרה 66 ד0ח8חו007 של האובייקט חחח וח60. באפשרותך גס להגדיר את המאפיין
בתור שס של שיגרה מאוחסנת. בעת הפעלת משפט 501, ניתן להשתמש במאפיין
0 כדי לציין שהמשפט מיועד להידור (קומפילציה) ולאחסון בשרת מסד
הנתוניס. הדבר מאט את הביצוע הראשון של הפקודה, אך במקביל מאיצ את ביצועיה
בהמשך. תן למאפיין 6ז8ק6זס את הערך 6טזד כדי להדר משפט 501.
קבועי 6ץ 30 וח ס6
בה ו
₪ 1 מאפשר להפעיל פקודה המבוססת על משפט 501, שיגרה
מאוחסנת או אפילו טבלה. בדרך כלל תשמור הגדרה זו
עבור משפט 501
06 2 מבסס את קבוצת ערכי ההחזרה על טבלה שעוצבה קודם
לכן. מחזיר את כל עמודות הטבלה בהתאם למשפט .501
שנוצר באופן פנימי
יוב מפעיל פקודה המבוססת על טקסט עבור שיגרה מאוחסנת
העשסחאח ת0בּ לא קיים מפרט כלשהו לגבי סוג טקסט הפקודה. זו ברירת
המחדל
306 | 256 | מעריך פקודה בהתאם לשם הקובץ עבור ערכת רשומות
תמידית
303 | 512 | מעריך פקודה בהתאם לשם הטבלה. מחזיר את כל
העמודות בטבלה ללא קוד 501 מתווך כלשהו
השיטה 16ז660אם. השיטה 5066006 של אובייקט 800 60 מפעילה את קוד הרקע של
האובייקט 0ח8 60 (שאילתה, משפט 501 או שיגרה מאוחסנת). תוכל לציין עד
שלושה ארגומנטיס. הארגומנט הראשון מאפשר לאובייקט 60800 למסור לשיגרה
המפעילה אותו את מספר הרשומות שעליהן פעל. הארגומנט השני יכול להיות מערך
+חוז/ שמכיל פרמטריס להפעלת הפקודה. הארגומנט השלישי מודיע ל-400 כיצד
להעריך את המקור. ארגומנט זה יכול להיות אחד מתוך רשימת שמות הקבועיס
המוצגיס בטבלה ''קבועי 6כץ ד0חהחחחחססיי, לעיל.
השיטה ז60373716%6ז63ו6. השיטה ז87806060ק0ז0768 של אובייקט חפ 60 יוצרת
פרמטר חדש של פקודה. לאחר יצירת הפרמטר, תוכל לנצל את השיטה סחסססה כדי
להוסיף את הפרמטר לאוסף 665 הזץ של פקודה. בטרס תפעיל שאילתת פרמטר,
עליך לספק לפרמטר ערך.
406655 2000 ₪; 2
יצירת ערכת רשומות באמצעות שאילתת בחירה. אחת המטלות המיידיות שניתן
לבצע בעזרת אובייקט חח 60 היא ליצור ערכת רשומות שמבוססת על שאילתת
בחירה (עזפטם 566%). האובייקט חַחוחוח60 מפעיל את שאילתת הבחירה ומייצג את
הערכים המותחזריס שלו. בשלב גה יכול הקוד שכתבת לפתוח אובייקט ₪6607056%
המבוסס על הקבוצה המוחזרת מהאובייקט 0ח8ח60. וה בדיוק מה שמבצעת
השיגרה 56!660607800 שלפניך. לשיגרה שני חלקים: האחד יוצר את האובייקט
0ח ו 60 וחיבור שמקשר אותו למסד נתוניס, והאחר מעבד ערכת רשומות המבוססת
על הקבוצה המוחזרת מהאובייקט.
()0ח8 5616600 5
סה 60 5 601 וחוס
58 5 5071 ,66070566 5 51 הזוס
.םסכ 5 קסס 101 הזוס
.ו 60 600%6א6 30 6ח6כ '
וו 208.00 עוסא = 601 56%
61 הסו\
660 חח 60600.0 6 = חה0ס0 66666 .
"סוסב דש את *.6|סה דש 567 [55" = 6% דחו 60.
0% = 06ץ ו 60.
6
חסו/\ סחם=
טשחוזכן 0ח3 חסכס '
, שצוס) = 51 566
1 51.0060ז
51.50 וטחט סס
₪
5 חן 01000 ₪86 וס
(9)זח6 8 6טן/. קסס.]1!0 8 51 = 501
קסס 01 %א6)]
1 5 שסחוזק. פטטסס
+אססעסו. 51
קסס |
סט5 0חם
חלקה הראשון של השיגרה מצהיר על 6701 בתור אובייקט 0ח8 60 ולאחר מכן
מגדיר שלושה מאפיינים קריטייס של האובייקט. כל פקודה חייבת לכלול מאפיין
ח0ו660ח 66600 כדי לפעול כנגד מסד נתוניס. האובייקט 6000800 מסתמך על
משפט 501 שייצג את שאילתת הבחירה שלו. תוכל להחליף את שאילתת 501 בשאילה
שמורה. משפט 60016א₪ מפעיל את שאילתת הבחירה. בתוס פעולת השיטה 6ט660אם,
1 מכיל הפניה אל ערכת רשומות.
פרק 2: מודלי גישה לנתונים 123
חלקה השני של השיגרה פותח אובייקט ₪66070566 המבוסס על 6001 ומדפיס את
קבוצת ההחזרה שחבריה מופרדים בתווי טאב ((9)זח6) בחלון 160186 (מיידי).
יכולת הטיפול של השיגרה אינה מוגבלת למספר עמודות ושורות כלשהו.
יצירת ערכת רשומות באמצעות שאילתת פרמטר. הקוד שלפניך הוא דוגמה לשאילתת
פרמטר (ץז6ט) זסזסוחהּזהק). גס קוד וה מורכב משני חלקים. שאילתת הפרמטר שבחלק
הראשון כוללת שורות קוד 400 אחדות ומשפט 501 בתחביר שונה משל שאילתת
הבחירה הקודמת. החלק השני שמדפיס את קבוצת ההחזרה זהה לזה של שאילתת
הבחירה הקודמת.
( חר 660 73 5
סח 60 5 601 חחוס
58 5 5071 ,166070566 5 51 הזוס
.םסכ 5 קסס 1101 הזוס
זז 5 1לחו ,ההק 0 סכ 5 1 חחזק וחוס
.חח 60 060106 300 68%6ז0 '
וו 8.00 20 צוסא = 601 56%
01 הסו\
החסו66 חח 60600.0 6 = חה0ס 660 תה 666 .
₪ ";0ח0] [65%אוס 1] 75ז6%06ו0ה37ק" = 6% דחו 60.
8 " 3חוט|ס6 ,2חוחט!60 ,1חותטוס6 ₪607 551"
8 " 6|סהדץוא אסא-"
"[651עוס ]]= < 1 הוחט!60 = חשרן\"
3% = 06ץ ו 60.
ה)%ו\ 0חם
66 ההכ 067106 300 076806 '
(טטקחז 303 ,%56067ח301 ,"[65עוס |]" )זז 601.68 = 1וחזק 56%
1חזס 0חהס6קכה.5זסז6רח ה זהק. 601
(("2000 266655 1167050 פחווחוחהוטסזק" ,"?סט|הע זפסצוס.1")אסט6+טסח1)ווזד = 1טחו
1חו = 6טןבּ/. 1 חזוק
ץ זט ההק חטח '
6
טס ו %חוזכן 0חה 601 חס 6607056% הסקס '
/צס) = 51 56%
1 ה51.0060ז
51.50 וטח סס
=[
5 חן 010070 ₪86 וס
(9)זח6 8 6ט!/. קסס .]1/0 8 51 = 501
קסס. 01 +%אסו]
1 5 שחוזק. פטטסס
+אססעסו. 51
קסס |
סט5 0חם
66655 2000 /; 4
תחביר משפט 501 כולל שורת הצהרה חדשה על פזס66וחהּזהּק, אשר מציינת את שס
הפרמטר וסוג הנתוניס שלו. הפסוקית =מםה/ אף היא צריכה להפנות אל פרמטר אחד
או יותר, כדי שהפרמטרים יוכלו לפעול על קבוצת ההחזרה. לא די בתיקוני תחביר
אלה במשפט 501 כדי לגרוס לשאילתת הפרמטר לפעול - עליך להוסיף את הפרמטר
ולצרפו לפקודה באמצעות קוד ססג.
מפעילים את השיטה ז687870600ז6708 כדי להוסיף את הפרמטר. הקוד שלעיל מפעיל
את השיטה באמצעות שלושה ארגומנטים. הארגומנט הראשון מקצה לפרמטר שם,
השני מקצה לו סוג נתוניס והארגומנט השלישי מצהיר על כיוון. הקבוע 6טסח8011ז3ק0ה
הוא למעשה ברירת המחדל שמצהירה על פרמטר קלט לשאילתה. קבועים נוספים
מאפשרים להגדיר פרמטרים של פלט, קלט/פלט וערך התזרה. לאחר יצירת פרמטר,
עליך לצרף אותו לאוסף פזסס6וח8ּזק של הפקודה.
לאחר כתיבת הקוד שמוסיף את הפרמטר, עליך להקצות לפרמטר ערך כדי ששאילתת
הפרמטר תפעל בצורה תקינה: הקוד שלעיל משתמש בפונקציה אספזטקח1 כדי לקבל
קלט מהמשתמש. לאחר קבלת הקלט, השיגרה מפעילה את השיטה 660%66א₪ של
האובייקט 0חאוחוחס6 כדי ליצור קבוצת החזרה.
מחיקת רשומות. באפשרותך לנצל את האובייקט סח 60 כדי למחוק, לעדכן
ולהוסיף רשומות למקור נתוניס. האובייקטים 60800 מספקים אמצעי תכנותי
לתחזוקת מקור נתוניס. השגרות 6!606066070 ו-6!600|]₪660705ש שלהלן אוספות
רשומות מתוך מקור נתונים. מייעדים את מקור הנתוניס ואת קריטריון בחירת
הרשומות באמצעות המשפט םד |םכ של 501. תצוגת .501 בחלון השאילתה של 460655
מאפשר לעצב שאילתה בצורה גרפית ולאחר מכן להעתיק את הקוד למאפיין
+ ו 60 של הפקודה. בוודאי תרצה לערוך את קוד 501 מתוך מעצב השאילתות
של 4660655, כדי להסיר סוגרייס מיותרים. אס השאילתה שיצרת מתבצעת על טבלה
בודדת, תוכל להסיר את תחילית הטבלה שלפני שמות השדות. כפי שניתן לראות,
ההבדל בין שתי שאילתות המחיקה מתמקד בתחביר משפט 501.
()866070 6166 פט5
חר 8.60 0 45 601 וחוס
וו 5.00 0כ ג שוסא = 601 56%
61 הסו\
הסו66 חח 60600.0 6 = 6600 תה 6660 .
8 " ₪0ת 1ההוט|ס6.6!טב דש ם דם 1ם" = 6% דחו ס6.
"; ((13 = (1חוחט|ס6.6!סב דץוז))) םמם ה/ 6וסב דעו"
0% = 006 60.
6
חסו סחם=
50 06ח=
פרק 2: מודלי גישה לנתונים | 125
()6!6%6|]5₪660705 פט5
חר 8.60 0 45 601 וחוס
בוו 5.60 סכ ג צוסא = 601 56%
1 תסו
הסו66 חח 60600.0 6 = 6600 תה 666
"6|סה דעו סמ *.6!טב דש ם דם 51" = 6% דחו ס6.
3% = 06ץ ו 60.
6
חזו\ סח
50 06ח=
הוספת רשומות. בעת פיתוח יישוס, ייתכןו שתהיה מעוניין ביכולת למחוק את כל
הרשומות מתוך טבלה ואחר כך לאפס את תוכנה. השיגרה 1568660705 משתמשת
באובייקט 6ַחאּהוח60 כדי למלא טבלה בערכים. תוכל להפעיל את השיגרה יחד עס
השיגרה 6!606|!8660705 כדי לרענן את הטבלה בקבוצת רשומות בסיסית קטנה.
16
66655 2000 8
()56118660705ח1 5
חר 8.60 0 45 601 חחוס
הוח 60 צו6] = 601 56%
1ח חשו/
הסו66 חח 60600.0 6 = חה0ס 660 תה ס66עו6.
,1חותט!ס6)0וטב דעוי ס דאז 1555" = 6% דחו 60.
"('1,2,'3) 55 |ה/ (3חוחט|ס6 ,2חוחטוס"
0% = 06ץ ו 60.
6
,1חוט!ס)6וטב דעוי ס דאן דחפ" = 6% דחו 60.
"('4,5,'6) 55( ]ה/ (3חוחטוס6 ,2חוחטוס"
0% = 06ץ ו 60.
6
,1חותט!ס6)0וטב דוי ס דאז 1555" = 6% דחה וו 60.
"('7,8,'9) 055 ]ה/ (3חוחט|ס6 ,2חותטוס6"
0% = 06ץ ו 60.
6
,1 חותט!ס6)0וטב דעוי ס דאן דהפ" = 6% דחו 60.
"('10,11,'12) ₪5 1ב (3חוחט!0ס6 ,2חוחטוס6"
0% = 06ץ ו 60.
6
8 " ,1חותט!|ס6)0|טב דץוז סדאז 1555" = 6% דחו ס6.
"('13,14,'15) ₪5 1ב (3חוחט!0ס6 ,2חוחטוס6"
0% = 06ץ ו 60.
6
8 " ,1חותט!6)60טב דעו סדא1 פא" = 6% דחו ס6.
"('16,17,'18) 5ם! |ה/ (3חוחט!60 ,2חוחטוס6"
0% = 06ץ ו 60.
6
הזו 0חם=
50 06ח=
השיגרה 105618660705 כוללת אלמנטיס כלליים וספציפיים כאחד. האלמנטים
הכלליים אינס תלוייס בעיצוב טבלה מסוימת. בקוד שלעיל, האלמנטיס הספציפייס
תואמיס לאלה הכלליים של הטבלה 6!פּדץוא. תרשים 2.7 מציג את 6|סּדץוא בתצוגת
עיצוב (ח0ו65כ). הטבלה כוללת שלוש עמודות : 1חוחטו60, 2חוחטוס6 ו-3חוחטוס6. שתי
העמודות הראשונות מכילות נתוניס מסוג ז0606ח1 פַחס1, והעמודה השלישית מכילה
נתוניס מסוג ז%א6ד (בעת הוספת רשומות, יש להתחשב בסוג הנתוניס של השדה).
[<1ם) = 6 -: סוסב דע 88
שוחב בוו
חסופןו650
סז בוו
668 | 100 |
לח הַחס.1 6 הפו
וי
סנו 5 |8 וט
קנ 56 ח63 פובה בסו ה 856 סופת
,חס 63865075 64 ספ חסקה
.503005 בַחוט!סחו סטב 6/5
חס סופת זס] 1= פפסזק ₪6 ח0ו8030/י
5 165 ד ח0ו80 הי
סז וטס
(63065ו!קטו סא]) 65/י כ
תרשים 2.7: תצוגת עיצוב של הטבלה אליה מוסיפים רשומות באמצעות השיגרה
1-5
האלמנטיס הכלליים של השיגרה 5618660/05ח1 משותפים ליישומיס נוספיסם של
האובייקט 0ח8ח60. יוצריס הפניה אל אובייקט 0ח8ח 60 ומגדיריס את מאפיין
החיבור שלו. לכל שורה ברשומה שברצונך להוסיף, נחוצות שלוש שורות קוד: הגדרת
המאפיין 016%%ח8חוח60, שמציין את פעולת הפקודה; המאפיין 6כץד0ח חח ס6,
שמציין את תבנית ההוראה; והשיטה 6זט660אם5, שמפעילה את תהליך ההוספה של
הרשומה החדשה. תוכל לחזור ולבצע את שלוש שורות הקוד לכל שורה שברצונך
להוסיף למקור הנתונים. אם תציין בתור מטרה קבוצת רשומות דינמית שניתן לעדכן
אותה, שלביס אלה יכוליס להוסיף רשומות לשתי טבלאות או יותר, בו-זמנית.
פרק 2: מודלי גישה לנתונים | 127
תחביר משפט 6 07ח8 60 של 501 כולל שלושה מרכיבים (תחביר זה אינו זמין
מתוך תצוגת 501 של מעצב השאילתות של 1600655). ראשית הוא משתמש במילת
המפתח 0דא1 דח55א1. אחרי מילה זו רשוס שם מקור הנתונים שאליו ברצונך להוסיף
רשומות. שנית, המשפט מנצל את השלב האופציונלי שמציג את שמות השדות
שקולטיס את הערכיס החדשים. אס לא תבצע שלב זה, הערכים שתוסיף בשלב
השלישי יתוספו בצורה סדרתית. הדבר עלול להוות בעיה, אס עיצוב מקור הנתוניס
משתנה במשך הזמן. שלישית, מילת המפתח 5=ם/ !אצ מופיעה לפני ערכי השדות של
הרשומה החדשה.
עדבון ערכי רשומה. השגרות חפעםס 0001 ו-0000סזח6ע₪ מעדכנות את ערכי מקור
הנתוניס של 1חחחטוס6 באמצעות האובייקט 6ַחחוח0ס6. תרשים 2.8 מציג את הטבלה
מייד לאחר הפעלת השגרות 6!6064|]₪660705 ו-56716660705ח1. שיס לב כי בתרשים
8 הערכים בעמודה 1חחט|ס6 הס זוגיים ואי-זוגייס לחילופין: אס ערך כלשהו
בעמודה 1חוחט|60 הוא אי-זוגי, הערך המקביל בעמודה 2חחט!ס60 הוא זוגי. השגרות
מנצלות מידע זה כדי לנהל את תוכן הטבלה.
| 3התט!60 | <תוחט! 60 | [תותט!ס 6 | |
23
56
9
6 01 |++| זו יכן | 4 ]4 0
תרשים 2.8: תצוגת גיליון נתונים (28%95766%) של הטבלה אותה מעדכנות השגרות
חסעם 0 02007 ו-0000 דחסעם
()חשעםס 0007 50
וח 8.60 0 5 60025 הזוס
1 5 060 חה ח60פשסהשחו הזוס
60 8.600 20 עש6 = 60025 566
25 הסו\
הסו66 חח 0ס0[600.6 זל 6 6 = חה0 66 ה 6660 .
= 6 " = 1חוחט!ס6 551 6|טב דש ₪ ד סק" = 6% הווח ס6.
"(6טזד=((2 106 1חותטו1*)60-)) םמםה/ 1+1חוחטוס6"
0% = 6קץ דחו 60.
0וס הו 660%6א5.
".3160060 6ו6/ וס " .8 860ח8ה50צוס שחו זחוזק. פטפסס
הז%ו 0ח=
50 0חם
8 א 2000 00055
()0000 דח6ע= פט5
וח 08.60 0ג 45 60520 וחוס
ו 5.60 סג צוסא = 600520 560
20 הסו\
הסוח 606.60 6 = חה0ס0 66 תה ס66עו6.
= 8 " = 1חוחט|ס6 55 6|טה דש םד סק" = 6% דחו 60.
"(3!56- = ((2 ₪00 2חותט|ס1*)6-)) םמםה/ 1-1 חהותטוס6"
0% = 06ץ ו 60.
6
ה)%ו 0ח=
טפ 0ח=
העיצוב הכולל של שגרות אלו בוודאי מוכר לך. ההבדל המשמעותי ביותר בין
הדוגמאות הנוכחיות לאלו שהוצגו קודס לכן טמון בתחביר משפט 501 של המאפיין
+ וח ס6. במקרה ּה, באפשרותך לחלצ את תבנית התחביר הכללית מתוך מעצב
השאילתות של 406655. הפסוקית םחםח/ של השיגרה ח6ש000105 בוחרת רשומות
שהערך בעמודה 1חוחט!ס6 שלהן הוא אי-זוגי. חלק התחביר הכולל את המילה =דהפק
מוסיף 1 לערך כדי להפכו למספר זוגי. השיטה 6606 מנצלת אחד מהארגומנטיס
המוכללים שלה כדי להתזיר את מספר השורות שהשתנו על ידי פקודה. השיטה
הפשוטה זשחוזק שולחת ערך זה לחלון 16013%6.ח1 (מיידי) לצורך הצגתו במסך.
השיגרה 0000 דחעם בוחנת את הערך שבעמודה 2חטוס6, כדי לקבוע אס יש לחסר 1
מהערך שבעמודה 1חוחט|ס6. אס הערך שבעמודה 2חוחט!60 אינו אי-זוגי, משפט .501
פועל על הערך בעמודה 1חוחטוס6. פעולה זו משחורת את הערכים שבעמודה 1חחטוס6
לערכיהס ההתחלתיים, אס 000 דח6/ם פועלת מייד לאחר השיגרה חסעסס ד000.
האוסף 5וסיוו=
אוסף זה מאפשר ללכוד חלק מהשגיאות המופיעות ביישוס 0סג. האוסף גס מחזיר
שגיאות מתוך ספק 08 015. מצב שגיאה יחיד יכול להחזיר שגיאות רבות, שכל אחת
מהן גורמת להצבת אובייקט זוסזזם חדש באוסף פזסזזם. יש שגיאות הגורמות לסיוס
התוכנית, אך לא כולן. כל תקלה חדשה מנקה אוטומטית את האוסף פזסזום כדי שזה
יוכל לקלוט את השגיאות הקשורות אליה. שגיאות 400 מסוימות נקלטות באובייקט
זזם במקוס באוסף פזסזזם, אך ניתן להשתמש גם באוסף למטרה זו. האוסף פזסזח=
מתאים ביותר לטיפול בשגיאות מבוססות-חיבור שהותזרו ממסד נתוניס מרוחק
באמצעות ספק 08 015 שלו.
האובייקט זסזזו₪ של האוסף פזסזום כולל חמישה מאפיינים שמסייעים לאסוף מידע
נוסף המאפשר להגיב עליהס באמצעות לוגיקת התוכנית. המאפיינים זסטחחטא (מספר)
ו-חסטקוז0650 (תיאור) מקביליס למאפיינים של האובייקט זום. מאפייניסם אלה
משלימים זה את זה. המאפיין זפסוחטא מחזיר מספר ייחודי שמזהה שגיאה, והמאפיין
ח00קו₪650 מחציר מחרוזת תיאור קצרה של השגיאה. המאפיין זסזוספשטְפא מספק
קוד שגיאה מוגדר של הספק. אס אתה עובד לעיתיס קרובות עס ספק מסוים, מאפיין
פרק 2: מודלי גישה לנתונים 129
זה עשוי לספק לך מידע שימושי לפתרון השגיאה. המאפיין 66זטס5 (מקור) נוקב בשס
האובייקט או היישוס שחולל את השגיאה. המאפיין 5015196 יכול להכיל הודעות
שגיאת תחביר של משפט 501, שמקורן בשרת מסד הנתוניס שאליו מפניסם את
הבקשה.
השיגרה פזסזופץ|ח0א1.00ח6ק0 שלהלן היא התאמה של שיגרה שהוצגה קודס לכן, אשר
מציגה את השפעת המאפיין 006 של האובייקט חס660חחס6. הגדרת מאפיין וה
כקריאה-בלבד גורמת ליצירת שגיאה בעת שמנסים לעדכן מסד נתונים. מעניין לציין
כי השגיאה אינה הופכת לחלק מהאוסף פזסזום. באפשרותך ללכוד את השגיאה ולהגיב
עליה באמצעות האובייקט זוש. החבר האחרון באוסף פזסזזם מופיע גם הוא באובייקט
זזם. לוגיקת לכידת השגיאות שבסוף השיגרה נמנעת מהדפסת שתי שורות בעלות
מספר ותיאור זהים.
()5זסזזםץ|ה0אסס [ח6ק0 פט5
חס 66 ה ח60 שצס] 5 1 חח6 וחוס
5 56050005 הזוס
חן 5 5זסזזם תח ,זסזזם 85 קסס וס וחוס
סז דץ|חסאסס | 6010 זסזום חס
0 = 1.]]006חחס
8 ";₪08.4.0 0508.26%.01ז6ו = זסוטסזק" ה6ק1.0החס
8 " 1606 006 167050 65!= ותהזפסזק:06=6ט50 הזכ"
"; סח 6 חועשח סא 165 5"
סז 8080!6זל 0667806 0 צץ660זססחו סהוצוחזזסא ||606 '
= 8 ";08.4.0 1670501%.260.01 = 6 0ועסזק" ח1.006החס -'
8 " 1606 166 050ז6ו]65!= ותהזפסזק:06=6טס5 הזכ"
"; 05.0 תועשח+ סא 65!ק 58"
!!!506 זס0וטסזק 1801 זס+ %ה6ח6!6 פזסזזם סא '
= 8 ";₪08.4.0 1670501%.2605.01]=ז06ועסזק" ח6ק1.0החס - '
8 " 11606 166 67050 65!= ותהזפסזק:06=6וטס5 הזכ"
"; סח 6 תוצוחל+זסא 65| 58"
ש 66 = 5050070675 56%
1חחס = ה6600 5.0660 זר 500560
סז 080|6ק3- הסה 424 3 86 60 66 60חו 75ז5005%010 |ו606 '
סז 0|6 328 - הסח 3001 366 60 הח6 35 1 חחס ||506 '
1חס = 66008 חח660ע60. 5006 50ז - '
סז 08|6ק3 זט 2147217900- 86 60 "זר 6500" 35 שבח 6|סםץ ||506 '
"0056000075" ה06 5.0 56560
.6זח (3251) ]סו חב 680565 1.1006 חהח6 זס? 0חו560 3010068680 '
.5 603065 60 6חו! 1.1006 חח6 6טס זחסווס6'
"אאאאא" = ("16|05)"005006710 .5 5605%0ז
6
("16|05)"605%0706710= .סו 50560 זחוזק. פטטסס
6
0 ;א 2000 406655
:הז דץ|חסאסס |
0 = פזסזום הזחו
סז 1 הח6 ח1 קסס 6 ה86ם זס-
חסטק6507. קסס |זזס ,זססוחטא. קסס !וס +חוזק. פטטסטס
1 + פזסזזם חזטחו = 5זסזזם שחו
קסס ]6 +אסו]
הסח 0 = פזסזום ה טחו +[
חסק6567כ.זזם ,זסטותטאז.זזם +חוזק. פטטטס
+ 0חם
50 0ח5
השיגרה פזסזוםץ|ח00%0 1ח6ק0 יוצרת מספר סוגי שגיאה שוניס ומנסה לכתוב אל חיבור
מסוג קריאה-בלבד. תרשיס 2.9 מציג את החלונות 6006 ו-6018%6ח1 של 85/. מקור
ההודעות בעלות קודי השגיאה הארוכים והשליליים הוא באוסף 8סזום. שאר
השגיאות הן שגיאות 00 שמדווחות באמצעות האובייקט זזם. רק לשתי שגיאות יש
מספרים ארוכים ושליליים מהסוג המאפיין את השגיאות שבאוסף פוזסזום. שאר
השגיאות הן שגיאות 400 שניתן להגיע אליהן באמצעות האובייקט זו₪. שגיאה אחת
מתוך מחרוזת החיבור (שגיאה מספר 3706) לא הוצגה עדיין באמצעות האוסף פזסזום.
את בצירוף העובדה שהחבר האחרון באוסף פזסזזם מופיע באובייקט זזם, מהוויס
יתרון בכל הקשור ללכידת שגיאות באמצעות האובייקט זזם. מנגנוו ה פועל גס
בשגיאות 88/.
1 -] 0-2 ₪ 981 010501 פב
| | טח 800-105 1005 חנ פטס ספת אס 06 ₪6 |
06| ₪ 08 4 | 0 |-0 08090 0 ₪00-4 5
(0060) 901012 ת0 00 - 2זס)קב ה
- זעה 000 וח6ק 0 [+ (0131ח60),
- 6 ";03015.065.02208.4.0ש1462=11₪טסמתק" ב6ק1.0ממס
- 6 " 25106 22166 1168110203028ת מפמשסטק :6=0סמגוסט 2868"
" ; כו . 3 ב קומס עסז 5 16 פונס"
8מג6111ע3 ש135טסעם ע8018+ ע0+ 8מ616%06 בעסעעמם סא'
- 6 "03025.0653.00828.4.02מ1062=11₪טסמתע" מ6ק1.0ממס
6 " 22106 22106 08028ע1165162ת ממשסעק:6=0סטגוס5 8ס8ק"
" ; כנטוע . מ זז ס עסז 165 עטנ"
22028.6 חם!] = 2305000655 ₪60
1ממש = מ60510ממ600ע2051 .1505600625
עס0עע6 16מהעת58-תסת 424 8 שאהע 0סס ע6051עתססם1 2508500608 611ע8'
שסעעש 6580282016-מסם 3001 6א8%ע₪ 60 מתש 85 1ממס 611ע5'
1ממס = מ60010ממ2051/600. עפוסס5גו30ץ
מסעע6 16מהעע8ע6 1247217900- שאה סס "משאסספגוס0" 85 שתהת 68016 611ע5'
"5מ006ס5ו6" מ6ק0. 5עשמסספגו50ע
ש=משם (3251) מעסעע6 מה 080363 1.808₪6מתס 508 6םמ56551 70052683בב'
ג 8016מ5 0ם 6מ11 1.77046מתש סגוס סמששתסס'
"אאאאא" = ("5.716185)"0055006:12ת50006ו50ם
העט בשש סספגו30
== +
85 1זםסעסז1651 5000 22100 25106 5055סעס11651ת מהפטסעק:6' 2115 8מ21 ס'מה1ו60 - 2147467259-
.מ16טסעע 526011188 שמס 8מ21 ססם 0018 ספב 1006
וטע 1608מ0 44%
₪פעססטה 05 סגוס שעה ,6עעס שמסעח םס 04 6ע8 סמ6 כסמטטעוטעה שמ1פגו 12 ת1108010עע3 שמך 41
פט' עס ,'580807' ,'מתמספססתק' ,ידתפפאד' ,'פדת1פע' 60068עא= ;פמ6ע56ה55 50 118הטמ1 | 2147217900-
121
- . ע16טסמע פס עמ השסמסעעגוט פסת 15 מ1108010עע3 שמם עמ 65668ג60ט מסנסהעפעס שמך
4
תרשים 2.9: החלונות 6006 !- 6018066ווח1 של 5פ מציגים קודי שגיאה של שגיאות
טיפוסיות
פרק 2: מודלי גישה לנתונים 131
הערה:
באפשרותך להוסיף משפט זוסו|כאם חסטקס באזור ההצהרות הכלליות של
מודול, כדי לבטל את האפשרות של שגיאות מסוימות, כגון הפניות לאובייקטים שאינם
קיימים.
השיגרה פזסזופפָחו05ס דקסס1 שלפניך מספקת מספר גישות חלופיות לטיפול בשגיאות
באמצעות האובייקט זזם. השיגרה יוצרת שגיאה אחת וכוללת הערה המפרטת את
שינויי הקוד שיש לבצע כדי ליצור שגיאה נוספת. השיגרה אף מגיבה באופן ייחודי
לשתי שגיאות, וכוללת הליך כללי לטיפול בכל יתר השגיאות:
> במקרה של שגיאה 3251, השיגרה משנה את סוג הנעילה, כך שניתן לעדכן את
ערכת הרשומות. שגיאה זו מתרחשת מכיון שסוג הנעילה שגוי. לתיקון הבעיה, קוד
הטיפול בשגיאה סוגר את ערכת הרשומות הישנה, מאפס את המאפיין 1061/06
ופותח מחדש את אובייקט ערכת הרשומות.
> במקרה של שגיאה 424, השיגרה אינה מנסה לתקן את השגיאה, אלא מתריעה בפני
המשתמש על סיבת הבעיה האפשרית. שגיאה זו מתרחשת כאשר מפעילים שיטה
או מגדירים מאפיין כנגד משתנה שלא הוצהר כאובייקט. לדוגמה, שגיאת הקלדה
עשויה לגרוס לבעיה כצו.
> אס מספר השגיאה שונה מ-3251 או 424, השיגרה מדפיסה את מאפייני המספר
והתיאור של האובייקט זזם.
()5ז0זזם 8חו0 5 דקסס .1 פט5
קז ד5זסזז כ 6070 זסזזם הס
הסוח 00 45 1 חהח6 חחוס
5ב סוסב דץז5ז הזוס
הסוח 60.כ סכ צו6 = 1חחס 56%
8 ";₪08.4.0 050.26%.01ז6ו1 = זסוטסזק" ה6ק1.0החס
8 " 11606 106 67050ו]65!= ותהזפסזק:06=6ט0ס5 זכ"
"; רחוס 165 ו 5"
סא = 30|6 דץ51ז 56%
.0618015 )וש 6607056% השס '
:| ד הסקס
1חחס ,"3!6 דש" ה6.006וסב דץו5ז
2 ;א 2000 406655
הפטסזח+ קסס '
6.0|סה דץן5ז וטסחט ספ
.6חו! 0הו6660כ 01 56680ח1 %6א6ח פחופט צם וסוס 424 6אפו '
365.50 דץוז5ז וטחט סס -'
חסחד 4 = (16.=16!050)0סב דץוז5ז +
.ץהס680-0ז 15 6007056%ז 2668056 זסזזס 3251 3665 6חו! פוחד '
8 = (30!6.=16!05)0 ךז
56
(3!6.=16|05)1 דץ51ז , (6!05)0ו= .316 דץן5ז +חוזק. פטטסס
+ 0חם
+אס)סטסו. סוסב דץ וז
קסס |
6 ץז
:סז
0 6וא=
:קז סז
החד 3251 = זססוחטא.זזם +[
₪ " .הסו8ז6קס +זסקק0ט5 %סח 0065 זססוטסזק פסם וס" אס8 ₪59
= 6 " סח 8 06% זס 006 ססן 06 06% 50 עבצו זסהזסהב 0הזו-"
".77075 06!6%6 1000 חו ס6חהשקקאּת זסזזם .זססוטסזק פסם וס"
6 דא6ס |.6וס3 דץו5ז זחוזק. פטטסס
6 ץז
06006 301 = 6קץ דא6ס ].6וסב דץ5ז
6 ד 5 חק 656
חסחך 424 = זססותטא.זזם ]51561
8 " חב 8חוזוס6ז 0חוז6 50 00 60 6160 6006 סד" אס8 ₪59
8 " ,600 3 6אסעחו זס ץשוסקסזק 8 56% 85 ח506 660[טס"
".סָחו|(506 60666 .66[טס חה 6עבח %סח 010 6006 6 זטם"
6
".0656 06ח3 א זסזום זס? אוססחוע 6018%6וחרח1 066%" אס8 ₪5
חסטקו6567כ.זז= ,זססותטא.זזם +חוזק. פטססס
+ 0חם
+|א5זסו= 650016
50 06ח=
פרק 2: מודלי גישה לנתונים 133
הספריה 00%
הספריה 200% תומכת במשימות סכימה ואבטחה. באפשרותך לנצל ספריה זו כדי
לשנות את הארכיטקטורה של עיצוב מסד הנתוניס של היישוס שלך. כל האובייקטים,
למעט האובייקט 6819|04, כוללים אוספים תואמים. אוספים אלה משמשים להוספה
וארגון אובייקטים חדשיס בקטלוג. אובייקטיס נבחרים, כגון טבלאות, מפתחות
אינדקס ועמודות, כוללים אוספים מסוג 006065ז (מאפיינים). אוספיס אלה
משמשיס לניהול פעולת האובייקטים ביישוס. מנהלים את האוספים 565
(משתמשיס) ו-5קט0ז6 (קבוצות) כדי לשלוט בהרשאות של אובייקטים נוספיס של
אססה, כגון טבלאות, תצוגות ושגרות. תרשים 2.10 מציג מבט כללי על הספריה אספג.
|
| |
| 0
| 0
| [|
| 1
טס
צפא
ח0ו96ו601
וי
תרשים 2.10: ספריית האובייקטים אסס4א
4 ;חח 2000 466655
הספריה 420% היא שלוחה של הספריה 008סכ. הספק סכג 360 תומך ב-אססג באופו
מלא. ספקי מסדי נתוניס אחריס יכוליס ליישס את רכיביו בצורה סלקטיבית, וניתן
גס להשתמש בשתי הספריות יחדיו כדי לבנות יישומים. לדוגמה, באפשרותך להרכיב
אובייקטיס של פקודה בעזרת הספריה 8סססג ואחר לשמור אותס כשגרות בספריה
אססה. לחילופין, תוכל לבדוק ומינות טבלה בטרס תבסס עליה ערכת רשומות. אס
הטבלה אינה קיימת, תוכל להוסיפה ולאכלס אותה בערכים. יכולת הספריה אססג
להגדיר מבני נתוניס חדשיס הופכת אותה לחלופה של וספ 501.
האובייקט 6313/09
אובייקט זה הוא המכולה ברמה הגבוהה ביותר של הספריה אססג. חבריו מגדיריס
את הסכימה ואת מודל האבטחה של מסד נתוניס. המאפיין ח60/660006600 של
האובייקט מגדיר את החיבור שאליו שייך הקטלוג. האובייקט ח6600חחס6 הוא מסד
הנתוניס. האובייקט 688/00 הוא מכולת הטבלאות, התצוגות, השגרות, המשתמשיס
והקבוצות בתוך חיבור או מסד נתונים. המאפיין 86 (שם) של קטלוג הוא מסוג
קריאה-בלבד. מגדיריס אותו בעת ההצהרה על הקטלוג. משתמשיס בשיטה 676806 של
האובייקט 6819|04 כדי להקצות חיבור ומקור נתוניס לקטלוג, כך שניתן יהיה לפתוח
בו-וּמנית מסד נתוניס חדש ולקבל גישה לקטלוג שלו.
דוגמאות הקוד שלפניך מציגות את האובייקט 688/00 בשלושה הקשריס טיפוסיים.
השיגרה 680600 פותחת את מסד הנתונים חושוחזוסא ומספקת ליישום הנוכחי גישה
באמצעות קוד למבנה מסד הנתונים. שים לב שיש צורך באובייקט ח6600חח60 עבור
הקטלוג, כדי ש-400 תדע איזה קטלוג עליה להפוך לזמין. מקציס את האובייקט
ח0ול66חח0ס6 לקטלוג באמצעות המאפיין ח06600ח6600ע6ה. כש-0כג יודעת לאיוה מסד
נתוניס עליה להפנות בעזרת הקטלוג, יש לך גישה באמצעות קוד לתוכן הקטלוג.
שולטיס בגישה באמצעות טכניקות מסד נתונים ואבטחה ברמת-משתמש.
()ח08%00 5
חס0 66 ה ח60 שצס! 5 1 חח6 וחוס
68 שצשוס) 5 6861 וחוס
6ז סק ₪5 61סזכ חחוס
8 ";508.4.0 050.26%.01ז6ו = זסוטסזק" ה6ק1.0החס
8 " 1606 006 67050ו]65!= ות8זססזק:06=6זטס5 זכ"
"; סח 6 חועשחל סא 165 ו 5"
1ח6 = ₪ה06600ח660ע60. 6861 56%
6וחא. (30165)0 ך. 68%1 שחוזק. פטססס
50 06ח=
פרק 2: מודלי גישה לנתונים | 135
()2ח68%0 סט5
חס0 66 ה ח60 סא 5 1 חח6 וחוס
68 שצשוס)] 5 6861 וחוס
6ז סק ₪5 61סזכ הזוס
.6 פוחץ )0 68%8|00 6ח% השס '
חס ז0+ח ה60!!6600 56166060 01 6פַח8ז 8 6חוחק '
סו 6 ח0[600.600זק+ח66 = 1חחס 56%
1ח6 = ₪ה06600ח6600ע60. 6861 56%
ס6וחהּ. (1 )65!סה ך. 68%1 זחוזק. פטטסס
סה א. (5)0/ע16/. 68+1 %+חוזק. פטססס
36 א. (065)0ו660סזק. 681 %חוזק. פטססס
6וחהּ. (25675)0. 68+1 +חוזק. פטססס
6חהא. (5)0ק טסזס. 681 לחוזק. פטססס
50 06ח=
()08%0003 5
0 אכ צוסא 5 6861 וחוס
.64 ששסח 3 60 6809100 66 הסמ '
6 ";4.0. 0 167050.366.01] = ז06ועסק" 6768%6. 68%1
"ס0ח. סוסא %5ח6והט6סכ ץן!]:66=6טס50 זכ"
6וחא. (30165)0 ך. 68%1 לחוזק. פטססס
50 6ח=
השיגרה 680502 מציגה חבר מכל אוסף של האובייקט (6889|0 במסד הנתוניס
הנוכתי. תוכל להפנות לתוכן טבלה באמצעות הפניה לספריה פסססה, אך עליך
להשתמש בהפנייה ל-00% כדי לעבור בלולאה על האוסף פחחטוס6 (עמודות).
האוספים פחוחט|60 ו-65!ט8ד (טבלאות) קיימים רק בספריה אססא.
הערה:
| עליך לכפות דרישת כניסה (חספָס!) בטרם תוכל להציג את חברי האוספים
5 ו-005ז6. כל ניסיון להדפיס אותם ללא כניסה עלול ליצור שגיאת זמן
ריצה. תוכל לכפות דרישת כניסה על ידי קביעת סיסמה עבור המשתמש חוחח0.
השיגרה 3ח68660 יוצרת מסד נתוניס חדש ומציגה את הקטלוג שלו באותו שלב. שים
לב כי אתה מפעיל את השיטה 670806 על האובייקט ף68/3/0. השיטה מקבלת מחרוזת
חיבור כארגומנט. אס הקוב המצוין במחרוזת החיבור כבר קיים, 6806003 תיצור
שגיאת ומן ריצה. כשהקוב> פועל בהצלחה, הוא מדפיס את שם אחת מטבלאות
המערכת, מכיון שלא קיימיס קבצי משתמש ומינים כלשהם מייד לאחר יצירת מסד
נתוניס.
6 ;א 2000 466655
באפשרותך לנצל את האובייקט 690₪|08 כדי למספר חברים של אוסף כלשהו
מהאוספיס שהוא כולל. השיגרה שלפניך ממספרת את חברי האוסף פאוסו/ (תצוגות),
תהליך המקביל להגדרת קבוצת כל שאילתות החזרת-שורות שאינן מבוססות על
פרמטרים בעלי מסדי נתונים 36%. בעת שימוש במסד נתונים ז6/ז56 .501, התצוגות
זמינות במפורש מתוך מכולת מסד הנתוניס של 2000 ₪60655.
()5/ו150/16 1 505
ח0 66 ה ח60 סא 5 1 חח6 וחוס
68 שצשוס) 5 6861 וחוס
צוסו/ 5 1שוסוע וחוס
8 ";₪08.4.0 050.26%.01ז6ו = זסוטסזק" ה6ק1.0החס
8 " 1606 01606 67050ו]65!= ות8זפסזק:06=6טס5 זכ"
"; סח 6 חוששח סא 165 ו 5"
1ח6 = ₪ה66000066000ע60. 6861 56%
65 /. 68%1 ח1 1עעסוע ₪86 זס=
6וח3. 1צוסוע זחוזק. פטטסס
1/וסוע +אס)]
סט 0ח=
האוסף 68 זמין מתוך הקטלוג עבור החיבור. כדי למספר את התצוגות, עליך
להצהיר על תצוגה אחת שהקוד שלך ינצל כדי להפנות אל כל חבר באוסף 68
במהלך מעבר הלולאה על האוסף. הדפסת המאפיין חגא (שס) של כל תצוגה מהווה
רישוס מצאי של אובייקטי שסו/ שבקטלוג.
האובייקט 6וטבּד
אובייקט וה הוא חבר באוסף 180!65, כאשר זה הוא חבר באובייקט 6809|04. כל
אובייקט 96 כולל מאפיין 86 ומאפיין 6סץד. אובייקט שפד יכול להיות טבלה
רגילה בתוך מסד הנתוניס הנוכחי, או טבלה מקושרת ממקורות נתוניס 0086 וכאלה
שאינס 0086. האובייקט יכול להיות אפילו תצוגה. ערך המאפיין 6סְץד כולל גם שני
סוגיס של טבלאות מערכת: טבלאות מערכת 26% וטבלת מערכת 06655.
0
>אזן | טבלה מקושרת מתוך מקור נתונים שאינו 0086
55-10 | טבלה מקושרת דרך מקור נתונים 0086
= | ד = 55 | טבלת מערכת 160
5 ד | טבלה שפותחה באמצעות יישום או עבורו
= | טבלה מתוך שאילתת החזרת שורות לא-פרמטרית
אובייקט 1906 בספריה 00% יכול להכיל עד שלושה אוספים: 5חוחט|60, 65א06ח1
ו-5ץ6א.
פרק 2: מודלי גישה לנתונים 137
האובייקט חוחטוס60
האוסף פחוחט!60 מיועד לטבלאות, מפתחות ואינדקסיס. אובייקט מסוג חוחטוס6 דומה
במידת-מה לאובייקט מסוג ₪6!0 בספריה פסספג. עמודה בטבלה היא קבוצת כל
הנתוניס המתייחסים לתכונה מוגדרת של היישות שמיוצגת באמצעות הטבלה.
לאובייקט חוחט|ס6 יש כמה מאפיינים:
> ש6וחהּא. מאפיין וה הוא שס העמודה.
> 6מץד. המאפיין מציין את סוג הנתוניס שבעמודה. כל הנתוניס מסוג אחד.
> 6שפ1ששת. מאפיין וה מתאר את האפיונים של עמודה. לעמודה שני אפיונים:
היכולת להכיל ערכי ו|וט והיותה בעלת אורך קבוע.
> 65126ח/068. מאפיין זה מציין את האורך המירבי של ערך בעמודה.
ה0ו6615זק ו-656816וז6וחטא. מאפייניס אלה משמשיסם באופן בלעדי עבור שדות
מספריים, כגון שדות מסוג ז06סשחו, מטבע וערכי נקודה צפה טחוסס-8ח80ס)).
המאפיין חסן6619ז מייצג את מספר הספרות הכולל שמשמשות להעברת ערך
העמודה. 6568|6וזוחט) קובע את מספר הספרות העשרוניות שיבטאו את הערך.
כאשר אובייקט מסוג חחטוס6 הוא אינדקס, מאפיינים אחריס כגון 50507068
ו-חוחט!₪6|3%606-0 יהיו זמיניס אף הסם.
הערה:
המאפיין 6568|6וזפחחוא עלול לגרום לבלבול. לדוגמה, ערכים מסוג /6ח6זזט6
מבוטאים באמצעות ארבע ספרות מימין לנקודה העשרונית, אך המאפין
6 הטוא שלהם הוא 0, כיון ש-60655 מאחסן נתוני ששסחפזוט6 בתור 568/60
זט בעת שינוי הגדרת 5636 של עמודה שמשתמשת בסוג הנתונים |08ו66כ
בתצוגת עיצוב (חחָו₪69) של טבלה, המאפיין 6563|6וסוחטא של העמודה מתאים את
עצמו לפי הנסיבות.
האובייקט א6שחז
אובייקט זה מגדיר אינדקסים עבור טבלה. לאובייקט חמישה מאפיינים : 60ז560ט|6,
5טא6סח1, 6וחהּ, שס6אץזהחוזק ו-6טסוח. לאחר הוספת האינדקס, כל המאפייניס
למעט פוחא, הס מסוג קריאה-בלבד. המאפיין חגא הוא שס האינדקס. יש שלושה
מאפיינים נוספים מסוג ח800|68, ותפקידיהם (בהתאמה): לציין אם האינדקס
מקוב- באשכולות (60ז500ט!6) (אינדקס נקרא מקובצ-באשכולות, כאשר הסדר הפיסי
של השורות תואס לסדר הימאונדקסי של השורות) מפתח ראשי (עסאעְזהּחוזק) או
ייחודי (שטטוחש).
8 ;א 2000 406655
המאפיין 10065 יכול לקבל ערך אחד מתוך שלושה ערכים. במקרה שהאינדקס
מכיל ערך ווטא עבור עמודה, הגדרתו בתור אוסו|50158!!טוא06ח301 גורס לכשלון בבניית
06%ח]. אס מציביס ב-%01!5א06ח1 את הקבוע 6זסח519!וא01006ה, אפשר לבנות את
האינדקס גס אס הוא מכיל ערך ווטא, אך המאפיין התעלם מ-פוושא (פ!|טא 6זסח18)
יקבל ערך כן (65+) (בחלון אינדקסים (65א06ח1) שבממשק המשתמש). גם הערך
ץְה6ז0ה51510!ו%0א06ַח301 יוצר את האינדקס כשזה מכיל ערך ווטא, במקרה וה
המאפיין התעלם מ-₪1!5א מקבל ערך לא (סא).
האובייקט ץ66
אובייקט וה מגלס את התנהגותם של מפתחות זרים (5ץ6א ח8ו6זס)) באמצעות
מאפייניו. כמובן, המאפיין 6וח8 הוא שס המפתח. המאפיין 806 ד₪6|3060 מציין את
הטבלה שעליה מצביע מפתח זר. המאפייניס 06606006 ו-6וטַ6₪ז0ק קובעיס מה
יקרה כאשר מפתח ראשי נמחק או מתעדכן. המאפיין 6מץד הוא סוג המפתח, ולו שלוש
אפשרויות : ח0ופזס-/8066 עבור מפתחות זרים, 6טףוחנץ6א30 עבור מפתחות ייחודייס
ו-ץזהוחוזק שאה עבור מפתחות ראשייס.
מספור טבלאות. אחת הדרכיס הקלות ביותר להתחיל לטפל בטבלאות היא למספר
אותן. השיגרה 80/65 11501 שלפניך מציגה כיצד משבצים את הטבלאות במסד הנתוניס
סחוששחזזסו!. ההצהרות הופכות את 6861 למופע של האובייקט 9|08ז68, ואת 1|ט+ למופע
של אובייקט 189!68. לאחר מכן, השיגרה מציבה את מסד הנתונים סחושחצוסא ואת ספק
4 36% במאפיין חסו0660ח600ע60ה של הקטלוג. הלולאה שלפניך מזהה את שס הטבלה
הארוך ביותר בקטלוג. הקטע האחרון מדפיס את שמות הטבלאות בחלון 6ז6013ווווח1.
נוסחת מחרוזת מוסיפה תווי רווח בסוף שמות הטבלאות כך שמספר התווים בכל
השמות יהיה קבוע. הקוד מצרף את סוג הטבלה.
505 11507 30165)(
0 .אכ צוס 5 6861 וחוס
6סהד.אסכה ₪5 1וטל חזוס
חן 5 ה0%ח6 |אה שחו הזוס
. 68%8|00 6 0+ ה0ו660 ה ח60 6ע860 +)ו5066 '
8 ";08.4.0ם 1670506.26%.01]= זס סק" = 6600 חח 660עו6. 681
8 " 106 0106 67050ו]65!= ותהזפסזק:06=6טס5 זכ"
"; סח 6 חוששח סא 165 5"
.חח 0016 865%חס! סחוח '
0 = הז0ח6 |אבּסחו
5 חן 011 ה86ם זס=
(6ח3. 0|1+)ח1.6 = ה0%ח6 |אבּוזחו הסח ד ה0%ח6 |אה שחו < (6הבּא.011+)ח6 | זז
01 6%
פרק 2: מודלי גישה לנתונים 139
. סח 6018%6רח1 0 65חבּח 8016 זחוחק '
2 + הסחס |אהּ )שחו = הזסח6 |אבּוסחו
5 + חן %011 ה₪80 זס-
36 א.0!1+ = 6החה'5
(" " ,(6חחה3ּ.0!1+)ח6 | - ה0%ח6 |אהושחו)0חו567 = זסו|ו- 507
6מץד. סז 8 זס!|ו- 56 .8 6וחב3ּ5071% זחוזק. פטטסס
01 6%
50 0חם
! 6 |<|
מתפגך 0303
הפדט 5 מ₪ס20 584165 0356004
חפדט % סטשגוהסמת סמשמטעוס
מתפגך 3 סגו
מתפגך בבב יו
| 3 6330 ב 115
דצ |
אמפדפצם 50
ע- 2 63 מסגוכ ץז
אמדפצם 3קנבכתס1נס3 שת בק
מפתפגך 16 מה דע
מתפגך 8 מש 6שבעס
חפדט 4שמססאם 2658113 ש46ת0
חפדט 83 > 5 6₪עס
פתפגך 3
חפדט 5 מס" 58165 סטגוהסעק
פתפגך פסטגופסמת
חפדט 66נ1עק שקהמסט2 שטסכמג בסטגוהסעק
חפט שסמגוס0פעסתע
חפדט 3 ע1עסשסטבגוס
חפדָע %ע035602 צ0 58163
מתפגך בעסטעוגם
מתפגך 5ע16עעגום
חספדט 63 שטפסעת שטבכמסשעאם 8056 במשך
"-
תרשים 2.11: פלט השיגרה 8065 507 |
תרשיסם 2.11 מציג את פלט השיגרה 80165 11501. שיס לב שהפלט מופיע בשתי עמודות,
וכל אחת מציגה שס טבלה. ליד השס מופיע המאפיין 6קץד של הטבלה. כוכור,
האובייקט !פד כולל שישה סוגיס. ארבעה מהס מופיעים בתרשים.
שדות מספור. השגרות פחוחט|660קץ 80167 11507 ו-6מץדחוחטוס6 שלפניך הן דוגמאות
משוכללות - יותר, שמטפלות | במאפיני - הטבלה ובהיררכיה | שלה.
כש-5חוחט|660קץ 80161 1507 1 מאתרת אובייקט מסוג 939|6ד שהמאפיין שפד שלו מוגדר
בתור 12815, היא מציגה את שמות העמודות ואת סוגי כל עמודות הטבלה. אלה
מופיעיס תחת שס הטבלה ומספר העמודות שלה. כל שס עמודה מופיע לצד הקבוע
66 דחוחטוס6. תרשיס 2.12 מציג קטע מהתדפיס. זו דוגמה עשירה, כיון שהיא מטפלת
בכמה סוגי אובייקטיס מסוג 1856 ובמאפייניס רבים, ומשוס שהאובייקטיס
והמאפייניס נלקחו מנקודות שונות בהיררכית מודל האובייקט של אססג.
466655 2000 8 0
6 <|
4 0303
בכ יד 6-0
- בי 5-1
ב ויו - מסנסקבעספסת
שעהת ג עה לס שמגוסטסנתק
11 שנס גוס
וי - ב
בי - סב
בי =מנב ]ימה ונס
וי - 60
וי - בי עיי- יי
בי - טְעסתגוסס
- 0 משו טס 56גו6
וי - אפץ
וי - ש=מסמתק
וי 1-=₪]-
בי מסנחסת
17 3 טוום
בי בו
בצריוי - שסהתמפסטות
- סג
- צעסמגוסס
בכיב ו - כ שעסטואם
וי - מסנפמ6סאם
וי שונסןספעגץ
בציריוי - ו
- =סם < שנס
וי - |
ע 0 3 ₪31.07 בי
תרשים 2.12: פלט השגרות פחוחט|600כץ 80167 11507 ו-6סץ דהוחטוס6
()5חוחט|ס)6קץ 30167 1507 1 5
0 אכ צוסא 5 6361 וחוס
6טּד.אסכ 5 1ופז וחוס
חוחט|ס6.%א0סכג 5 6011 הזוס
₪ ";₪08.4.0 1670508.16%.01 = ז06ועסזק" = ח0 660 הה0ס66ע60. 68+1
8 " 106 670508ו]65!= ות8זססזק:06=6זטס5 הזה"
"; רח. 0 ועט חס 65| רת ה5 706"
5 + חן 1!ס% ה86ם זס=
חסחד "ם ופה ד" = 6סץד.1וטש זז
6וחהּא.011+ = 6וחב507
(" " ,(6וח3ּ)].1|פ+)ח6 1 - 0)030ח5671 = זסו|ו507
+ 0ס5.0חרט!6011.60 8 !]507 8 6וחה 50 6חוזק. פטופסס
5הוחט|60. 1!ט% ח1 6011 ה86ם זס=
(" " ,(60!1.18806)ח6 | - 9020ח501 = זסו|ו507
8 601.36 ₪ (" " ,8)05חו7ל5 +חוזק. סטטסס
(6קץד.6)6011קץ דהרהט!ס6 .8 זס!|ו7ש5
1 )אסא
+ ₪0
1 6%
50 0חם
פרק 2: מודלי גישה לנתונים 141
58 35 (7ז%6006ח1 5 6מץ דשחו)סקץ דהותט!ס6 הסטסחט=ת סוופטק
6 דחו 6856 ז56|60
זהח הסה 6856
"30/3" = 6קץ דחותטוס6
06 6856
"ץ30077606" = 6קץ דחותטוס6
01 6856
6מץ דחו טס
6 60856
"0086" = 6קץ דחוחטוס6
"0/8 6856
"30/6" = 6קץ דחוחטוס6
חס 801 6856
"זה חס 801" = 6קץ דחותטוס6
ץזהחוםזה/סחס 801 6856
"ץזהחוםז3/הַחס 01" = 6קץ דחווטוס6
00008 6856
"ח30500!68" = 6קץ דחוחטוס6
05% 6856
"טח11|ה305" = 6קץ דחוחטוס6
6 6856
(6סץ 07חו)6507 = 6 דחוחטוס6
סחם
"30"
חסשסס6חט= 6ח=
ההצהרות כוללות קטלוג, טבלה ועמודה מתוך הספריה אססג. הצהרת הקטלוג יוצרת
מופע של האובייקט שלו, אך השתיים הנותרות משמשות כהפניות חבר בתוך אוסף.
מייד לאחר ההצהרות, השיגרה מקצה מחרוזת חיבור אל המאפיין ח6000חח600עוז6
של האובייקט 6808|00.
שתי לולאות זס] מבצעות חיפוש בטבלאות ובעמודות שלהן. הלולאה התיצונית
מחפשת טבלאות שהמאפיין פד שלהן הוגדר בתור 5 81ד. ברגע שנמצא כזה, היא
מדפיסה את השס ומספר העמודה של אותה טבלה. לולאת וס" הפנימית ממספרת את
עמודות הטבלה ומטפלת בעיצוב הפלט. הלולאה קוראת לפונקציה 6סץדחוחטוס6
שמחזירה מחרוזת תוויס. המחרוזת מייצגת את הקבוע שמגדיר את המאפיין 6סץד.
הפונקציה מצטיינת בחסינותה, ולכן תוכל לאמצ אותה לביצוע מטלות המרה. אס
הפונקציה נתקלת בסוג בלתי מזוהה, היא ממירה את ערך הסוג למחרוזת. הדבר
מסייע לחזור לפונקציה ולהוסיף לה מפרט פענוח חדש.
יצירת טבלאות. לספריה 400% חשיבות מיוחדת, כיון שהיא מאפשרת ליצור טבלאות
באמצעות קוד, יחד עס האינדקסים והמפתחות שלהן.
2 ;א 2000 466655
אס נוח לך להוסיף טבלאות בתצוגת עיצוב (חטופ6כ), עליך להשקיע מעט יותר כדי
ללמוד לעשות ואת באמצעות קוד. מגדיריס את הטבלה ולאחר מכן מוסיפיס אותה
לאוסף 390/65 של הקטלוג. הגדרת טבלה דורשת לוגיקה מסוג דומה. מצהיריס תחילה
על משתנה אובייקט טבלה ולאחר מכן מצרפים עמודות למשתנה האובייקט. בעת
הוספת העמודות, הקוד יכול להקצות סוגי נתוניס ומאפייני עמודה נוספיס. בסיוס
הגדרת הטבלה, ניתן למלא אותה בנתוניס. באחד הסעיפיס הקודמיס בפרק, הצגנו
שתי גישות לטיפול בנושא (שימוש בקוד 501 ובשיטה ש00%6 של ערכת הרשומות).
בפרק 3 נבחן את הנושא בהרחבה.
הוספת אינדקס. השיגרה א06ח2001 שלהלן מדגימה כיצד מוסיפים אינדקס לטבלה
באמצעות קוד. כמו בתהליך יצירת טבלה, משתמשיס בשיטה 0חססקה פעמיים.
ראשית, הוסף עמודת נתוניס אחת או יותר לאינדקס שיצרת. לאחר מכן הגדר את
המאפיין פוחפא של האובייקט א06ח1. באפשרותך גם להגדיר מאפיינים נוספים. שורות
ההערה בשיגרה שלפניך מציגות הוראות להגדרת מאפיינים אופציונלייסם אחדיס
ומתארות את ההשפעה של מתן ערכיס למאפיינים. לאחר שתסיים להגדיר את מפרט
האינדקס, הפעל את השיטה 0ח6סקה פעם נוספת, אך הפעםס השתמש בה כדי להוסיף
את האינדקס החדש לאוסף 65א06ח1 של הטבלה.
()א001006 סט5
0 .אכ צוס 5 6861 וחוס
6סהּד. אסכה סא ₪5 011 חזוס
א6סח1. 0 צוסא 5 1אסו חחוס
חס ות .סח = הס 66 חח 6600 /ו6. 6861
("30|6 דץ30|65)"1 ד. 681 = 0|1 56%
"אחז ץ1]" = 6וחהּא. 1אסו
("1 חוחט|ס") סח6סקה.5חותט|ס6. 1אסו
ץשזסססזק 5!|טא06ח1 8חו560 זסז אהזחץ5 0ח3 פסוט₪ '
60 16105 ;5!|טא 5חהו9ח60 6!0 ]| א6 חן 6076866 0%ח 065 '
ששסו|1!50158טא06%ח801 = 5!ו|טאאססח1. 1אסו -'
.אה 6768%65 -- 65 60 ץ+זסקסזכ א6סחו פ!|טא 6זסח10 6665 '
6ז0ח510!טא06ח301 = 5!|טאאס0ח1.1אסו -'
.06% 67686065 -- ס 0+ ץ+וסקסזכן א6סחו 5!|טא 6זסח10 6605 '
ץח076ח510!|טא06ח301 = 5!|טא06ח1.1אטו -'
ץזזסקסזכ סא וחק 6+ 56% 60 אחהצו טסץ זך '
סז = שס6אץזהוזק. 1אטו -'
6 זס) שז6קסזק 6טסוח( 6ח% 56% 8150 %פטוח טסץ '
זסזו חה וסעט3 300 67666 86 60 עשזסקסזק ץ6אץזהוזק '
סד = ס6טףוחש.1אטו -'
1 0חסקקה.65א06ח1. 1!ט+
סט5 0חם
פרק 2: מודלי גישה לנתונים 143
השיגרה ז680008זסזזםאק שלפניך מבצעת לכידת שגיאות בעת יצירת מפתח ראשי חדש
בטבלה. הרעיון הכללי של שיטת לכידת השגיאות מיושס גס באינדקסיס נוספים
ובמפתחות זרים. מנגנון לכידת השגיאות מטפל מפורשות בשני סוגי שגיאה ומסוגל
ללכוד גס שגיאות מסוגיס אחריסם.
()ז08%606זסזזז= אק פט5
80 67 68%00זסזז אק 6070 זסזזם הס
68| א סכ צוסא 5 63%ש60% הזוס
6 ך. אסכה צוסא 5 6וסב דץווס+ חזוס
אססח1]. אכה עסו 5 אססחזץוזאסו חזוס
חוחט|ס6. אסכ צוסא ₪5 |ס6ץואוס6 חזוס
10 5 זססוחטצזו הזוס
8 ";₪08.4.0 11670507.26%.01] = ז6 סק" = 0₪ו660ח0ח600ע68%.60ץ686
8 " 11606 0106 67050ו]65!= ותהזפסזק:5006=6 הזכ"
"; סח 6 חוששח סא 165 5"
("30|6 דץ]")30!65 ך.68%ץ68%6%1 = 6!טב דץוו|פץ 56%
:סז אק
א6סחץץואסו תסו
"ץסא הר וזקץ]" = 6וחהּ\.
סד = ץ6א/זהוחוזק.
סד = 6טסוחש.
צוס!|1!50158טא301706 = 5!וטאאססחז.
האוצ 0חם=
"1חוחט!ס" 0ח6סס.5חוח ט!ס6. א6סת1ץואו
א6חזץ]א0ו סחססקה. 65א6סח. 6וסב דץוזוט+
9חוח%ס\! = 6801/68% 56%
:א סז אק
סטפ +ואם
:קז 6866677 סז אק
חח ד 2147217856- = זססותטא.זזם +
".56 חו ץש ח6זט6 3!6 ד" א0ס 150
חסחד 2147467259- = זססוחט).זזם 5|5611
סב דץו|טף ח1 אשסח1ץ1]אסו חס8ם זס=
הסח ד ס6טד = ע6אץזהוחחזק.אססהנץואטו זז
(ז6סחרחטן) 65.26|666א6סח1. ס6וסב דעוזוטץ
ץז 68067 סז אק 6506
0חם
1 + זססוחט)ו = זססוחטאו
אס6סחזץו]אסו זאסא
6
חססקו650כ.זזם 8 " :"8 זסטותטא.זזם 8 "א זסזום" אס ₪15
+ 0חם
סז אק 656
סט5 0חם
4 ;א 2000 466655
השיגרה פותחת בהצהרה על האובייקטיס החדשיס 68193|08, 189!6 ו-א06ח1 (מפתח
ראשי הוא אינדקס שהמאפיינים 6טסוחש ו-ש6אץזחוזק שלו קיבלו את הערך 6טזז).
חלק הארי של 6806000זסזוםאק מגדיר את המאפיינים הדרושים, מצרף עמודה
לאינדקס ולאחר מכן מצרף את האינדקס לטבלה. קיימים לפחות שני מצביס בהס
הוראות פשוטות אלו ייכשלו בזמן ריצה. האחד, הטבלה עלולה להיות פתוחה. ססג
מקצה למצב זה את מספר השגיאה 2147217856-. כשמנגנון לכידת השגיאות מזהה
מספר זה, הוא מציג הודעה למשתמש, בה נאמר כי הטבלה נמצאת כרגע בשימוש. מצב
נוסף, הניסיון לצרף מפתח ראשי חדש עלול להיכשל, אם מוגדר כבר אחד כזה עבור
הטבלה. השיגרה מזהה את המפתח הראשי הישן ומנסה ליצור מפתח ראשי חדש. כיון
שלא קיים יותר מפתח ראשי כלשהו, השיגרה אינה יכולה להיכשל שנית מאותה סיבה.
מתן ערכים לשדה +%חסוחסזס6הוספטה3ּ. היישוס 2000 466655 הוא הגירסה הראשונה של
5 שמאפשרת למפתחים להגדיר את ערכי ההתחלה והפסיעה של עמודות
]ה וח6זסהוססטה (מספור אוטומטי בהפרשיס קבועיסם). באפשרותך להגדיר ערכיס אלה
באמצעות קוד, על ידי יצירת טבלה באמצעות משפטי 501 של 4 260. הפקודה 5ד6₪54
= |8ד משמשת ליצירת המבנה הכללי של הטבלה, וסוג הנתוניס צדדאפפ1 של 366
משמש לטיפול בשדה זחסוחסזסחוסזט3. סוג הנתוניס +ד1דאשפ1 כולל ערך התחלתי
וערך פסיעה שמאפשריס לתת ערך התחלתי לשדה זחסוח6זסהוסטטגּ, ואת ערך ההגדלה
שלו בכל רשומה חדשה. השיגרה 05%60ח56151812 שלפניך מנצלת את הטכנולוגיה
החדשה.
()005%60/%ה56%5% 5
660 חח 60 35 1חח6 וחוס
סה 60 5 601 וחוס
6טהּד צוסא 5 1וטז חחוס
הסוח ה 0ס0[660.6 ץק %ח6 6 = 1חחס 56%
וו 8.00 20 עוסא = 001 56%
61 חסו/\
1חס = ח6600 הח0ס66ע60.
.5חרחט|60 סע ח)וצ 802!6+ 8 676816 לפזות '
. חהחט!60 10600 חה חהותט!|ס6 6חס 66הו '
.600 6ט|/ 5600 65 800 11750 6ט]ע 509171 65 66% '
3% = 06ץ ו 60.
| 6 " 6000010) 0058605 5 1 ד ₪ ד 6" = 6% דחו 60.
"(60087 6וח%868ח00, (2,4)צד דאםפז"
6
ץ ו +66 הוססטה 6 הזוע 90|6+ 6 ה 68ז6 זסא1ה '
.03% 300 0|טסח5 טוסץ חוחטוסס '
= 8 " (6ח8 086% %8605)600ה60 0 דא1 ד558₪א1" = 6% דחו 60.
"('ז6850/ש6חו1] הוצסא') 5סט|בש"
3% = 06ץ ו 60.
6
פרק 2: מודלי גישה לנתונים | 145
8 " (%860 86ה%8605)600חה60 0 דא1 דפ" = 6% דחו ס6.
"()ז00!ו6 6א!1ז') 65ט|3"
0% = 6קץ וו 0ס6.
6
8 " (0%860086ה%8605)60חה60 0 דא1 15" = 6% דחו ס6.
"('ץְסחזהח6 |ושז') 65ט|3ש"
0% = 6קץ וו 60.
6
הזו/\ 6ח=
5 0ח=
הקוד פותח ביצירת טבלה. למרות שהשיגרה אינה כוללת קוד ללכידת שגיאות, עליך
להבטיח כי הטבלה שאתה יוצר אינה קיימת כבר, או כוללת מנגנון ללכידת שגיאות
שמוחק את הטבלה במידה שזו אכן קיימת. מגדירים את סוג הנתונים +דדאפפ1
במסגרת המשפט = |8הד = דהםח6. נותניס ערך התחלתי לארגומנט הראשון של השדה
הח ות6זסהוסזט וערך פסיעה לארגומנט השני. הקוד מציין כי הקשריס (%868ח00)
יתחילו בערך 2 ויגדלו ב-4 עבור כל ערך חדש. תרשים 2.13 מציג את פלט השיגרה
55 . שיס לב שהשדה 60708600 מקבל ערך התחלתי 2 וגדל בפסיעות של
4. אלו הן ההגדרות של סוג הנתוניס צ+דז1דאשפ1 המצוין בשיגרה.
| | 0 08
זה ששחו חוים>] .2
חספוו סאוו 6
צְפחזבּת= |ופ4 10
זט טס זט
3 01 [++| זו , | . |4ו יי
תרשים 2.13: פלט השיגרה 005060/+1ה9ז5615
האובייקט שסו
אובייקט וה הוא שאילתת החזרת שורות שאינה מחייבת פרמטריס כלשהם.
כשהיישוס שומר את סוגי השאילתות האחרים, הוא מאחסן אותם כחברים באוסף
5 באפשרותך לטפל בחברי האוסף פוסוצ באמצעות האובייקט חח 60
והאוספיס 65ו/ ו-189!65. האובייקט ופוצ כולל שני מאפייניס קריטייס לנושא בו
אנו עוסקים: המאפיין 6וח8 הוא שס התצוגה, והמאפיין חח 60 מאפשר להגיע
למשפט 501 שעליו מבוססת התצוגה.
6 הא 2000 66655
בסעיף זה ניצור תצוגה באמצעות השיגרה 866/16 וגס נערוך את משפט 501 שעליו
מבוססת תצוגה קיימת באמצעות השיגרה ש6ו/46ח608. השגרות ש6ו/₪866 ו-
עשסו/\סְחַָחַהח0 נעזרות שתיהן בשיגרה אסו/\שסו/. הקוד מדפיס בחלון 6018%6הוח1
שלושה שדות מתוך כל תצוגה.
יצירת תצוגה. השיגרה 1866/16 שלפניך מוסיפה תצוגה חדשה על ידי יצירת
אובייקט 0ַח8 60 שמייצג את התצוגה, ומצרפת את האובייקט 60800 לאוסף
5 . 1866/60 וקוקה לחיבור אל מסד נתוניס. האובייקט ח6600חח60 1חחס6 פותח
קישור אל מסד הנתוניס סחואוחאוסא. לאחר מכן, קוד היישוס מציב את ערך המאפיין
הסו66 6060 של האובייקט 0ה8ח60 שבדוגמה, כ-1חח6. כעת מגיע השלב
הקריטי: הקוד מגדיר את המאפיין +א6 60801 של 01ח6. המאפיין :6% דח8 וח ו 60
מכיל את משפט 501 שמגדיר את התצוגה. משפט 501 של א6ו/866ו בונה את
התצוגה כדי להציג שס ושס משפחה ואחר כך מספר שלוחת הטלפון. הקוד מגדיר את
ערך המאפיין ח6600חח600עו60 של 6861 (שהוא אובייקט מסוג 68₪9|00), כמסד
הנתוניס סחושחזזוסא. פקודת 6ח6סקה נותנת ל-6701 את השס 666ץס!|קחםו!|ה ומוסיפה
אותו לקטלוג 6חושחזוסא. לבסוף, א6ו/1366 קוראת ל-אוסו/האוסו/ כדי להדפיס את
תוכן התצוגה בחלון 6ז6613ווח1.
()ש6ו/13%6! סט5
חס חח 8.00 00 עוסא 5 1 חח6 וחוס
חר 8.00 0כ א עס 5 601 וחוס
0 אכ צוס 5 6861 וחוס
.הסוח 60 6 הססס'
8 ";₪08.4.0 67050.26%.01ו = זסוטסזק" ה6ק1.0החס
8 " 11606 0106 67050ו]65!= ות8זפסזק:006=6ס5 זכ"
"; סח 6 חועח סא 65!ק ו 5"
צסוע 506 0חו0ה656ק6ז הוחו 60 6+ 076856 '
+ 06]606 0 067 וח6וח6) '
1חח6 = 00 0660 6/6000 601 56%
8 " ,35%%806.] ,6וחה]ל5זו-] ₪07 551" = 6% 8 1.60 וח
"665ץס!קרח= ₪01 הסופח66אם"
.0 6 הסכ0 '
1חס = 66000 הח660ע60. 68%1 56%
סע שוח 6+ 076866 '
1 ,"665 ץס!קוחם||" סחה6סקה. פשוסו/. 681
.צוסוע אוסח6 '
עסו צוסו/
סט 0ח=
הדפסת תצוגה. השיגרה וסו/4שסו שלהלן מדפיסה את התצוגה 665ץס!|קחפו|ה.
השיגרה פותחת ביצירת חיבור אל מסד הנתוניס 6חוצווצוסא ולאחר מכן פותחת את
האובייקט 66070566 5%1] המבוסס על התצוגה 665ץסומוחם!||. כשערכת הרשומות
פתוחה ומצביעה על מקור הנתוניס המתאים, השיגרה עוברת בלולאה על הרשומות
פרק 2: מודלי גישה לנתונים 147
כדי למצוא את השם הארוך ביותר. ערכת הרשומות קטנה יחסית, ולכן אין אנו
משלמיסם מחיר גבוה על ביצוע הלולאה הנוסף. נוח להתבסס על השס הארוך ביותר,
מכיון שכך מקבליס נקודת התחלה להדפסת השלוחה לאחר השסם. שלב זה מאפשר
ליישר את מספרי השלוחות לשמאל ללא תלות באורכי השמות. בטרס מתחיליס לעבור
על השמות בלולאה נוספת, השיגרה צוסו/4צוסו/ חוזרת לתחילת ערכת הרשומות. לאחר
מכן, היא עוברת על השמות פעסם נוספת, והפעם היא בונה מחרוזת בעזרת המידע
שנאסף בלולאה הראשונה.
()וס!//ש6!/ 5
חס חח 8.00 00 עוסא 5 1 החש וחוס
.ה אסא 5 561 וחוס
5 0ח6] ,1056067 5 הז0ח6 |אהוסחו וחוס
.660 60 606 ח6מס '
8 ";₪08.4.0 67050.26%.01ו = זסוטסזק" ה6ק1.0החס
8 "106) 1670508 65!= הות8זססזק:06=6זט50 זה"
"; 6.0 חוצח+זס 65 וח 5 77166"
.סח 865%חס! 66 סחות '
1חחס ,"665ץס!|קות=!|ה" ח6ק5%1.0ז
501.50 וסחט ספ
(("35306 6!05)"1ות. 5%1)ח6 1 + (("6ת הזו" )6!05ו=. 1561)ח1.6 = השטחס |
60% 1 = ה0%ח6 |אבּ!יטחו הסח ד הזח6 |אבּוא6חו < הזפַח6 | זז
+אס טסו 561
קסס |
.0 חזוחץ 0חה ,6חחּח 35%!| ,חחח 5%זו1 זחוזק '
זו עסו 511
501.50 וטח ספ
= - (2 + ה0%ח6 ]אה סחו) = זס!|ו- 50
+ (("536זו")6!05!ת. 5%1ז)ח6 1)
((("16|05)"1.35306ת. 5%1ז)ח6 |
8" 8 ("6 53 ")6|05ות. 561 זחוזק. פטטסס
(6!05)2ו=. 561 8 (" " ,זס!!ו57) הו 50 .8 ("6רח8 350 6|05)"1ו=. 551
]טסו 561
קסס |
סט5 0חם
שינוי תצוגה. השיגרה שוסו/חַסְפַח8ח6 שלהלן משנה את משפט 501 שעליו מבוססת
התצוגה. באפשרותך לנצל גישה פשוטה זו כדי להוסיף שדות חדשים, להחליף שדות
קיימים או אפילו לשנות את עיצוב התצוגה בשלמותו, על ידי הוספת רכיבי מיון
וסינון. השיגרה משנה את התצוגה כך שתראה את השדה 6חסחקפוחס במקוס את
השדה חסופחסזאם.
8 ;א 2000 406655
()אוסו/\/6ַהח8ח60 סט5
הסוח ה 0.60 צוסא 5 1 החש חחוס
0 אכ צוסא 5 6861 וחוס
חר 5.00 0כ ג צוס 45 601 וחוס
.660 ה ח60 606 ח6מס '
8 ";₪08.4.0 16070508.360.01 = זס0וטסזק" ה1.006החס
8 " 106 1670508 65!= ות8זססזק:06=6ט50 מזהכ"
"; 6.0 חוצח+ז סא 165 וח 5 77166"
.0 6 הסכ0 '
61 = 66000 60/6000 68%1 56%
.שסוע 06 8%6סקט '
8 " ,35%%806.] ,6וחה]ל5זו-] ₪07 551" = 6% 8 1.60 וח
"65 ץסוקוח= ₪01 6הסהק6וחסם"
1 = 0חהר 60 ( "665 ץס|סרח=!|ה" )סו /. 6861
.צושוע צוסחפ '
סוה עסו /
סט 0ח=
כדי לערוך את משפט 501 שעליו מבוססת התצוגה, יש לפתוח את האובייקט הקשור
0 60 ולערוך את המאפיין 6% דחו 60 שלו. לשס כך, עליך להפנות את
המאפיין ח60/600006600 של האובייקט (68₪|0 (ראה 6861 בקוד שלעיל) למסד
הנתוניס שמכיל את התצוגה שברצונך לשנות - במקרה זה, מסד הנתונים סחושוחזזסוא.
הקצה את משפט 501 של התצוגה המבוקשת אל מאפיין ז6% דח וח0ס6 של האובייקט
הו 60 החדש. אחר כך הצב את האובייקט חח 60 החדש בתצוגה שברצונך
לשנות. ההצבה תשמור אוטומטית את משפט 501 החדש במקוס הקודם לו.
מחיקת תצוגה. השיגרה 06/66/16 שלפניך מוחקת תצוגה אחת. היא פשוטה ביותר,
אך כדאי שתהיה וזמינה, אס ברצונך להפעיל את או6ו/1866! יותר מפעס אחת. הסיבה
לכך היא ש-400 אינה מאפשרת לצרף תצוגה אחת על גבי תצוגה אחרת בעלת שס
זהה, ולכן עליך למחוק תחילה את התצוגה האחרונה שנוצרה כדי להפעיל מחדש את
שסו/6)הו₪]. כדי למחוק תצוגה, הגדר את ח6600066000ע60 של אובייקט 6809|00 כך
שיצביע על מסד נתוניס הכולל את התצוגה שברצונך למחוק. לאחר מכן הפעל את
השיטה ₪6!666 של האוסף פשפו/ תוך הפניה לחברים הספציפיים שברצונך למחוק
מתוך הסכימה.
()אוסו/\/0!6%6 סט5
0 אכ צוס 5 6861 וחוס
.0 6 הסקס '
8 ";08.4.0ם 1670506.26%.01]= זס סק" = 6600 חח 6600עו6. 681
8 " 106 006 67050ו]65!= ותהזפסזק:06=6ט50 זכ"
"; סח 6 חוששחל סא 165 ו 5"
.סכ 6 61606 ד
("665ץס!קוחם|]4") 5.6!6%6/ש16/. 68+1
סט 0ח=
פרק 2: מודלי גישה לנתונים 149
האובייקט 016 660סיוק
שיגרה היא שאילתת החזרת שורות מבוססת-פרמטריס שמחזירה שורות, או שאילתת
פעולה שמוסיפה, מוחקת או מעדכנת רשומות. בסעיף זה נעסוק בשאילתות
מבוססות-פרמטריס; עייו בפרק 4 לקבלת מידע מפורט יותר על שאילתות, כולל
שגרות שמחייבות שימוש בשאילתות פעולה.
קייס דמיון בין שגרות ותצוגות: שתיהן יכולות להשתמש באובייקטי 6ַחףוחוח60.
תצוגות מייצגות שאילתות החזרת שורות שאינן מבוססות-פרמטרים, ואילו שגרות
מייצגות את שאר סוגי השאילתות. אס תמספר את האובייקטים מסוג 6זט660סזק
בקטלוג, המספור יכלול את קבוצת כל התצוגות. לעומת זאת, שגרות אינן מופיעות
במספור אובייקטים מסוג אשוצ. תחביר המספור של שני סוגי השאילתות זהה.
אובייקטיס מסוג 6ז0660ז₪ כוללים שני מאפיינים קריטיים : 6וחפא (שס) ו-0ח8חוחס6
(פקודה). מאפיין 6וחגא הוא שס השיגרה. מאפיין 6חה 60 מאפשר גישה למאפייני
אובייקט 60008800 שעליו מבוססת השיגרה. המאפיין 6%% 801 חס שימושי
במיוחד, מכיון שהוא מגדיר או מחזיר את משפט 50 עבור האובייקט 6ח8ח חח 60.
תוכל לנצל מאפיין זה כדי לשנות את משפט .501 באובייקט חאה 60 שעליו מבוססת
השיגרה, או כדי להציג את משפט 501 של האובייקט. בחינת משפט ]50 של
האובייקט יכולה ליידע אותך על הפרמטריס שעליך להגדיר כדי להפעיל את השיגרה.
מספור תצוגות ושגרות. השיגרה 65סזקץואאחו1 שלהלן מציגה בפועל את האוספיס
95 (תצוגות) ו-765ט060סזק (שגרות). לולאת זס] הראשונה ממספרת את חברי
האוסף 68 בלבד. הלולאה השנייה ממספרת את האוסף 65זט60ססזס ומציגה את
השגרות והתצוגות יחדיו. הלולאה השנייה מציגה גסם את משפט 501 של כל שאילתה
שהיא ממספרת.
()065זק ץ1.15% 505
חס0 66 ה ח60 שצס]! 35 1 חח6 וחוס
680 שצשוס)] 5 6861 וחוס
6ז סק ₪5 61סזכ חזוס
צוסו/ 5 1שוסוע וחוס
.0 חְ0? 600060000 08082856 56% '
8 ";₪08.4.0 67050.26%.01ו = זסוטסזק" ה6ק1.0החס
8 "0106 65]!670508!= ות8זפסזק:06=6זט50 זה"
"; 0 0רח. 0 חוצשח+זסא 65!ק 58 1166"
1חס = 66008 הח660ע60. 68%1 56%
% 6095 15 0₪06ח -- 5עסוע 866זסרתטחם '
.5 חח ס6ז-שוסז 667260 הזה קחסה '
65 /. 68%1 ח1 1עעסוע ה₪86 זס=
שוחה . 1צוסוע ,8 " :6חזהּח עסו/" זחוזק. פטטסס
1/וסוע %אס)]
0 ;א 2000 406655
0ב פאוסוע 60075 515 -- 5עסוע 6זהזסרתטחם ד
5 חן 61סזכן ה₪86 זס=
6וחה. 61סזכ .8 " :סהחפח 6זט60ססזק" זחוזק. פטטסס
חח ד "665וסעח1" <> 6ח8א.61סזק +1
ו 30.0 חר 0ס61.6סזכ .8 " :501" לחוזק. פטטסס
+ 0חם
1זס )אסא
סט5 0חם
תצוגות ושגרות מאפשרות להשתמש באובייקטי חח חח60. כל שעליך לעשות הוא
לצרף את האובייקט 6ַחאוחוחס6 לאוסף המתאים. הקוד שלפניך שומר שאילתת פרמטר
כשיגרה מאוחסנת. השאילתה משתמשת בטבלה 8!ט3ּדץ1 (שמופיעה בחלק מדוגמאות
השגרות שהוצגו בפרק), וניתן להורידה מהתקליטור הנלווה לספר, יחד עס דוגמאות
לטיפול בה. התרשימים 2.7 ו-2.8 מציגיס את התצוגות עיצוב (ח0ו65כ) וגיליון נתוניס
(8+85660כ) של הטבלה 16טג דץעו.
()/61ט(36%670 53637 50
הז 58/6 6070 זסזזם חס
סח וח 60 5 601 וחוס
58 5 571 466070560 5 51ז וחוס
.םסכ 45 קסס 101 חזוס
זז 5 1שחו ,זסססרהזהק. כ סכ 5 1 חזק חחוס
0 אכ צוסא 5 6861 וחוס
חס 66 ה חה0ס0. 308 5 1חחס6 וחוס
סו .6601660 = 1חחס 56%
.חר 60 6ח0601 0ח3 68%6ז6'
0 5.60 סכ שוסא = 601 566
1 חס תשו/
1חחס = חה6600 הה0ס66ע6.
8 ";0ח0 ] [656עוס.]] פזסז6הההז3ק" = 6% דחו 60.
= 8 " 3חוחט!60 ,2חותט!60 ,1חותטוס6 ד6ם 551"
₪ " 6|טהדץוא אסא-"
"[%פ6/וס ]]= < 1 חותט!60 = אםרן/"
30 = 6כץ דחו 60.
חזוש 0חם
.3800 6 הסקס'
61 = 078 60/600707660. 6811 56%
ץז הק חס 08560 6 0660זק צוסח 606 076866 '
1 ,"0 51.06%" סה6ככה.65ו660סק. 681
=
סטפ זואם
פרק 2: מודלי גישה לנתונים 151
:5
החד 2147217816- = זססוחטא.זזם +1
5 /+680| ץוסטף ...214- = זססותטח.זזס זי
("ש65%0/שטס. 501" )76 06600זק 06!606
56
56
חססקן656.זז= ,זסטותטא.זזם +הוזק. פטוססס
+ 0חם
50 6ח=
(0הו7זז5 35 6 8א06זק)0660076זק 06|6%6 סט5
ח0 66 ה ח60 סא 5 1 חח6 וחוס
8 שוס) 5 6861 וחוסם
.| 6 הסקס'
הסוח 060.60 ק 606 = 1חחס 56%
1חחס = 0 6600660/ו60. 0861 56%
.זכ 0ח150א6 666|סכ'
(6ח068זכ) 65.26!6%6זו660סזס. 68%1
50 06ח=
השיגרה בונה שאילתת פרמטר ושומרת אותה כשיגרה מאוחסנת. השאילתה מבקשת
שהערך הנמוך ביותר יופיע בעמודה הראשונה. שיס לב כי באפשרותך להגדיר את
המאפייניס 6% 608007 ו-06ץ 807 60 של השאילתה. משפט 501 כולל הצהרה
על הפרמטר. לאחר יצירת האובייקט חחח 60 של השיגרה המאוחסנת, הפעל את
השיטה 6ח6ס0 של האוסף 706600765 כדי לממש את האובייקט כשיגרה מאוחסנת.
אס תפעיל את /ז58/6787806007006 יותר מפעס אחת, הניסיוו השני לשמור את
השיגרה המאוחסנת שו69%%80שו0 501 יגרוס לשגיאת זמן ריצה. 7ז58/088006167006
לוכדת שגיאה זו ומוחקת את העותק הישן אס הוא קייס כבר. השיגרה שמוחקת את
השיגרה המאוחסנת קולטת ארגומנט עבור שס השיגרה המיועדת למחיקה. השיגרה
0 6])(00ס6וההזהק שהוצגה קודס לכן, מבצעת משימה והה לזו של השיגרה
המאוחסנת 690%0שו5010. 00 מפעילה שגרות מאוחסנות כאובייקטים מהודרים,
ולכן הן פועלות מהר יותר מאשר אובייקט 0ח8 חח 60 שיש ליצור כל פעס מחדש לשס
ביצוע משפט 501.
יצירה והפעלה של שגרות מאוחסנות. זוג השגרות הבא מכין ומפעיל שיגרה
מאוחסנת. הראשונה יוצרת שיגרה מאוחסנת שמחפשת את מספר שלוחת הטלפון של
עובדיס במסד הנתוניס סחושוחצזסא. השיגרה השנייה מפעילה את השיגרה המאוחסנת.
2 ;א 2000 406655
()זס סו טאק טאסס |ססזכ פט5
סו חח 8.00 0 צוסא 5 1 חח6 וחוס
חר 8.00 ג צו6א 5 601 וחוס
רבק פס סכה 5 1חזק חחוס
0 אכ צוסא 5 6861 וחוס
.660 60 606 השמ '
8 ";₪08.4.0 050.26%.01ז6ו = זסוטסזק" ה6ק1.0החס
8 "0106 65]!670508!= ות8זססזק:5006=6 זה"
"; 0 0 0 חוצשח+זסא 65! וח 58 1166"
ו 60 3606260 הק 6+ 076866 '
1חח6 = 00 0660 6/6000 601 56%
8 " ה0סו5ח66א₪ ,35306 ] ,6רחה זו ₪607 551" = 6% 8 1.60 וח
"[6ח3א1] = 3500806 | = םר 665עסוקוחם סאה"
(20 3078310006 ,30/07 , "[6וחבא ")601.60 = 1וחזק 56%
1חזס 0חהס6קקה.5זסז6 רחב זהק. 601
.0 6 חה6כ0 '
1חס = ח6/6007006600. 6811 56%
זט ההק חס 08560 6 0660זק צוסח 606 076866 '
1 , "חסו5ח%6א 66 ץס|וח= 50" ה6סקה.65 זט 660סזק. 68%1
סט 0ח=
()6סזקק!אסס וח פט5
חס 66 ה ח60 סא 5 1 חח6 וחוס
68 שצשוס)] 5 6861 וחוס
שו 5 561 וחוס
חח 60 צצ6] 5 601 וחוס
ההק 35 1 וחזק וחוס
0חו5 5 6חהּ סקעט הזוס
.0 6 זס? ה0 660 הח 60 8 ה355!8 30 68%6ז0 '
8 ";₪08.4.0 1670508.36%.01 = זס0ועסזק" ה1.006החס
8 "0106 65]670508!= ות8זססזק:06=6ט50 זכ"
"; 0 0 0 חוצשח+זסא 65!ק וח 58 1106"
1חס = 66000 חח660ע60. 68%1 56%
00160 860 הכ 3 80 חר 60 6 56% '
רת 60. ("חהסו5 66 66 ץס|קוח 50 )65 660סזק. 68%1 = 601 56%
(20 3078781000 ,30/07 ,"[6וחבּא 1 ")601.66 = 1וחזק 56%
1חזס 0חהס6קכה.5זסז6 רחב זהק. 601
פרק 2: מודלי גישה לנתונים 153
ה0ו355 30 567 6ח+ וחסי] 6ט|ע זז ההק 6+ 680067 '
= ,"?00ו0605א6 ז0? 6החהּח 35% |")אסט+טסח1 = 6וחהּ סק טס
("2000 266655/ 1670508 סחווחוחהזטסזק"
סק = 6טובּ/. 1 ווק
חסחד "" <> 6ט!3/. 1 וז זי
.80 5% ששסח5 0ח3 ץזסטף זסז6ות3ּוהק 6+ 66006אם
6 61
1 ה5%1.006ז
= 8 (561.₪16!05)0 .8 " זס? הסו5ח%א6 סד" 15450
= ,(16105)2-.561 8 " 15 " 8 ("350%36 501)"1] ₪ " "
"2000 466655 16705016 6חווחותהוססזק" , הסהווס+ה1ס
+ 0חם
סט 0ח=
השיגרה זסטותט))קטאסס |6סזק יוצרת שאילתת פרמטר כשיגרה מאוחסנת. שאילתה זו
מחפשת אחר מספר שלוחת טלפון של עובד, לפי שס המשפחה שלו. השיגרה מגדירה
את האובייקט 0ח8וחוח60 והפרמטר הקשור אליו [פוחגּא1]. הקבוע ז8ח₪0/6 מגדיר את
הפרמטר כמחרוזת טקסט ברוחב קבוע. הקבוע זטמחזהּזהקה מגדיר את הפרמטר
כקלט בלבד, והמספר הנגרר מציין שהפרמטר יכול להכיל עד 20 תוויסם. לאחר הגדרת
האובייקט 60800 והפרמטר הקשור אליו, השיגרה מגדירה את חיבור הקטלוג אל
מסד הנתוניס 6חושחצוס ומצרפת את האובייקט 0חאוחוח0ס6 לאוסף 65ז660סזק תחת
השס חסו5ח66אם66/ס|קותםס5.
אס תפעיל את זססוחט)אקט)אסס6סזק יותר מפעס אחת, היא תיכשל בעת ניסיון לכתוב
עותק חדש של חסופח6זאם66ץסוקוחש50 על גבי גה הקיים. הוסף לשיגרה קוד ללכידת
שגיאות לטיפול במצב מעין זּה. לאחר מכן צור שגרת מחיקה. יהיה עליך לערוך את
שגרת המחיקה שבדוגמה הקודמת, מכיון שהיא מוחקת שגרות בפרויקט הנוכחי, בעוד
שבדוגמה זו עליה למחוק שיגרה במסד הנתונים סחושוחצזסו.
השיגרה 6סזסקאסס |חטח מפעילה את השיגרה המאוחסנת שנוצרה על ידי השיגרה
זסם וטא קטאסס |ססזס. שיגרה קצרה זו מבצעת ארבע מטלות:
> יצירת חיבור אל מסד הנתוניס באמצעות השיגרה המאוחסנת.
> הצבת משתני אובייקט שמצביעים על השיגרה המאוחסנת והפרמטריס שלה. הקוד
מנצל אובייקט פקודה כדי להפנות אליה.
> הצגת תיבת דו-שיח בה המשתמש חייב לציין את שס המשפחה של העובד. הקוד
מציב את ערך ההתזרה מתוך תיבת הדו-שיח בפרמטר הפקודה.
> ביצוע הפקודה ופתיחת ערכת רשומות המבוססת על קבוצת ההחזרה של הפקודה.
השיגרה מציגה את השורה הראשונה מקבוצת ההחזרה בתיבת דו-שיח. הקוד
משתמש בשתי מערכות כללי מתן השמות כדי לבחור חבר מתוך האוסף ₪605
בערכת רשומות. תוכל לבחור את המיקוס הסידורי או את המאפיין סופא שלו.
66655 2000 /,; 4
3
עיצוב טבלאות
עסקיס רביסם המשתמשים במסדי נתוניס, אינס מייחסים את החשיבות הראויה
לעיצוב טבלאות. במקוס זאת הם נוטיס להתמקד בעיצוב טפסים ודוחות, אלמנטיס
הגלוייס למשתמש. חשוב להדגיש כי העיצוב והתוכן של טבלאות וקשרי הגומלין
ביניהן, יכוליסם להשפיע משמעותית על השירותים שניתן לספק באמצעות פתרונות
מסד נתוניס מותאמים אישית. עיצוב טבלאות יכול להשפיע על ביצועי מסדי הנתוניס
האלה וגס על קלות הוספת שירותיס חדשיס למערכת.
פרק זה פותח בסקירה קצרה של שיקוליס כללייס בעיצוב טבלאות, כגון פיצול המידע
בקבוצות לוגיות כדי שניתן יהיה לאחסנו בטבלאות שונות. אחר דן הפרק ביצירת
טבלאות באמצעות 2000 466655, בצורה ידנית ובעזרת האשף של 206655. נלמד גס
אודות אינדקסים, מפתחות ראשיים ועל אופן יצירת קשרי גומלין בין טבלאות.
הפרק מלמד כיצד ליצור טבלאות באופן דינמי ולמלא אותן בנתוניס, יכולת
שמאפשרת ליצור פתרונות מסדי נתוניס רבי-עוצמה ועתירי רכיביס. התקליטור
המצורף מכיל דוגמאות רבות של אובייקטי נתוניס 6%ש460 - 20( (80כ 6%ע60
%5) - שיוצרים טבלאות 406055 באופן דינמי וממלאים אותן בנתוני 1060655.
דוגמאות אלו מבוססות על המבוא ל-400 שהוצג בפרק 2. קבוצת דוגמאות אחת אף
מציגה כיצד לשלב את 400 ואת האובייקט הידידותי 00600 כדי לתקשר עס מקורות
נתונים 15 (16%000 460655 |08ח6ט56 60א06ח1) ו- 0086 (קישוריות מסד נתוניס
פתוחה).
פרק 3: עיצוב טבלאות | 155
טבלאות ומסדי נתונים יחסיים
טבלאות נמנות עס יחידות המבנה הבסיסיות ביותר של מסד נתוניס יחסי. דוגמת מסד
הנתונים סחושחזזסא המשווקת עס 460655, היא דוגמה למסד נתונים המנהל עסק
דמיוני. מסד נתוניס זה כולל טבלאות אחדות העוקבות אחר מידע חשוב. הטבלה
60505 עוקבת אחר מידע על לקוחות, כגון שס חברה ושס איש קשר. הטבלה
5 עוקבת אחר נתוניס הקשוריס למוצר, כגון שס המוצר, מספר יחידות במלאי
ומחיר היחידה.
כל טבלה במסד נתוניס חייבת להכיל מידע המתאיסם ליישות מסוג מוגדר אחד בלבד.
לדוגמה, בית-ספר טיפוסי כולל בין היתר, תלמידיס וכיתות. תלמידיסם רשומיס
בכיתות; מוריס מלמדיס בכיתות. מסד הנתוניס של בית הספר עשוי להכיל טבלת
תלמידים (%5ח5₪006), טבלת כיתות (6!85565) וטבלת מוריס (5ז8ח1686). הטבלה מורים
צריכה להכיל מידע על מורים, אך לא צריך להיות בה מידע על תלמידיס או כיתות.
באופן דומה, הטבלה כיתות אינה אמורה להכיל פרטי מורים, כגון כתובות, מספרי
תעודת והות ומספרי טלפון.
טבלאות מסד נתוניס דומות במבנה שלהן לגליונות אלקטרונייס. שורות (פווסח) או
רשומות (8660105) בטבלה מייצגות מופעים :יחודיים של היישויות המאוחסנות
בטבלה. לדוגמה, הטבלה 65%00675 כוללת שורה אחת לכל לקות, ואילו הטבלה
65 כוללת שורה אחת עבור כל מוצר (אין חשיבות כלשהי לסדר השורות; תוכל
לסדר אותן כרצונך מבלי לשנות את משמעות המידע שבטבלה).
כל שדה (16!0=) בטבלה מכיל מידע מסוג מוגדר. לדוגמה, לכל אחד מהלקוחות במסד
הנתונים סחואוחצזסא יש שם, כתובת, מספר טלפון וכן הלאה - מידע זה מאוחסן בשדות
הטבלה 5ז6₪50006.
טבלאות מסד נתוניס רבות כוללות שדה אחד או יותר שמזהה באופן ייחודי כל שורה
בטבלה. זיהוי ייחודי גה נקרא מפתח ראשל (ש6א עזפּחוזק). המפתח הראשי של הטבלה
5 6050 שבמסד הנתוניס סחושחצוסא הוא השדה 06710 0ט5ט6 (מזהה לקות).
נרמול
נרמול (חסו280!ו|החזסה) הוא החלה של קבוצת כללי עיצוב על טבלאות מסד נתוניס.
לנרמול ארבעה יתרונות עיקריים :
> ביטול מידע מיותר. מסדי נתוניס רביס שלא עברו נרמול מתייביס להכניס אותס
נתוניס של אנשי קשר בצורות רבות. ביטול היתירות מצמצס סיכויי קליטה של
נתוניס שגוייס, דבר שעלול לשבש את מסד הנתוניס. הנרמול יכול גסם לפשט את
תחזוקת מסד הנתונים, כיון שקל יותר למחוק או לעדכן ערך המאוחסן במקוס
אחד בלבד.
6 הח 2000 466655
> צמצום גודל מסד הנתונים. כל סוג מידע מאוחסן במקוס אחד בלבד, ולכן מסד
הנתוניס אינו צריך לשמור עותקים רביס של פריטי מידע והים. הנרמול אף
מצמצס את מספר העמודות בטבלה, מה שמקטין את מסד הנתונים כולו.
4 פישוט תהליכי חיפוש. מקצועני מסדי נתוניס המתמצאים בכללי הנרמול, יידעו
כיצד לנווט בטבלאות מסד הנתוניס לשם איתור מידע. משתמשי מסדי נתוניס
מזדמניס יצליחו להבין טוב יותר את עיצוב הטבלה, מכיון שכל טבלה מייצגת
יישות יחידה שכל מאפייניה הן עמודות בטבלה זו.
4 פישוט ביצוע שאילתות. עמודת טבלה מאחסנת סוג נתוניס יחיד, כגוו שס פרטי או
שס משפחה, אך לא את שני סוגי השם. אחסון שם המשפחה בעמודה נפרדת
מאפשר להפיק בקלות רשימה של כל שורות מסד הנתוניס המכילות שס משפחה
זהה. במסד נתונים לא מנורמל שמאחסן שמות פרטיים ושמות משפחה באותה
עמודה, יש לחלץ תחילה את שס המשפחה לפני ביצוע שאילתה המטפלת בשמות.
קיימיס שלושה כללי נרמול מקובליס : וויוס= |הּוח'וסא %פזו= (כלל הנרמול הראשון),
וח'זס= |בּוח'וס 56600 (כלל הנרמול השני) ו- חוזוס= |בּוח'יזסא ומד (כלל הנרמול
השלישי). קיימים גם כלליס מיוחדיס רביס נוספים.
וחיזס-] |הּוחיוס 5%זו-] - כלל הנרמול הראשון
כלל הנרמול הראשון קובע כי כל שדה בטבלה חייב להכיל פריט יחיד שאינו ניתן
לחלוקה. הטבלה 2609118 ז06וס של מסד הנתוניס 6חואווזזס! ממחישה חוק זה. תרשיס
1 מציג קטע מהטבלה ובו שלוש הזמנות. כל עמודה בטבלה מכילה סוג נתונים יחיד.
העמודה השנייה מכילה שמות מוצרים, אך לא שמות ומחירים גם יחד. בנוסף, כל
שורה בטבלה כוללת מופע אחד בלבד של מוצר.
0% 40 58 8550פש3) 10248
1% - 0 8 ספוז= חפו)אסר] ההזסמהטחו 10248 ||
1% 5 0 והמההשסוכ) ₪1 22818||8סו/] 10248 ||
1% 9 10 טוסך 10249 ||
1% 40 20 5 ספוז קטחוןחב3! 10249 ה
1% 0 70 סח ח3! חבּוחָח= אופ! 130'5. 10250 מו
1% 35 0 5 הפו מטחזוןמז 10250 | |
| 1% 15 0 38 זפמק9 101] ץזפו= החהופוטס | 10250 ||
5 זס [+*| וע] * 1 ]ן | 4 :96076
תרשים 3.1: קטע מהטבלה 2608158 ז006 הממחיש את כלל הנרמול הראשון. האלמנטים
בכל עמודה (או שדה) נמנים עם סוג נתונים יחיד; האלמנטים שבעמודות השורה אינם
ניתנים לפירוק
טבלאות מסד נתוניס שאינן עומדות בדרישות כלל הנרמול הראשון, מתאפיינות בדרך
כלל בשתי תכונות: ראשית, הן מאחסנות יותר מפריט אחד באותו שדה (שים לב
שהטבלה בתרשיס 3.1 מכילה פריט בודד בכל שדה). דוגמה לאי-עמידה בדרישות
הכלל הראשון היא טבלה ששדה השס שלה מכיל שס פרטי ושס משפחה. צירוף סוגי
פרק 3: עיצוב טבלאות | 157
מידע בשדה משותף מסבך את תהליך שליפת המידע. הפרה שכיחה נוספת של כלל
הנרמול הראשון היא טבלה שמכילה שדה לכל מוצר בהזמנה, דבר שמחייב ליצור
טבלה בעלת שדות רביס של מחיר, כמות והנחה, ובהמשך גורס להפרת הכלל הראשון.
עיצוב כזה ''מנפחיי את הטבלה, וחלק גדול מערכי עמודות אחדות יהיו ריקים.
טבלאות העומדות בדרישות כלל הנרמול הראשון מבוססות בדרך כלל על יישויות
לוגיות שמאפשרות לאתר מידע בקלות. לעיתיס קרובות יש להן מפתח ראשי שמבטיח
כי כל שורה בטבלה היא ייחודית. כזכור, טבלאות מסדי נתונים מייצגות מופעי
יישויות. בטבלה שבתרשים 3.1, כל שורה מייצגת פריט בהזמנת לקוח. המפתח הראשי
של הטבלה הוא מפתחת מורכב (ש6א 6חהטסקה60) שמבוסס על השדות 060זס
ו-סשסטססזפ, מכיון שניתן לזהות כל פריט בהזמנת הלקוח באמצעות צירוף ייחודי של
מספר הזמנת הלקותח ומזהה המוצר.
וח'וס-] |בּוח'יוס 56600 -- כלל הנרמול השני
כלל הנרמול השני מציין קשרי גומלין נדרשיס בין העמודות בשורה. כדי לעמוד
בדרישת הכלל השני, טבלה חייבת לעמוד קודס כל בתנאי כלל הנרמול הראשון.
בנוסף, כל הערכיס בשורה חייבים להכיל מידע על היישות הספציפית שמיוצגת
באמצעות השורה. דרישה נוספת: אסור שתהיה תלות הדדית בין שני שדות כלשהס.
אחת ההפרות הנפוצות של כלל זה היא הצבת שדות לשתי יישויות ייחודיות בשורה
אחת.
הטבלה 5!ו2683 07067 של סחוצוח+סא עומדת בדרישות חוק הנרמול השני. שדה הכמות
מתאיס בצורה ברורה לכל מוצר. מחיר היחידה וההנחה יכוליס להשתנות בצורה
עצמאית לכל פריט, כאשר הצבת מחיר יחידה והנחה בטבלה מאפשרת ליישוס לעקוב
בקלות אחר פריטים אלה לכל הזמנה.
במסד הנתונים סחושחוסא קיים שדה מחיר יחידה הן בטבלה 26088 ז0זס והן
בטבלה 65ס6טסזק. אה נראה כמו הפרה של כלל הנרמול השני, אולם עיצוב זה מאפשר
למנהל לעדכן מחירי פריטים מבלי להשפיע על מחירי פריטים שכבר הוזמנו. ההזמנות
יכולות לנצל את המחיר וההנחה שבטבלה ₪ס6טסזק בתור הנחיה ולאו דווקא ככלל
ברזל לכל העסקאות.
וח'יוס-] |בּוח'יוסא ה'ווחד -- כלל הנרמול השלישי
כלל הנירמול השלישי קובע כי כל השדות בכל שורה חייבים להיות ייחודייסם ובלתי
תלויים וה בזה. לדוגמה, החוק מאפשר רק שדה תאריך אחד בשורה. אס הטבלה
5 מכילה שדה תאריך הזמנה, אסור שתכיל שדות נוספיס של יוס, שבוע או חודש
של ההזמנה (היישוס יכול לחלצ בעצמו את החודש מתוך תאריך ההזמנה). הטבלה
5 מכילה שדות אחדים שמכילים ערכי שעה/תאריך (פחוד/כ), אך אלה
מתייחסים למועד ההזמנה המקורי, התאריך בו הגיעה דרישת הלקוח, יוס האספקה
וכן הלאה.
8 הח 2000 406655
עמידה בכללי הנרמול
נבון יחיה למלא את דרישות הכללים, אך בנסיבות מסוימות ייתכן שתרצה לעשות
זאת בצורה סלקטיבית - למשל, אם ברצונך לצמצס את מספר הטבלאות. השדות
מיקוד, קוד אזור וקוד מדינה (בארה'יב) יכולים להתקיים בטבלה נפרדת. אך אם ידוע
לך המיקוד של כתובת מסוימת, ידועיס לך גם העיר, האזור, או המדינה, ולכן אינך
צריך לשמור את המיקוד ושס העיר באותה טבלה.
בפרויקטים מסוימים של מסדי נתוניס קטנים ובינוניים יצירת טבלאות השומרות
מידע על מיקוד, שם עיר, אזור ומדינה עלולה להיות בלתי מעשית. גס בפרויקט מסד
נתוניס גדול מאוד, כשנדרשיס פרטי אנשי קשר, תכנון מסוג זה מחייב לצרף את
הטבלה הראשית 60018605 עם טבלאות רבות בכל מקרה הדורש מידע אנשי קשר.
הדבר עלול לפגוע קשות בביצועי המערכת, במיוחד אס צירוף הטבלאות נדרש פעמיס
רבות.
קשרי גומלין בין טבלאות
בעת יצירת טבלאות, עליך להביא בחשבון גס את קשרי הגומלין ביניהן. קשריס אלה
מעניקים למסד נתונים *חסל (|6|80003ז) את רוב עוצמתו. קיימיס שלושה סוגי קשרי
גומלין: יחיד-ליחיד (6ח%0-0-6ח0), יחיד-לרבים (עְח6-60-18ה0) ורבים-לרבים
(ץח3]-0ם-ץח13א).
קשרי גומלין מסוג יחיד-ליחיד
במערכת קשרי גומלין מסוג יחיד-ליחיד, כל רשומה בטבלה אחת מתאימה לרשומה
יחידה בטבלה אחרת. סוג קשר זה אינו נפוצ ביותר, אך ביכולתו להציע מספר
יתרונות. ראשית, תוכל להציב שדות משתי הטבלאות בטבלה משולבת. אחת הסיבות
לשימוש בשתי טבלאות היא שכל שדה הוא מאפיין של יישות נפרדת, כגון נהגיס
ומשאיות. כל נהג יכול לנהוג משאית אחת בלבד בזמן נתון, אך שדות הטבלאות של
הנהגיס והמשאיות מתייחסים ליישויות שונות.
קשרי גומלין מסוג יחיד-ליחיד יכוליס גס לצמצס את הזמן הדרוש לפתיחת טבלה
גדולה על ידי הצבת חלק מעמודות הטבלה בטבלה נפרדת. גישה זו הגיונית במיוחד
כשטבלה מכילה שדות אחדים שהשימוש בהס אינו תכוף. לבסוף, קשרי גומלין מסוג
יחיד-ליחיד יכולים לתמוך באבטחה. 466655 מיישס אבטחה ברמת-משתמש ברמת
הטבלה. כך, אס קבוצת-משנה של שדות בטבלה מחייבת הגנה באמצעות אבטחה,
הצבת שדות אלה בטבלה נפרדת מאפשרת ליישוס להגביל את הגישה לשדות
מסוימיס. היישוס יכול לקשר את הטבלה המוגבלת בחזרה לטבלה הראשית באמצעות
קשרי גומלין מסוג יחיד-ליחיד, ועל ידי כך לאפשר למי שמחזיק בהרשאות מתאימות
לערוך, למחוק ולהוסיף רשומות חדשות לשדות אלה.
פרק 3: עיצוב טבלאות 159
קשרי גומלין מסוג יחיד לרבים
נפוץ יותר הוא הקשר יחיד-לרביס, שבו שורה מתוך טבלה אחת מתאימה לשורה אחת
או יותר מהטבלה השנייה. סוג קשר זה יכול ליצור גם בסיס לקשרי גומלין מסוג
רבים-לרביס. הטבלאות 5ז6₪5%006 (לקוחות) ו-5ז06זס (הזמנות) של מסד הנתוניס
שחושחזזס מקיימות קשרי גומלין מסוג יחיד-לרביס. ללקוח כלשהו יכולה להיות
הזמנה אחת או יותר, אך כל הזמנה שייכת רק ללקותח אחד. תרשים 3.2 מציג את
תצוגת עיצוב (ח65!0כ) של הטבלה 5ז06זס. המפתח הראשי הוא פזזפ0זס. כל אחד
מערכי 008710 יכול להופיע בשורה אחת בלבד. הטבלה מכילה גם שדה שנקרא
0 6050, שמקושר לטבלה פזפוסספו6. השדה 6506710 הוא המפתח הראשי של
הטבלה 005000675. שדה המשמש כקישור לטבלה אחרת, נקרא מפתח זר
(ץ6א חופזס=). ערכי 610 0ל5ט6 יכוליס להופיע פעמיס רבות בטבלה 5ז06ז0ס. לאמיתו
של דבר, קוד זיהוי הלקוח מופיע פעס אחת לכל הזמנה שהלקוח מבצע. מפתח זר וה
מקשר את צד היירביסיי של מערכת קשרי הגומלין חזרה לצד ה'ייחידיי.
|<1ם) = | 6 : זז 88
777-ה
זסס חנוה סוס שטסוחו זס חח ססום.
.53016 015500675 חן 35 ע'שח6 586 %אפך 500
.5306 865/י0!קחח= חן 35 ע'ח6 5806 טסוט 6610עסופוחם | |
ודה | |
ודה ות | |
86/6 ות | |
.3066 5זשסקוח5 חו 10 זפקקוח5 35 586 זשסחחטו היקוח | |
חפנ זחמופזה | |
חשותקות5 6661/6506 50 הב קוחס6 זס הס5זוסכ )0 שחחבו %אשך סוחב)קות5 | |
.]ה אס 56-061606סק סח -- ץ|חס 3007655 5681 זאפך 55| |
סק וטו
| קנ)סט 1 | 6878
5 6 וו
וי
135% זטקת1
50 חסוסקב
0 קט 6 ח63 שבח !₪6 מ יפ
בו 6 ח80300/י
1 855ז0 ,503005 הַחוטט!סחו ל
.5שחחבח ₪6!3 חס קופח זם] 1 8030070
סז וטס
סז חזהַח | 260 אוס!|ם
(06 3065שו|קטס) 65/י כ יו
5 ח0ו855זקחחס-> שוחו
תרשים 3.2: תצוגת עיצוב של הטבלה 5ז06ז0; השדה 60500061 משמש כמפתח זר
בקשרי הגומלין מסוג יחיד-לרבים בין הטבלה 070615 לטבלה 656070675
קשרי גומלין מסוג רבים-לרבים
קשרי גומלין מסוג רביס-לרבים קיימים בצורה עקיפה בלבד ומבוססים על שתי
מערכות קשרי גומלין מסוג יחיד-לרביס. הטבלאות 070675 ו-6ס6טחסז מקיימות
ביניהן קלשרי גומלין מסוג יחיד-לרביס. הומנה כלשהי יכולה להכיל מוצריס רביס.
באופן דומה, מוצר יחיד יכול להופיע בהזמנות רבות ושונות.
0 הח 2000 466655
ממסד הנתוניס 6חואווחצוסא יובאו ארבע טבלאות לדוגמת מסד הנתוניס של פרק וה:
סו 0ס605, /שא8!וו8ז6כ 5ז66זס, אא5!ו6%9כ ו-/שאפסס6טוטסזק. תרשיסם 3.3 מציג בחלון
קשרי גומלין (₪9|800050105) את קשרי הגומלין בין הטבלאות. הטבלה //5%ז6 6500
מקיימת קשרי גומלין מסוג יחיד-לרבים עס הטבלה צ5%8%ז06זס, הטבלה /שאפופסזס
מקיימת קשרי גומלין מסוג יחיד-לרביסם עס הטבלה \ש8%פו6₪כ ז08זס והטבלה
שאססוססזס מקיימת קשרי גומלין מסוג יחיד-לרביס עס הטבלה /ש58%ו9ז6כ זס0זס.
הטבלה /ש5%!ו2688 ז06זס משמשת כייתיבת הסתעפויות'י שמקשרת את הטבלאות
/\אפזס0זס ו-אפזס6טסזס בקשרי גומלין מסוג רביס-לרביס.
|<1ם]- | 5קוח5חסו)3₪6|3 * =
וח זפ עלולחבט)
קוחו
50% ח51םוח/
יטוח
[6%6 0671 זססת
חח 60פום
תרשים 3.3: החלון קשרי גומלין מציג את קשרי הגומלין מסוג רבים-לרבים בין הטבלאות
)000 |-/א6ס6טססזק
קשרי גומלין מסוג רבים-לרביס מעוצביס במבנה "תיבת הסתעפויות'יי, כשטבלה
שלישית, תיבת ההסתעפויות, משמשת כקישור בין שתי הטבלאות האחרות במערכת
קשרי הגומלין. עיצוב וה מסייע לשמור על יעילות מסד הנתונים, כיון שתיבת
ההסתעפויות יכולה להכיל מספר שורות גדול, אך מספר עמודות קטן. בדומה לכל
הטבלאות שעברו נרמול, עליך להגביל את העמודות לאלו שמאפיינות את היישויות.
כלל וה חשוב במיוחד לגבי טבלאות מסוג תיבת הסתעפויות, מכיון שהן עלולות להכיל
מספר שורות גדול יחסית.
שלמות הקשרים
אפשר להקנות חוסן למסד הנתוניס באמצעות שלמות קשרים (שו0סשחו |08ח6ז₪616)
ועדכונים ומחיקות על פי היררכית קשרים (06!6065 300 08665קט 0ח6850801). כללי
שלמות הקשרים מבטיחיס את חוקיות קשרי הגומלין בין טבלאות. כללים אלה גס
מונעים שינוי בשוגג של נתוניס קשוריס (לדוגמה, לא כדאי למחוק לקוח, אם יש לו
הזמנה שלא שולמה או מספר הזמנות כאלו).
פרק 3: עיצוב טבלאות | 161
שלמות הקשרים אינה מאפשרת הוספת שורה לצד ה"רבים'יי בקשרי הגומלין
באמצעות ערך מפתח זר שאינו תואם לערכים שבצד היייחידיי של הקשר. אך אפשר
להכניס ערך מפתח זר חסר או ריק (ווטא) שאינו תואס מפתח ראשי כלשהו בצד
היייחידיי של קשרי הגומלין.
שלמות הקשרים מסייעת גם להימנע ממצב של רשומות יתומות - רשומות שנמצאות
בצד ה'ירביסיי של קשרי הגומלין, שאין להן בנות-זוג בצד היייחידיי. הדבר מתאפשר
הודות לחסימת אפשרות מחיקת רשומות בצד ה"יחידיי, אם יש להן עדיין בנות-זוג
בצד היירביםיי (לדוגמה, מו הסתס לא יעלה על דעתך להסיר את המכירות הקשורות
לעובד מסויס רק משוסם שהעובד עזב את החברה). רשומות יתומות מנפחות את מסד
הנתוניס ברשומות מיותרות ולא שימושיות; במקריס קיצוניים יותר, הן עלולות
לערער את חוקיות התוצאות המושגות ממסד הנתונים.
לעיתיס תרצה שהשינויים יתבצעו בשני צדי קשר הגומלין. במצבים אלה תכונות
המחיקה והעדכון על פי היררכית קשרים של שלמות הקשרים עשויים להיות
שימושיים. תכונות אלו אינן מופעלות אוטומטית; עליך להפעילן במפורש. אס תפעיל
מחיקה על פי היררכית קשרים, מחיקת רשומה כלשהי בצד היייחידיי של קשר הגומלין
תסיר את כל הרשומות התואמות בצד ה'ירביםיי. במקרה של שינוייס במפתח ראשי
עדכונים על פי היררכית קשרים פועלים בצורה דומה. אס תשנה ערך מפתח ראשי בצד
הי'יחידיי של קשר הגומלין, הוא יתבטא גס בצד היירביסיי. כל ערכי המפתח הראשי
התואמיס מתעדכנים אוטומטית.
יצירת טבלאות באמצעות אשפים
אשפי 866655 מפשטים מטלות רבות, כגון יצירה ותחזוקה של טבלאות. ל-400655
מעל 20 אשפי מסד נתוניס, למשל: זחַחַחִםהַבח8ו ז86זחה60, פחוווום 0ח3 6חוד, 57106
חח ||68 ו- 060ו ז+חסהסְהַהּחגוי ה6600ו!60. כל אלה יוצריס יישומיס שלמים,
כולל עיצוב הטבלאות. אשף הטבלאות יוצר טבלאות יחידות ואף מוסיף לכל אחת מהן
מפתחות ראשיים ומקשר ביניהן. האשף בונה שדות (06ווט8 ₪6!0) מסייע לתחזק
טבלאות על ידי פישוט הוספת השדות.
אשפי מסד הנתונים
בעת הפעלת 2000 860655 תוכל להציג את אשפי מסד הנתונים, על ידי בחירה
באפשרות אשפי מסד נתונים, דפים ופרויקטים של 260655 (28%80856 06655
5 וח 28465 ,28705ו/)) בתיבת הדו-שיח 466655 0506%ז116 ולחיצה על אישור.
בהופעת תיבת הדו-שיח חדש (אוסא), בחר בכרטיסיה מסדי נתונים (פ85565פ8ּה28) ואחר
כך לח לחיצה כפולה על סמל האשף שברצונך להפעיל (לחילופין, ניתן לפתוח את
תיבת הדו-שיח מתפריט קובץ (1₪ו=), האפשרות חדש).
2 הח 2000 406655
מסד נתוניס שנוצר על ידי אשף מושלס מבחינה תפקודית למשתמש לא מנוסה, מכיון
שהוא כולל טפסים, טבלאות, דוחות ואף נתוניס לדוגמה. תוכל לבחון את עיצוב מסד
הנתוניס ולהשתמש בו כמודל ליישומיס מותאמים אישית. מפתחים מנוסים יותר
יכולים לערוך את העיצוב הבסיסי על ידי הוספת טבלאות, שאילתות, טפסים, דוחות
ומודוליס.
אשף הטבלאות
אשף הטבלאות מתמקד בלעדית בעיצוב טבלה. תוכל לפתוח אותו מתוך הפריט
טבלאות (180!659) באוסף אובייקטים (00[6600) שבחלון מסדי נתונים (ס5ה80ז28). לתחצ
לחיצה כפולה על הסמל יצירת טבלה באמצעות אשף (0זה2ו/ חַחו5 ץ 80!6 ד 676806)
כדי לפתוח את תיבת הדו-שיח ההתחלתית אשף הטבלאות (0זב2ו\ 6מַבּ1). אשף וה
מציע מיגוון עיצוביס מוכניס מראש בסגנון עסקי או אישי. עיצובי הטבלאות העסקיים
כולליס בין היתר את אנשי קשר (065ח60), לקוחות (5ז0ו500ט6), עובדים
(665ץס!קוחם), מוצרים (טסס6טססזק), הזמנות (9ז00ז0ס), תחשבוניות (5ססוסעח1) ואירועים
(פזח6/ם). עיצובי הטבלאות האישיים עוניס על כל הצרכיס ויכוליס לשרת גס מיגוון
צרכים של עסקים קטנים. בין העיצוביס המוצעים: מתכונים (65קו66), צמחים
(פסחהוק), יומן תרגילים (00] 676156אם), ספרים (80065), אוסף וידאו (ח66000!|ס60 סססו/)
והקלטות (05ח₪660701). האשף אינו ממלא את הטבלה בנתוניס ראשוניים, אך הוא
מספק קישורים לטבלאות אחרות שכבר כלולות בעיצוב מסד הנתונים. הוא אפילו
יבנה קשרי גומלין אלה בעצמו.
?7 זטסץ 676806 60 56 0ם שחב/או וסץ' 40 אוסוסם 566!! 65|ס3: 6|קח53 שחש ]0 הסותעעצ
שחו 50 לחביאו סי 16105 536 חב 30|6: 6|קהחה5 רל 0056ת6 , 6301 306 3 הַחו501660 סא
סח 6ז'וסץ ]1 . 30|6: 6|קחז53 שחס חבּח! שפוח החסז] 16105 שבט|סחו חב= 6ופב: וטס , 6|פ3: אופח זופץ חו
36| !16 0/6063 סל 635 1/5 ,| 06טסחו חב 3630 סט ,בו ב זטססב 6טפ
ופ 0
|8ח50זסק -%
530! 7 3065:
:306 אופח חח חו 1605 :05| 5806
| << 6 60סופשחך
58051506
סזפסוטיח
וי
16
ות
הקקוח
5תסוחעבק
פשסוסשח1
585 6סוסשח1
ןז
5חסששים
5חסו6507/30
תרשים 3.4: יצירת הטבלה חשבוניות בתיבת הדו-שיח הפותחת של אשף הטבלאות
לאחר בחירת עיצוב טבלה מוכן מראש, תוכל למלא את הגירסה המותאמת אישית
שיצרת בשדות מתוך תיבת רשימה. תיבת הדו-שיח ההתחלתית אשף הטבלאות כוללת
קבוצת לחצניס להעברת שמות שדה בין תיבת הרשימה שדות הדוגמה (6|05= 5800!6)
לתיבת הרשימה שדות בטבלה החדשה !190 אוסח ץח חו 16|05=). תרשיס 3.4 מציג
שלב ביצירת טבלת חשבוניות. שדות מדגמיים אחדים הועברו לתיבת הרשימה שדות
פרק 3: עיצוב טבלאות 163
בטבלה החדשה. בשלב זה, תוכל ללחו שלוש פעמיס על לחצן הבא (6א) כדי ליצור
את הטבלה חשבוניות (פ6סוסעח1). הגדרות ברירת המחדל יוצרות מפתח ראשי,
מקשרות בצורה טבעית את הטבלה החדשה לטבלה כלשהי במסד הנתוניס, ומאפשרות
להכניס נתוניס. לאחר קבלת כל ברירות המחדל ולחיצה על לחצן סיום (הפוחום),
הטבלה תיפתח בתצוגת ג*ליון נתונים (ְססַחַ855זהכ) ותאפשר למלא אותה בנתוניס. בעת
המעבר בין תיבות הדו-שיח של האשף תוכל לדרוס כל ברירת מחדל לא רצויה.
אס התחלת זה עתה את צעדיך הראשונים בעבודה עס מסדי נתוניס יחסיים, זיהוי
הקישוריס האוטומטי לטבלאות נוספות שימושי במיוחד. תרשים 3.5 מציג את תיבת
הדו-שיח השלישית של יצירת הטבלה פרטי חשבונית (2688|8 6סוסעח1). הטבלה יכולה
לכלול את השדה 1010610 הפועל כמפתח זר של הטבלה חשבוניות (65סוסעח1). אס
האשף מזהה את הטבלה חשבוניות, הוא מקשר אוטומטית בין שתי הטבלאות. תוכל
לדרוס את הקישור, או ליצור קישוריס שוניס מאלה שמציע האשף, אך אס אין לך
ניסיון מוטב שתקבל את ברירות המחדל המוצעות.
הו 6|פבּ ד
356 3/6 30|65: 6/3660 63-303507 זטוסץ חו 30|65: זסחלס עחבּ 50 660ב|פז סופב: אופח זטסץ 15
.03030356 לחשזזו₪ שר חו 30|6: זפחזט חס 6355| 36 60 660ב!6 5| 6|ס3: אופח זטסץץי , ע!|3508! .960705
זנוס' אוסח אוסח5 אוס|ספ ז5ו| שח ,טפ זס) 5קות5חסו6|3ז !פב השס ||וו בוה קוו חל ,63565 506 הח
6 חו 30|6: 3 56666 ,66| 5| 6ב 3 עוסת מַחב3ח6 סד .83065 הַח5וא6 0 650ב|ז 5| סופב: אופח
.5קוח5ח3000!פת >6ו|6 חב 186
... 5 3066 '5!ו653 66וס/ח1' אופח עזי
'61וסב ד' 50 83:60 זסח
]= 65| ד' 0 6!3:60 זסח
| ...5קותפחסוסב3|פת
| ₪ [ ₪2 | ₪4 | שת
תרשים 3.5: תיבת דו-שיח של אשף הטבלאות המציגה זיהוי של קישור אוטומטי בין
הטבלה פרטי חשבונית והטבלה חשבוניות שנוצרה לפניה
5 זססות16י]/']והחב =" 0 13:00 סח
"52 זט ח16י]/י]והחב = 0 613560 )סח "
כו
'5ח50זפק' 60 6|3660? סח 55
5ְחַחו 07 0 30| זסה | | == ==
בונה השדות
לאחר שיצרת טבלה באמצעות אשף, יתכן שתרצה להוסיף לה שדה נוסף. המשימה
עלולה להתגלות כקשה יותר מאשר היא נראית מלכתחילה, במיוחד אס השדה צריך
להיות מקושר אל שדות נוספיס בטבלאות אחרות. הדבר נובע מכך שקל יותר ליצור
שדה חדש בעל סוג נתונים שונה מאשר ליצור שדה בטבלה אחרת. כשמנסיס לקשר בין
שדות שנמצאיס בטבלאות שונות, ששמותיהם דומים וסוגי נתוניהס שוניס, הפעולה
תיכשל מבלי שתקבל הסבר כלשהו. פתרון אפשרי לבעיית ההוספה של שדות חדשיס
לטבלה הוא בונה שדות (ז06!וט8 6!0).
4 הח 2000 466655
פותחים את בונה שדות על ידי לחיצה ימנית על שורה ריקה בתצוגת עיצוב (ח9ו65)
של טבלה ובחירה בבניה (0ווט8) מתוך תפריט הקיצור. תיבת הדו-שיח בונה שדות
כוללת שתי תיבות רשימה: אחת לבחירת סוג טבלה, כגון חשבוניות או פרטי
חשבונית, ותיבה נוספת לבחירת שדה מתוך סוג הטבלה שנבחר. בעת הארת סוגי
טבלה שונים, משתנים הערכיס בתיבת הרשימה שדות דוגמה (6|05= 0!6וח58). חפש
את השדה שברצונך להוסיף ולחץ על אישור (א08ס) כדי להוסיפו לטבלה. פעולה זו
מבטיחה שהשדות החדשיס שהוספת יכילו סוגי נתוניס תואמיס לשדות שהוספו
באמצעות אשף הטבלאות.
יצירת טבלה באופן ידני
ליצירת טבלה באופן ידני, לוחציס לחיצה כפולה על הסמל יצירת טבלה בתצוגת עיצוב
(שסו ח4ו65 חה1 182!6 0768%6), כדי לפתוח חלון טבלה (180!6) ריק בתצוגת עיצוב
(ח0ו65כ). מכאן ניתן להוסיף שדות, מפתח ראשי ואינדקס (מפתחות ראשיים הס
אינדקסיס בעלי הגדרות מאפיינים מיוחדות).
להוספת שדה, הקלד את שמו בעמודה הריקה שם שדה (פוחפּ ₪8!0) שבחלון תצוגת
עיצוב. שמות שדות עומדיס בכללי מתן השס הרגילים של זס) 8856 |טפו
5 סוט (88/). אורכס המקסימלי יכול להגיע ל-64 תוויס - אותיות, מספריס,
רווחיס ותוויס מיוחדים, למעט התוויס נקודה, סימן קריאה, סוגרייס מרובעיס סימון
הטעמה מסוג 6טפזף (). כמו כן, אסור לפתוח שס שדה בתו רווח או בתו בקרה (ערך
1 בטוות 0-31). תווי רווח יכוליס להופיע באמצע שמות שדה, אך בביטוייס
ובשאילתות יש להציבם בין סוגריים רגיליס.
סוגי נתונים
העמודה סוג נתונים מאפשרת לציין את סוג הנתונים של השדה. תיבת רשימה נפתחת
מציעה 10 אפשרויות: טקסט 0א16), תזכיר (סוח6וא), מספר (וסטחטא), תאריך/שעה
(6חזוד/6ז28), מטבע (ש6ח6זזט6), מספור אוטומטי (זספוחטאסזטה), כן/לא (סא/65ץ),
אובייקט 015 (66(פ0 015), היפר- קישור (שחווזססץ) ואשף בדיקת מידע (קטאסס !|
46) (סוגי נתוניס משמשיס בדרך כלל לזיהוי המידע שבשדה. שדה טקסט מכיל
נתוניס מסוג טקסט, שדה מספור אוטומט* מכיל נתוניס מסוג מספור אוטומטי וכן
הלאה). חלק גדול מסוגי הנתוניס כולליס אפשרויות שונות להגדרה מדויקת יותר של
סוג הנתונים. לדוגמה, סוג הנתוניס מספר כולל שבעה סוגי משנה. באפשרותך להגדיר
אחד מהס על ידי בחירת מספר בתור סוג הנתוניס ולאחר מכן לבחור באפשרות
הרצויה מתוך תיבת הרשימה הנפתחת גודל שדה (5126 ₪6|6) בכרטיסיה כללי
((8ז6ח66) בחלקו התחתון של החלון טבלה.
פרק 3: עיצוב טבלאות | 165
שדות מספור אוטומטי
שדות מסוג מספור אוטומט? (ופפחחטאסזטה) משמשיס לעיתיס קרובות בתור מפתתח
ראשי של טבלה. 860655 מציב בעצמו ערך חדש בשדה בעת הוספת רשומה לטבלה.
שדה זה אינו בר-עדכון בצורה ידנית, ולכן ערכיו אידיאלייס לסימון ייחודי של שורה
בטבלה.
5 מגדיר בעצמו את הערך של שדה מסוג מספור אוטומטי. כדי לגרוס לשדה כזה
לגדול בהפרש קבוע בצורה סדרתית, בחר באפשרות תוספת קבועה (1ח606ז0ה1) (שהיא
ערך ברירת המחדל) מתוך תיבת הרשימה ערכים חדשים (פסטו/ שוסא) בכרטיסיה
כללי בחלקו התחתון של החלון טבלה. כדי לציין ששדה מסוג מספור אוטומטי צריך
לקבל ערך אקראי, בחר באפשרות אקרא* (חססַחבּ5) מתוך תיבת הרשימה ערכים
חדשים.
באפשרותך להשתמש בכרטיסיות כללי ובדיקת מידע (קטאסס)) כדי לבחור אפשרויות
נוספות המשפיעות על השדה, כגון הנחיה למשתמש להכניס ערך בשדה, או ציון
שהשדה מכיל ערך ברירת מחדל. מאפייני שדה שהוגדרו ברמת הטבלה חלים דרכה על
טפסים ודוחות. מאפייני שדה טבלה יכוליס גס לפשט את הקוד שנכתב עבור טפסיס
ודוחות. המשמעות הנוספת של תחזוקת מאפייני שדה ברמת הטבלה היא שהמאפייניס
משתניס במקוס אחד ולא בכל טופס ודוח שמשתמשיס בשדה.
0 00655 הוא הגירסה הראשונה של 260655 שמאפשרת שליטה באמצעות קוד על
הערך ההתחלתי וגודל הצעד של סוגי השדה מספור אוטומטי (פרק 2 עוסק בהיבטיס
הבסיסיים של יכולת זו). באפשרותך להשתמש במילות המפתת ם |פאד חפד!ה ו-
אאע !60 מפד)ןג ב- .501 3% כדי לעדכן את ערכי ההתחלה והצעד של שדה מספור
אוטומטי. כוכור מפרק 2, שדה מספור אוטומטי של 501 36 כולל את סוג הנתוניס
צדנדאשק1. המאפייניס 591% ו-5560 של סוג נתוניס גה מאפשריס לשנות באמצעות
קוד את ערך המספור האוטומטי הבא ואת גודל הצעד של הערכיס הבאים.
שדות טקסט
שדות טקסט משמשיס לשמירת ערכי מחרוזת באורך של עד 255 תווים. סוג הנתוניס
טקסט (א16) יכול לאחסן פריטים כגון נתוני אנשי קשר וערכים מספריים שאינם
מיועדים לחישוב (לדוגמה, מספר והות, מספר טלפון ומספר קטלוגי). באפשרותך
להשתמש בשדות טקסט בטבלה כדי ליצור ערכי מחרוות מחושבים. ניתן לאינדקס
מפתחות ראשיים לצורך מיון ואחזור מהיריס המבוססיס על שם משפחה, או על סוג
שדה אחר מסוג טקסט.
שדות בדיקת מידע
שדה בדיקת מידע (קטאסס )6 מציג ערך בעל משמעות המקביל לערך שמאוחסן בשדה
(לדוגמה, מסד נתוניס עשוי להשתמש במספרים ייחודיים כדי לייצג מוצר. שדה
בדיקת מידע יכול להציג את שס המוצר במקוס המספר הקטלוגי שמייצג אותו). סוג
שדה זה (המוכר גם כעמודת מפתח, חוחט!60 עְ6א) מאפשר לאחסן ערך אינדקס
6 הח 2000 406655
בטבלה, אך מציג ערך טקסט בעל משמעות כשהטבלה מוצגת בתצוגת גיליון נתונים
טִסִסִַַ5ּזהכ). שדה בדיקת מידע יכול להיקשר לערכיס בטבלה או בשאילתה אחרת, או
לרשימת ערכים מותאמת אישית שהטבלה מתחזקת עבור שדה בדיקת המידע. לאחר
הוספת שדה בדיקת מידע המפנה לערכיס הנמצאיס בטבלה אחרת, לא ניתן למחוק
את השדה בטרס מוחקיס את קשרי הגומלין לשדה האחר, באמצעות החלון קשרי
גומלין (05וח0005ַ₪6|3). בעת מחיקת קשרי הגומלין, 460655 יזוכיר לך שהשדה מהווה
עדייו חלק מקשרי הגומלין יבקש אישור לפעולת המחיקה. בשלב זה בחר את
האפשרות כן (65+) כדי להסיר את שדה בדיקת המידע מהטבלה.
שדה בדיקת מידע יוצריס באמצעות אשף בדיקת מידע (0ז28 סט6.006. בחר באשף
מתיבת הרשימה הנפתחת סוג נתונים (6סץד הּז8כ) כדי לקבל טבלה בתצוגת עיצוב
(ח0ו65כ). תיבת הדו-שיח ההתחלתית של האשף שואלת אס ערכי בדיקת המידע
מקורס בטבלה אחרת או ברשימת ערכים מותאמת אישית. בדרך כלל תלת על הבא
(0א6א) כדי להשתמש בערכי בדיקת המידע מטבלה אחרת.
אס ברצונך להשתמש בערכי בדיקת מידע מטבלה אחרת, באפשרותך לבחור מתוך
תיבת הדו-שיח השנייה בטבלה, או בשאילתה שמכיליםס את הערכים המוצגיס
באמצעות שדה בדיקת המידע. בתיבת הדו-שיח השלישית, בחר בשדה או בשדות
שמכילים את הערכים המוצגיס באמצעות שדה בדיקת המידע שיצרת (בדרך כלל
תבחר שדה טקסט שמשמש כמפתח ראשי).
תיבת הדו-שיח הרביעית מאפשרת לקבוע את רוחב העמודה (או העמודות) להצגת
רשימת בדיקת המידע, בתצוגת גיליון נתונים (080850660). רשימת בדיקת המידע
יכולה להציג את ערך שדה בדיקת המידע ופריט אחד מהרשימה לכל שדה שבחרת
בטבלה הקשורה (בדרך כלל תרצה להסתיר את עמודת המפתח). תיבת הדו-שיח
האחרונה מאפשרת להגדיר כיתוב עבור שדה בדיקת המידע.
תרשים 3.6 מציג את תיבות הדו-שיח השנייה, השלישית והרביעית שבאמצעותן יצרו
את השדה ס1פטוד של הטבלה 65005ק בקובצ מסד הנתונים של פרק 3 המופיע
בתקליטור המצורף לספר.
זו קטואסס 1
קטאספ! וטופ זס] 3!065/י שח 6טואיפזם ב|וסח5 ע'וסט זס 53|6 תסוח/א
?חוחט60
5
- ב
5 0ס5נ וש
ןוטס זסטזוס
סוס
5 סוס
05
1
₪
5זשוסל5 ]א
וסור
הסט 97 5וזפנו 7 5 /
זבוזה. 6% | 366
פרק 3: עיצוב טבלאות | 167
זה <ו/ש קטואסס 1
קטסס! זנוסץ חו ססבט|סחו אחב9ש ופי 65ש|8/+ 506 הוב>חס6 16105 תסוחעעצ
קנשסס! וטס חו 5חחחט|ס6 6הס6פ :56/66 טס 116105 שד ?הוחט|ס=
= ₪
- אאא
:05|-] 50106560 :6|05ן= 6!ס3|וב שת
| וחב | [68
זה <ו/ש קט אסס 1
?חוחט!ס קסס! וטס חו פהחחט|ס6 חל =א!| טס טסו בוש ופ
שח א6ו6-61!פוס₪ זס , אחפו ופי הזטוו שחל 50 6006 לחחוז 5פו ההז , ההחטוס= 3 )0 הסטואו שר 805% פד
.ו 0655 6ח 5 50 0ַהו630ח הוחטוס6 56 ]0 606 לחטוז
(380ח6וחוחס8) הוחטוס₪ ₪ בור שן
| 6אד | |
| תפוחום 6% | 8066
תרשים 3.6: תיבות הדו-שיח השנייה, השלישית והרביעית של אשף בדיקת מידע
(0זה2ו/ קטאסס 1)
הטבלה 7675005 בתצוגת עיצוב מציגה את השדה פ61וד בתור שדה מספר, ולא בתור
שדה בדיקת מידע או שדה טקסט (תרשים 3.7). סוג הנתוניסם של שדה בדיקת מידע
תלוי בסוג הנתונים של עמודת המפתח. גם אס תסתיר את עמודת המפתח, סוג
הנתוניס שלה יקבע את סוג הנתוניס של שדה בדיקת המידע.
הכרטיסיה בדיקת מידע בתצוגת עיצוב של הטבלה מכילה את משפט 501 המשמש את
שדה בדיקת המידע. 860655 מכין אותו בעצמו בעת שאתה בוחר את האפשרויות
הרצויות באמצעות אשף בדיקת המידע.
8 ;א 2000 06055
|<ןם) - | 6 -: פתספזסק ₪3
0
זה וזכ זפפוחנוספוה ה זט וחנוחססנום עזי | 7
טסט | ד סזסווד | ץ |
"7 חבז | = |
"אד 3506 | | = |
ו עשחפזיו) ו 836 חש | |
6קעש שופטס 3 חפוו 610 זספחחטויז זססוחט חנ | = |
₪6 |בחושש 3 חפוו 6/0 זסטחחטי] טסוט 8 חנ | |
|= 2
סז וו
100 = |678ח6
80% טח |סזסחס = שבוספום
שוב ד ץד 5066 אוסת
ווד וזכוח= 6וד 5שוד , סזשטוד. 5שטוד ד6= |56 506 וספת
סע ₪863 סחך 1 חוח!ס) הטוספ
זט חא ל 6-5 2 ל
חבש זו 1 כב סז ו
.| 6 חו 5076 8 :
חס כ|8ח זס] 1= 655זק 1" 5 חוחנו!ס->
.65 313 8 וס 1056
"1 חלטו// 115%
5 !| סד 6ווחו1
תרשים 3.7: הטבלה 7675005 בתצוגת עיצוב ובה שדה בדיקת מידע שיצירתו הוצגה
בתרשים 3.6
שדות מספר
שדות מספר (זפפחטא) שוניס משדות טקסט (א16) מכיון שהס יכוליס לקבל מיגוון
של סוגי משנה, החל בבית יחיד (הסוג בית - 6ע8) וכלה ב-16 בתיס (סוג המשנה קוד
העתק משוכפל - כ1 חהסש68|ק₪6). סוגי משנה נוספיס בטווח הסוגיס הס שלם
(ז1606ח1), מספר שלם ארוך 6060ח1 פַח10), *חיד (סופַחו5), כפול (פ6|טטסס) ועשרוני
((₪חו60כ). למעט סוגי המשנה בית וקוד העתק משוכפל, כל השאר מתואריס בפרק 2,
בסעיף ייסוגי נתונים'י.
סוג המשנה בית דומה למשתנה מסוג ח6!ססם. שני הסוגיס יכוליס לאחסן ערכיס
בוליאנייס, אך הסוג בית דורש ויכרון בגודל בית אחד, בעוד שהסוג ח800!68 דורש שני
בתים. סוג הנתוניס קוד העתק משוכפל אינו זמין בתור סוג נתוניס של משתנה. ייעודו
העיקרי הוא לשכפול, אך הוא משמש בתור מזהה ייחודי. אורכו ושיטת יצירתו
הופכים אותו לבטוח יותר לשמירה על ייחודיות לעומת שדה מספור אוטומטי.
סוג המשנה עשרוני מאפשר את ביטולן של שגיאות עיגול ובה בעת מאפשר לאחסן
מספרים גדוליסם באמצעות המאפייניס דיוק (חסופ!ו66זק) וסרגל (568!6). מאפייניס אלה
שולטים במספר הספרות משני צידי הנקודה העשרונית. ערך המאפיין דיוק המייצג
את מספר הספרות הכולל שניתן לאחסן בשדה, נע בין 1 ל-28. סרגל, המציין את מספר
הספרות מימין לנקודה העשרונית שניתן לאחסן בשדה, נע בין 0 לערך המאפיין דיוק.
הודות למאפיין סרגל, סוג המשנה עשרוני יכול להכיל יותר ספרות אחרי הנקודה
מסוגי משנה אחריס של מספר מבלי לגרוס לשגיאות עיגול.
פרק 3: עיצוב טבלאות 169
תרשים 3.8 מציג את הטבלה 5005ז6ק בתצוגת גיליון נתונים. השדה 66ח6/88|3ח6זזט6
משתמש בסוג הנתוניסם מטבע, 086 /6ח6זזט6 משתמש בסוג הנתוניס מספר ובסוג
המשתנה כפול ו-66066ח6/88|8חפזוס משתמש בסוג הנתוניס מספר עם סוג המשנה
עשרוני. המאפיין סרגל של השדה 66066ח6/88|3ח6זזטוס מקבל את הערך 6, שפירושו
שהשדה :כול לאחסן שש ספרות מימין לנקודה העשרונית. ערך וה גבוה ממספר
הספרות שיכול סוג הנתוניס מטבע לייצג בצורה מדויקת - הוא מוגבל לארבע ספרות
מימין לנקודה. סוג המשתנה כפול יכול לייצג מספר בעל עד שש ספרות עשרוניות, אך
הוא אינו מבצע את משימתו בדיוק של מספר שלם (0696ח1). השורה הראשונה של
הטבלה 7675005 מציגה את הערך 1.0001 בתבניות הנתוניס מטבע, כפול ועשרוני.
השורה השנייה מבטאת את 1.00001 בשלוש התבניות הללו. שיס לב כי התבנית מטבע
בתצוגת גיליון נתונים מציגה את הערך 1.00001 בתור 1.0000, מכיון שהיא מוגבלת
לארבעה מקומות עשרונייס. התבניות כפול ועשרוני מציגות ערכים בצורה והה.
וטו | 1086-ועס הסזזווב) | 1300ב עס הסזזטר) | סחוב 351 1 | סחובא זה | סוד | אפטחועוח | = |
בו
1-ו 1 וו זז | ווח 5 1
1 1 .1 ווח ו :
2 זס |++| | + 1 | + ]14 :0018
תרשים 3.8: הטבלה 5ח50ז6ק בתצוגת גיליון נתונים, כשהיא מכילה ערכים מספריים
בתבניות הנתונים מטבע, כפול ועשרוני
השיגרה 606וח%וז|8ו66ש שלפניך מציגה הבדלים נוספיםס בין תבניות הנתוניס
שתוארו. השיגרה מחשבת את ההפרשים בין המספרים המאוחסנים בשדות
המתאימים, לבין הערך 1. השיגרה פותחת ערכת רשומות המבוססת על הטבלה
5, מפחיתה 1 מכל אחד משלושת שדות המספר שבשורה הראשונה ומדפיסה את
התוצאות בחלון 16013%6וח1 (מיידי). לאחר מכן היא עוברת לשורה השנייה ומבצעת
את התהליך פעס נוספת.
()6%6רח 10| ח1ו66 5
סו חח 8.00 0 עוסא 5 1 החש וחוס
5 561 וחוס
+חהוזה/ 5 כו 50 ,חס ] 5 זסזהטס6שחו וחוס
+חוז3/ 5 = 50 ,שחהחזבּ/ 5 6וחט5 וחוס
56% 0ח8 ה6ק0 '
צ ואס = 961 56%
הסוח 60166.0 = הס 66 תה 600עו6. 561
= 6קץדזס5זט9%1.6ז
6 וק 0600 301 = 6קץ 0607 961.1ז
6 , , , ,"5חה0ספזסק" ה961.026ז
0 הח 2000 466655
1 - (6!05)6ו=. 51 .8 " :66רתחשוזבּ [הוחוסס" זחוזק. פטטטס
1 - (501.=16!05)5 8 " :6 הרסוה סחספּסום" זחוזק. פטטטס
1 - (16|05)4-.561 8 " :6ו60וחח6וז3 ץ6ח6זזט6" זחוזק. פטטטס
)טסו 561
+חוזק. פטס
1 - (6!05)6ו=. 551 .8 " :66רתחשוזבּ |הוחוסס" זחוזק. פטטטס
1 - (501.=16!05)5 .8 " :6 6רתרשוזה סחבּסום" זחוזק. פטטטס
1 - (561.=16|05)4 8 " :6ו60וחח6וז3 ץ6ח6זזט6" זחוזק. פטטסס
50 0חם
תרשים 3.9 מציג את תוצאות הפעלת השיגרה. התבניות מטבע ועשרוני נותנות תוצאה
זהה, 0.0001. התבנית כפול אינה מסוגלת להגיע לדיוק כזה; היא נותנת
9. סלמטרות רבות תוצאות אלו של התבניות מטבע ועשרוני
זהות. לעומת זאת, כשיש צורך בתוצאה מדויקת, אין די בכך. כשמבצעים פעולה זו על
השורה השנייה שמכילה את הערך 1.00001, התבנית עשרוני היא היחידה שתפיק
תוצאה מדויקת. חישוביס אלה ממחישים את תפקידו המיוחד של סוג המשנה של סוג
הנתוניס עשרוני. עליך להשתמש בו כשדרוש דיוק ברמה שלא ניתן להשיג בתבניות
הנתוניס מטבע וכפול.
<1ם|. | 6 חח ה
-
1 :1516510תב3 1בתבססכת
5-רץרְץרְץְץךץ"ץ,ץ, , , . :510ם16עב3 ק8מג10351ץ
1 :6510תםת16ע3 ששתשתטגוס
1 ::1616010תב3 1בתבססכת
5 1.00000000000 :651₪מםת15ת3 קתנ1סהס1ץ
0 :651₪מת15עת3 טכתשתטוש
₪
6
תרשים 3.9: פלט השיגרה 606חֶוה|ו66ס
השדות: תזכיר, אובייקט 01, תאריך/שעה, כן/לא
סוגי נתונים נוספים כוללים את הסוג תזכיר (סח6י) שמאחסן מחרוזות טקסט
ארוכות מאוד, אפילו יותר מ-255 תוויס (המגבלה של סוג הנתוניס טקסט). סוג
הנתונים תזכיר יכול להגיע עד 64 קייב. באפשרותך לגשת אליו ולכתוב את תוכנו
בקטעים של 64 קייב באמצעות השיטות %חטח6606 ו-אחטח06ח6סקה, בהתאמה.
4 3% תומך באינדוקס של 255 התוויס הראשונים של שדה תזכיר. הדבר שימושי
במיוחד לסוגי הנתוניס היפר- קישור (אחווז6סץה) התלויים בסוג הנתוניס תזכיר.
פרק 3: עיצוב טבלאות 171
אובייקט 015 (0516% 015) הוא סוג נתוניס גדול נוסף. הוא מטפל באובייקטיס
בתבנית בינארית, כגון חוברת עבודה של |66א₪ 67050 או מסמך של 670506
זס\.
סוגי הנתוניס תאריך/שעה (6וחוד/6ז28) יכולים לייצג גם תאריכים וגם שעות. ערכי
תאריך מאוחסניס משמאל לנקודה העשרונית; ערכי שעה מאוחסנים לימינה (עיין
בדוגמאות הקוד של פרק 2 המטפלות בערכי שדה תאריך/שעה).
סוג הנתוניס כן/לא (סא/85+) הוא הקטן ביותר. הוא מופיע באחד משני המצבים:
כן/לא, אמת/שקר (6/=8!56טזד) או מופעל/מכובה 060/חס). סוג זה תופס זיכרון בגודל
בית אחד בלבד.
אימות נתונים
לעיצוב טבלאות עבור מסד נתוניס חסין לתקלות, עליך להבטיח כי רק נתוניס חוקייס
יוכלו להיכנס למסד הנתוניס. 2000 66655 כולל כמה רכיבים שיסייעו לך להשיג זאת.
המאפיינים נדדרש ואפשר אורך אפס
לעיתים רשומה אינה חוקית, אלא אס היא כוללת ערך שדה מסוים, כגון שדה מפתח
ראשי או שדה מפתח זר. קביעת המאפיין נדרש (60זוטף6ח) של מפתח זר בתור כן (65+)
מבטיח כי המשתמשים לא יוכלו להיכנס לרשומה בצד היירביםיי של קשר הגומלין
מבלי שתהיה התאמה לרשומה אחת לפחות בצד הנגדי של קשר הגומלין.
כשנותנים למאפיין נדרש של שדה את הערך כן, 8460655 אינו מקבל רשומה שערך
השדה שלה ווטא. הגדרת המאפיין אפשר אורך אפס (ח9%ח6 | 2670 אוסו|4) מאפשרת (או
לא) להציב בשדה מחרוות באורך אפס (י'"). 466655 מבדיל בין שדה שלא קיבל ערך
כלשהו (ווטא) לבין שדה שאינו מכיל ערך (מחרוזות באורך אפס בשדות טקסט).
המאפיין מסכת קלט
מסכת קלט ((185 זטסח1) היא תבנית שמנחה את המשתמש בנושא סוג ותבנית
הנתוניס הדרושיס. בדומה למאפייני שדה אחרים, מאפיין זה חל על טפסים ודוחות
באמצעות השימוש בשדה.
באפשרותך להשתמש במסכות קלט תקניות, או ליצור בעצמך מסכות קלט מותאמות
אישית. תרשים 3.10 מציג את אשף מסכות הקלט המציג מבחר מסכות קלט של
השדה תאריך/שעה (שחוד/6ו8). באפשרותך להכניס ערכים בתיבת הטקסט ניסיון
0ז ץזד) כדי לראות כיצד תתפקד המסכה במצבים של נתוני אמת.
האשף קובע את קלט השדה ואת תצוגת נתוני השדה, אלא אם תציין גם את המאפיין
תבנית-עיצוב (זפוחזסז) של שדה. כשיישום מגדיר את המאפיין תבנית-עיצוב של שדה,
המאפיין קובע את תצוגת נתוני השדה. המאפיין תבנית-עיצוב אינו משפיע על התצוגה
של ערך, אלא רק לאחר שהיישוס שומר את הערך במסד הנתוניס.
2 ח/ 2000 06655
זה 2ושל 135% וטקח!
?00| 50 3:3 לחבעע וס סח 360065 35% זטסחו הסוחעע
.אספ 15 ]ד 06 56 ,5אזסו 35% 56160660 3 אוסת 566 סד
הססלפ 115% ₪315 שח; =סון6 ,| 135%י] +וםח1 6ח הַחבת6 סד
:00% ] 8ב :135% לוקחן
12 החוד ז'זס5
זה 3:12 שחו ד החו ובשוי
2-9 6 סז
1 3:12:00 שחחוז הח 1
29 6 55
| ו עד
| הפוחו= = | |68ח3 | ו
תרשים 3.10: אשף מסכות הקלט מציג מבחר מסכות אפשריות עבור שדות מהסוג
תאריך/שעה
המאפיינים חוק אימות וטקסט אימות
מאפיינים אלה נועדו להבטיח כי המשתמש מקליד מידע חוקי. המאפיין חוק אימות
(6!₪₪ חספּסו|צ) נועד להגדרת קריטריוני חוקיות לערכיסם בשדה (אס שדה אמור
לקלוט נתונים גדוליס מ-1, למשל, עליך להגדיר את חוק אימות בתור 1<). באפשרותך
להשתמש במאפיין טקסט אימות 0א6ד חהסטגטו|ה) כדי להגדיר הודעות תגובה
שתוצגנה למשתמשיס בעת שינסו להקליד ערך מחוץ לטווח הערכים החוקיים שנקבע
במאפיין חוק אימות.
באפשרותך לציין גסם כללי אימות עבור הטבלה כיחידה אחת. לשס כך, פתת את
הטבלה בתצוגת עיצוב ולחצ על לחצן מאפיינים (₪65זסקסזק) בסרגל הכלים עיצוב
טבלה (חָו065 1800!6). לאחר מכן השתמש במאפייניס חוק אימות וטקסט אימות כדי
להגדיר כלל אימות עבור הטבלה בשלמותה והודעה שתוצג בתגובה להפרת הכלל. כלל
האימות של טבלה מאפשר להגדיר קריטריוניסם שהיקף ההחלה שלהס משתרע מעבר
לשדה יחיד.
אס דרושיס לך מערכי כללים רבים, תוכל לכלול אותס בביטוי כלל האימות באמצעות
פסוקיות 80 (וגם) (אס שדה אמור לקלוט רק מספרים גדוליס מ-1 וקטניס מ-10,
באפשרותך להגדיר את חוק אימות בתור 10> 0חה 1<). לח על לחצן בניה (0ווט8)
הסמוך לתיבת המאפיין חוק אימות כדי לפתות את בונה ביטו"ים
פרק 3: עיצוב טבלאות 173
(8011067 חסו655זקאם). באפשרותך להשתמש בפונקציות המוכללות של 460655 לאימות
שדות טבלה, אך פונקציות מותאמות אישית אסורות לשימוש בביטויי אימות של
טבלה או של שדה. בונה ביטויים מתאים ליצירת אימות טבלה כולל בדיוק כפי שהוא
מתאים לביטויי אימות של שדה.
יצירת אינדקסים
אינדקסיס קובעיס את אופן התפקוד של טבלאות ואת היחסים ביניהן. אינדקסים
מאיצים פעולות מיון, חיפוש ובחירה ברמת השדה. למרות שהשימוש באינדקסים פוגע
בביצועי יישומים בעת קליטת נתונים (מכיון שאינדקסיס דורשים הצבת ערכים בכל
רשומה חדשה), יתרונותיו עולים על חסרונותיו.
אינדקסים תומכים גם בשלמות הקשרים. לפחות אחד מהשדות המקשריס בקשר
גומלין חייב להיות מפתח ראשי או אינדקס ייחודי.
תרשים 3.11 מציג את הטבלה 07068 בתצוגת עיצוב, כשהחלון הראשי וחלון
האינדקסיס פתוחים. הלחצן אינדקסים (65א06ח1) שבסרגל הכלים עיצוב טבלה (6|פג3ד
ח0ו65כ) מאפשר להציג או להסתיר את חלון האינדקסים.
5 )40050 ב]
אוסטחוש פוססד >זפפתן אופו מש 6 |
| רו | א | == = | | ל || 2 | ₪ ₪ | ₪ 8
החנ סמנ
%אפד זו 0ס5= | |
זספוחט 610פץסווח= | |
5060 5060 + 6חוד/806 פטס | |
5060 0פץיסוקוחם 6חוד/806ש ווה | |
56 בי | | 86/6 56 | |
ו סוטטס חנו
506 6 תמ סנ
5 56 <%אסד 6וחב!קות5 | |
רז 6%
ץזחחוזק
5860 .אפטחו פוח5 זס] סוחבח פחד וח ו
.165 10 60 קוו ₪56 חבש 86%חו 5 חמ ות
0 זו
,בחס| 6037365915 64 50 קוו 6 ח63 סחזבח בוו מ (3055ם!!קטוק 0(]) 65/י
חס כ|פח זס] 1= 655ז₪ .5030665 הַחוטטוסחו
ו
7 ]| ][ | ]0 0000000000 אשא=1 .הק תפ=6 ,אס הטספ
תרשים 3.11: החלון הראשי והחלון אינדקסים של הטבלה 070675 בתצוגת עיצוב
החלון אינדקסים שבתרשים 3.11 כולל גס שורה ובה מפתח. בדיוק כמו בחלון הראשי,
שורה זו מסמנת את המפתח הראשי. בחלון האינדקסים נבחר האינדקס 6050006710.
4 ח,/ 2000 466655
אינדקס זה תלוי בשדה 0050000612 שהוא מפתת זר בטבלה 065ז0. האינדקס
זו 605 מקשר בין הטבלאות 605000678 ו-070675 בקשר גומלין מסוג יחיד
לרבים. הוא אינו המפתח הראשי של הטבלה 5ז06זס, ולכן ניתן לשכפל אותו בין
רשומות. שים לב גם כי כמה אינדקסים, כגון 070670866 ו-005%9!6006קח5, אינס
מפתחות של טבלאות אחרות. אחת המטרות ליצירת אינדקס היא האצת הפעולות
המתבצעות בנתוני הטבלה, כגון בחירה לפי תאריך, או מיוןו בהתאם לקוד דיוור.
הערה:
אחת הדרכים להבטיח את תקינות ההגדרות של מאפיין מפתח זר היא
להעתיק את השדה אל הלוח (טַזהססכו!6) של פשססחוצ בצד ה"יחיד" של קשר
הגומלין. פעולה זו מאפשרת להדביק את השדה בתצוגת עיצוב של הטבלה בצד
ה"רבים" של קשר הגומלין. כך ניתן להימנע מהצורך להגדיר ידנית את מאפייני
המפתח הזר.
אינדקס יוצריס באמצעות הקלדת שם בעמודה שם אינדקס (8₪6 א06ח1) בחלון
אינדקסים. לאחר מכן בוחרים שדה עבור האינדקס מתוך תיבת הרשימה הנפתחת,
ובוחרים את סדר המיון של השדה: עולה או יורד. אס לאינדקס שייך שדה נוסף,
בוחריס את שמו ואת סדר המיון בשורה הבאה מייד לאחר מכן. באפשרותך להוסיף
שדות נוספים לאינדקס באופן זהה. כל שדה שתוסיף לאינדקס חייב להופיע מייד
מתחת לשדה הקודס. רק השדה הראשון של האינדקס צריך להכיל ערך עבור העמודה
שם אינדקס. כל השורות הבאות לאחר מכן שעמודת שס האינדקס שלהן ריקה,
שייכות לאותו אינדקס. כל ערך בעמודה שם אינדקס פותח אינדקס חדש.
באפשרותך להגדיר את שלושת מאפייני האינדקס בנפרד. יחד עם זאת, אס תגדיר את
ראשי (עְזבּחחוזק) בתור כן (65+), המאפיינים ייחודי (ס6טשוח() והתעלם מ-5ו!טא (6זסחה9ז
5טא) יקבלו את הערכיס כן ולא, בהתאמה. מפתח ראשי חייב להיות ייחודי לכל
רשומה. לא ניתן ליצור מפתח ראשי בשדה או בשדות שמכילים ערכי ווטא. לטבלה
נתונה יכול להיות מפתח ראשי אחד בלבד. טבלה יכולה להכיל שדות רביםס בעלי
אינדקסים ייחודייסם שמתעלמים מערכי ווטא. אינדקס כלשהו, למעט מפתח ראשי, יכול
להתעלם מערכי |וטוא. הדבר מאפשר להגדיר אינדקס שמבוסס על ערכי שדה שוניס
מ-ווטא. הבחירה להתעלס מערכי ווטא יכולה לצמצס את דרישות האחסון של אינדקס.
תרשים 3.12 מציג את החלון הראשי וחלון האינדקסיס של הטבלה 06088 זססוס
בתצוגת עיצוב. שיס לב שבחלון הראשי נבחר השדה סשסטסזק. הכיתוב שלו הוא
6טסז, והוא אחד משני השדות המגדיריס את המפתח הראשי. השדה השני הוא
סזסזס. שני השדות הס שדות מספר (וסטוחטא) שסוג הנתוניס שלהס הוא מספר שלם
ארוך (06060ח1 8ַח10); אף אחד מהס אינו שדה מספור אוטומטל? (זססוחטאססטה), אך
לעומת ואת שניהס משמשיסם בתור מפתחות זריס המבוססים על שדות מספור
אוטומטי בטבלאות 5 ו-655ט0סזק. שניהס יחד מזהיס באופן ייחודי כל שורה
בטבלה 06085 ז06ז0. אוהי התנהגות אופיינית לטבלאות תיבת הסתעפויות.
פרק 3: עיצוב טבלאות 175
חלון האינדקסיס בתרשים 3.12 מוסיף ומזהה את המפתח הראשי. שיס לב כי הטבלה
5 ז00ז מקיימת גם אינדקסים נפרדים שמבוססים על השדות סופסזס
ו-0000010זק. אינדקסים אלה מקיימיס קישורים עס הטבלאות 07065 ו-65ט0סזס.
שלמות הקשר בין 5ו2689 07061 ו-66ט0סזק מבוססת על אינדקסיס אלה.
|<1ם) - | 6 : 0603018 ז46ז0 פא
|< 5 זז :63א6הח| + 7 ו
זז 50% סח ם₪
הַחו0ח56 סזוסטזוס חנו
הַחו0ח560 סזוסטזוס טוח
הַחו0ח56 סזטסטטסזק זססוחנז
הַהו0ח56 סזסטטסזוק
5טפטזק %א6בח1
5 ץ'זהוחוזק | קסס | | 8
36 .א6בחו 5וחל זס] 6וחבח שח 5 שטסוח
.1605 10 50 קן 056 ח68 86%חו סא 5!ט שזסחהָ 0 0
ספנום 5 |8 וס
885%] קת
]סט בח חל 5פחו06667 6פעל ₪353 פחד סק חסוסקה >
.ו חל חן 55076 ח63 5075 )חל 5פט|ה/י 3!)6/ :]6
.65קץ: 083 חס כ|פת זס] 1= 5פפזק ₪6 ח0300ו1ה/
ד ח0סו130ו|8/י
5 בפזוטססת
(06 065בםו|קטום) פ6/י בת
תרשים 3.12: החלון הראשי והחלון אינדקסים של הטבלה 260₪|!8 ז008 של מסד
הנתונים בחואוח+זוסו
באפשרותך ליצור ולנהל ידנית יחסי שלמות קשרים בין טבלאות מתוך החלון קשרי
גומלין (05ו₪6!800050).
1. הוסף את הטבלאות לחלון, במידה שלא עשית ואת עד כה. לחץ לחיצה ימנית
בחלון, בחר באפשרות הצגת טבלה (80!6ד צוסח5) והוסף לחלון טבלאות לפי
הצורך.
2. צרף את הטבלאות באמצעות קישור השדות המשותפיס של הטבלאות. עשה ואת
על ידי גרירת שדה אחד או יותר מטבלה לטבלה, מצד ה'ייחידיי לצד היירבים'י של
קשר הגומלין.
3 בחר את שורת הצירוף.
לחץ לחיצה ימנית על הקו המקשר ובחר את עריכת קשר גומלין ₪010
305 |6).
6 הח 2000 466655
5. סמן את תיבת הסימון אכוף שלמות הקשרים בין הטבלאות (|6008ז₪600 66זס)חם
שחחטח1). בצע את שינויי העיצוב הדרושיס בקשר הגומלין, כגוו בחירת תיבות
סימון לעדכוניס ומחיקות בהתאס להיררכית הקשריס. באפשרותך גס ללחוצ על
סיוג צירוף (65סץד חוסנ) כדי לבחור אחד משני סוגי הצירוף נוסף על הצירוף הרגיל
הכולל שורות משתי הטבלאות רק כששדות הצירוף בשתי הטבלאות זהים. שתי
האפשרויות האחרות כוללות את כל הרשומות מצד הייחידיי, או כל הרשומות
מצד היירבים'י של קשר הגומלין.
|<]?. בו יצ
!סב ד 63:60 סב ד
5 5 וסוכ | * 5
| [066ח8
סםטססזק | * סש-טטסוק
| 6ן] 7686
]- 6356386 |! (20366 013060 5
]- | =356806 ]26|658 |30 5
| עחבּז-0 ז-6חכ) | :6קץעד קותפחסובופת
|<1?. 5ות5חסו)6!3 )41 =
זכ 36 ד 3060|ס כ סוסב ד
- 5 זסםזס | ** זט
| |68ח
סזוסטזס | *
| .. 6מעד חופב
ון] 7686 -
]- - 6856806 ](1356 6|3550 5
5 46|3050] 26!656] 356306 | ש]
שְחבּ1]-0 ז-6חכ) :שקץ ד קותפחסו6|36ת
תרשים 3.13: שתי תיבות הדו-שיח עריכת קשר גומלין המתארות את קשרי הגומלין של
שלמות קשרים בין הטבלאות 665ט0סזק ו- 2619115 ז06ז0ס (העליונה) ובין הטבלאות 5ז0106
|- 2618165 070615 ((התחתונה) של מסד הנתונים סחואוחצ+זוסו
פרק 3: עיצוב טבלאות | 177
תרשים 3.13 מציג את תיבות הדו-שיח עריכת קשר גומלין שמגדירות שלמות קשריס
בין הטבלה 268818 07061 לבין הטבלה 070675 והטבלה 66ט0סזק. שיס לב ש-66655
מפרש את שתי מערכות קשרי הגומלין בתור יחיד לרביס. קשר הגומלין בין הטבלאות
5 |ו- 261815 זז מגדיר מחיקות בהתאס להיררכית הקשרים. הדבר מאפשר
למחוק הזמנה ואת כל שורות הפריטיס שלה בפעולה אחת. ללא מנגנון זה היה על
היישוס לבצע שתי שאילתות מחיקה, אחת לכל טבלה. קשר הגומלין בין הטבלאות
5 ו- 2618115 07061 אינו כולל מחיקות בהתאם להיררכית הקשרים. במקרה זה,
לא תתבצע מחיקה אוטומטית של שורות פריט בהזמנות כשיתעורר צורך להסיר מוצר
מהטבלה 66ט6סזק. המודל העסקי עשוי לחייב מאמצ מיוחד לרכישת המוצר עבור
ההזמנות הפתוחות שטרס סופקו.
יצירה וניהול של טבלאות באמצעות קוד
לפעמים - ואולי אפילו ברוב הפעמיס - תעדיף ליצור טבלאות באופן ידני. לעומת זאת,
לעיתיס תמצא כי נוח יותר ליצור טבלה באופן דינמי, כמו במקרה שעליך לשמור
תוצאות בינייס לשימוש חוזר בפעולה הבאה. 2000 866655 מאפשר לעשות ואת
באמצעות טכניקות של ססג וגס בטכניקות מקובלות יותר של 20 (₪60055 פה
5). בסעיף זה נתאר יצירה וניהול של טבלאות באמצעות טכניקות ססג. גישה זו
תאפשר לך לנצל את הייתרונות של חידושי הטכנולוגיה העתידית של אספסזסווא לגישה
לנתוניס.
לאחר שיוצריס טבלה באמצעות קוד, לעיתיס קרובות יש צורך למלא אותה בנתונים.
אף כאשר יוצריס טבלה בדרך אחרת, מילויה בנתוניס באמצעות קוד הוא רעיון
מצודד. ניתן לנצל מקורות נתוניס רביס כדי למלא טבלה של 466655 בנתוניס. בסעיף
זה נסקור בהרחבה את השימוש בטבלה נוספת של 466655, טבלה של 5666 (בתור
דוגמה למקור נתוניס מסוג 1549), ומקור נתוניס 086. נלמד גם כיצד למלא טבלה
של 466655 בנתוניסם באמצעות ספקי מסד נתונים 015 (8כ 015) והאובייקט הפנימי
0 של 8600585, המאפשר ליצור קישור אל מקורות נתוניס מרוחקיס בצורה קלה
ופשוטה. בניגוד לשימוש ב- ₪8 015, 0600 הופך את מקור הנתונים המקושר לזמין
מתוך החלון מסד נתונים (ס55הַ8ּזכ).
יצירת טבלה
כדי להוסיף טבלה באופן דינמי, כל שדרוש לך הוא 420 - הספריה אססג, ליתר דיוק.
בדיוק כפי שיש לתת שס לטבלה, בין אם יוצרים אותה באופן ידני או דינמי, יש גס
להוסיף לה עמודות ולצרף אותה לאוסף פ6וט8ד.
השיגרה 80/6 118661.068|7 שלפניך, יוצרת טבלה באופן דינמי. השיגרה פותחת בהכרזה
על האובייקט 6869!00 והאובייקט 6!פ18. האובייקט 68₪|04 הוא מכולה של סכמת
מסד הנתוניס, כולל האוסף 189!65. לאחר מכן, השיגרה יוצרת מופע של האובייקטיס
0 ו-180!6. השיגרה נותנת לטבלה החדשה את השס 52ז6פחסווץ!וחחה= ומוסיפה
8 הח 2000 406655
לה ארבע עמודות באמצעות ארבע שיטות 300600 מקוננות בתוך משפט 6תם...חזו/ץ.
כל אחת מהשיטות 6חס6קקה כוללת שס עמודה, קבוע שמגדיר סוג נתונים וארגומנט
אורך, במידת הצורך. כל אחד משלושה שדות הטקסט (אלה שנוצרו על ידי הגדרת סוג
הנתוניס ז80/87//608) כולל פרטיס על גודל השדה. השיגרה מסתיימת בצירוף הטבלה
המושלמת לאוסף 65!ט8ד של הקטלוג ובסגירת האובייקט 6803|09.
()30!6 ד61.0681> 13 פט5
0 5 6801 וחוס
6פהד. אסכה ₪5 1וס הזוס
6 ז0) 00[6605 61676066
0 6 = 6861 56%
6600 ה 0[660.00ק+ח6 6 = חה0ס 660 ה ה 0ס660עו6ה. 68%1
6 6 = 0|1ז 56%
.5ח !60 0חסקקה3 300 006 סוחהבּא ד
1 רסו
"00752 ח6זץ|והחה=" = 6וחהּ.
30 ,"31" סהסמקה.5חוחטוס6.
0 ,זהח/זה/30 , "סההח-" ס0ה6סקה.5חוחטוס6.
5 ,30/3/87 , "סח |" סהסקקה.5חוחטוס6.
0 ,30/37/0087 , "הסוס6|3" סהססקה.5הותטוס6.
האוצ 0חם=
ח0ו60!!660 30|65 ד 60 80!6+ שוסח סחסססה ד
.6 68%8!00 17606 סחבּ'
1 0ח6סכ.65|סב ד. 6861
סא = 0011 56%
סט5 0חם
הטבלה שלפניך מציגה את סוג הנתוניס ואת סוגי המשנה המיוצגיסם באמצעות קבועי
המחלקה וחטחש6כץ0087 של הספריה אססג.
קבועי סוג עמודה וסוגי הנתונים הידניים השקולים להם
שס9| 60 ממע(טשחם) 00000
6טטססחהּ מספר - כפול (6!טטסס
000 מספר - קוד העתק משוכפל (כ1 חסוטפּסו!60)
פרק 3: עיצוב טבלאות 179
בכ --
מספר - בת (5ו/5
סט ד
הטבלה מציגה כמה נקודות מעניינות. ראשית, סוג הנתוניס היפר- קישור שקול לסוג
הנתוניס תזכיר מנקודת מבט של תכנות. שנית, לא קייס סוג נתוניס נפרד לשדות
מספור אוטומטי בספריה אססג. אס הקוד בודק את המאפיין 6מצד (סוג נתוניס) של
שדה מספור אוטומטי, תקבל את הערך ז0600ח801. ערך זה אינו משקף את טבעו
הדינמי של סוג הנתוניס מספור אוטומטי. 4 26, לעומת זאת, כולל סוג נתוניסם נפרד
שנקרא 00ח106, שמקביל לסוג הנתונים מספור אוטומטי (לקבלת מידע נוסף אודות
השימוש בסוג נתונים וה, עיין בפרק 2). הסעיף יייצירת טבלה באופן ידנייי שהופיע
קודס לכן בפרק, מתאר מילות מפתח נוספות לניהול שדות מספור אוטומטי באמצעות
קוד.
הימנעות מהחלפת טבלה
בעת הוספה ידנית של טבלה למסד נתוניס, קל לבדוק אס שס הטבלה קיים כבר. אס
תנסה בשוגג לשמור במסד הנתוניס טבלה בשס של טבלה שכבר קיימת, 06655 יוהיר
אותך מכך וישאל אס ברצונך לדרוס את הטבלה הקיימת. לעומת זאת, אס שיגרה
מנסה ליצור באמצעות קוד, טבלה בשס של טבלה קיימת, 84 406055 נעצר ומציג
שגיאת זמן ריצה. עליך ליצור מנגנון לכידת שגיאות במצב כזה. קיימות כמה גישות
לטיפול במצב זה. השיטה ההולמת ביותר תלויה בתדירות שבה תיצור טבלאות
חדשות.
השיגרה 80!67768%006 ד|068. 18661 שלפניך מבוססת על גישה קלאסית ללכידת
שגיאות. ראשית, היא מאפשרת את השימוש בשיגרה מותאמת אישית לטיפול
בשגיאות, כך שהתוכנית יכולה לנהל שגיאות. המשפט זסזזם חס בתחילת השיגרה
אחראי על כך. לאחר מכן, השיגרה מנסה ליצור ולצרף את הטבלה 82ז6טוחסוץ!ווח8=
(בדומה לשיגרה 9016 18661068|1!). אס הטבלה קיימת כבר בקטלוג, 84 8460655 יוצר
שגיאה (2147217857-) ומעביר את השליטה לרוטינת הטיפול בשגיאות
!3 ד. לוגיקת לכידת השגיאות מחפשת את השגיאה ייכבר קייסיי. אס היא
0 הח 2000 406655
מזהה אותה, היא מוחקת את הטבלה הקיימת ומחזירה את השליטה לשורה שגרמה
לשגיאה. הדבר מאפשר לתוכנית לשמור את הטבלה החדשה ולצאת מהשיגרה בצורה
מסודרת. אס שגיאה אחרת גרמה לתוכנית לעבור דרך רוטינת הטיפול בשגיאות,
השיגרה מדפיסה את מספר השגיאה בחלון 16013%6ז1₪1 (מיידי) בטרס תסתייס בצורה
מסודרת. לא יקרה מצב שהשיגרה תסתייס בהצגת הודעת מערכת.
()ז08%606ז7 3016 ד61.0681> 13 פט5
3 ד 0 ד60 זסזזם הס
0 5 6861 וחוס
6סד .אסכה ₪5 1ו חחוס
6 ז0) 00[6605 6)676066'
09 שא = 6801 56%
הסוס .סח = הס 66 ה 600 /ו6. 6861
6סהד סא = 0|1ז 56%
.חח !60 0חסקקה3 300 806 סוחהבּא ד
1 סו
"06752 ח6זץ|והח8=" = 6וחהּו).
30 ,"31" 0הסמקה.5חהוהטוס6.
0 ,30/3 , "סההח-" סה6סקה.5חוחטוס6.
5 ,30/3/87 , "סח |" סהסקקה.5חוחטוס6.
0 ,ז8ח/ 30/3 , "חהס6!3" סחססקה.5חוחטוס6.
האוצ 0חם=
.66 6808|00 1766 ה ה60!!6600 30165 ד 60 90|6+ שסח הסחהסכקה ד
1 0ח6סכ.65|סב ד. 6861
ףסא = 0861 56%
.6 זז 66 זואם '
ד
0 זוא
ד
60 "5ז|א6 צְ680ז!3 6|סה+" ספזד '
.656 80 9016 61606 ד
החד 2147217857- = זססוחטא.זזם +[
"0052 רח6זץ!| רה" 65.61606|סה ד. 6861
56
+ ₪0
.6 800 5זסז ז6ח0% זס? 0618115 )חוזק '
הסטק6567.זז= ,זספוחטא. זחם +חוזק. פטססס
306% ך 6506
50 06ח=
פרק 3: עיצוב טבלאות 181
החלפת טבלה
אם יישוס מסד הנתוניס יוצר באופן קבוע את הטבלה 52ז6טחחסואץוווחא8=, השיגרה
עלולה לגרוס לשגיאה מהסוג ייכבר קייסיי בכל פעם שמפעילים אותה. במצב זה,
השיגרה תפעל מהר יותר אס תנסה למחוק את הטבלה הקיימת בטרס תצרף את
הטבלה החדשה. כך ניתן להימנע מהצורך לטפל בשגיאה. עדיין יש צורך בשגרת טיפול
בשגיאות למצביס שטבלה אינה קיימת, או למצבי שגיאה אחריסם. השיגרה שלפניך
כותבת את מנגנון הטיפול בשגיאות כשמוחקיס ללא תנאי טבלה בעלת שס זהה לזו
שמנסים לצרף למסד הנתוניס.
12
()8%60672-)ז7 3016 ך|068 113661 5
זט ד 0 607 זסזום חס
0 5 6861 וחוס
6סהד.אסכה ₪5 1וטל הזוס
86 0 00[6605 61676066 '
0 שו6) = 0801 56%
הסוח .סח = הס 66 חח 660 /ו6. 6861
6סהד סא = 0|1? 56%
.חח !60 0חסקקה3 300 906 סוחהבּא ד
1 סו
"052 ח6זץ]ורח =" = 6וחבא.
30 ,"זוה" 0הססקה.5חוחטוס6.
0 ,ההזה /30 , "הח" סה6סקה.5חוחטוס6.
5 ,30/8/08 , "סח |" סהסמקה.5חוחטוס6.
0 ,ז8ח/ 30/3 , "חסו6|3" סחססקה.5חוחטוס6.
האוצ 0חם=
. (6ז6ח] 15 6 ₪) %80|6 010 6+ 6|6%6כ ד
.6 6 1766 300 ,6חס עצסח 06 סהסקכה ד
"00752 ח6]ץ!והחה-]" 65.26!6%06|סב ד. 6861
1 0ח6סכ.65|סה ד. 0861
9וח%ס = 0861 56%
.6 זז 66 זואם '
:זט ך
סטפ +ואם
ד
סז "ח60|!6600 חו %סח 665[סס" ספזדי
.6ח!| %א6ח 8% 0506 ד
החד 3265 = זססותטא.זזם +
+ 6506
+ 0חם
.6 0חה פזסזזס ז0ח0% זס+ 0618115 זחוזק '
הסטק6567.זז= ,זספותטא. זחם +חוזק. פטססס
30 ד 656
סט5 0חם
66655 2000 8
שגיאה 3265 הנזכרת בשגרת הטיפול בשגיאות של 30!65776806(06/2 06317 |₪1866,
היא תוצאה של הניסיון למחוק אובייקט שלא נמצא באוסף. השיגרה
02 30|0 ד|18661.068] פשוט לוכדת את השגיאה וממשיכה להתבצע לאחר
השורה שגרמה לה. כל שגיאה אחרת גורמת לסיום מסודר של התוכנית, כשהסימן
היחיד לשגיאה הוא מספר השגיאה ותיאורה בחלון 6013%6וחחו1.
עבודה עם אינדקסים
באפשרותך להוסיף גם מפתחות ראשיים, אינדקסים וקשרי גומלין באמצעות קוד.
תוכל להגדיר מפתחות ראשיים ואינדקסים בשדה יחיד או בשדות רבים.
יצירת מפתח ראשי
הוספת מפתח ראשי או אינדקס לטבלה כמוה כהוספת טבלה חדשה לקטלוג. ראשית,
עליך ליצור הַקְשָר שאליו יתוסף האינדקס, כולל קטלוג וטבלה. שנית, עליך להגדיר
את מאפייני האינדקס. אלה עשוייסם להשתנות בין אינדקסים ומפתחות ראשיים.
שלישית, עליך להוסיף עמודה לאינדקס ולאחר מכן לצרף את האינדקס החדש לטבלה.
אס חלה שגיאה, כגון אס האינדקס כבר קייס, עליך לתת מענה הולס לכך. השיגרה
6 שלפניך יוצרת מפתח ראשי באופן דינמי.
()ק00 סט5
0 אכ צוס 5 6861 וחוס
6סהּד.אסכה צוסא ₪5 011 חזוס
אססח1. אסכה צוסא] 45 61 חזוס
. 6 ץ זוז שוח 66 סז +א6חה60 8 0768066 '
הסוח 660.60[ס קזח = הס 66 חח 660 /ו6. 6861
( "0052 6 /ץ|ו רה" )!סה ד. 681 = 011+ 56%
.סק ץ6א ץזהווזק 06 56% '
1 וו
"ץסא זה הוזקץו]" = 6וחהבּא.
סד = ץ6אשזהוחוזק.
6 = 6טסוחש.
צוס!|1!50158טא801706 = פ!וטאאססחז.
חזו 0חם
.6 סז א6סחו 0ח3 אססחו 60 חוחט|ס6 סחסססה ד
"ס1החהּ-" חהסקכה.5הוט!ס6. 1אס
1 החסקכה.65א06ח1. 1!ט+
| 66 5.
9חוה%ס = 0861 56%
סט5 0חם
פרק 3: עיצוב טבלאות 183
השיגרה פותחת בהכרזה ויצירת מופע של האובייקטים 6808|00, 80/6 ו-א06ח1
(ליצירת מפתח ראשי יש צורך בכל שלושת האובייקטיס). שיס לב שלא קייס אובייקט
מפורש עבור מפתח ראשי. בשלב הבא, השיגרה מגדירה את ההקשר להגדרת מפתח
ראשי חדש. השיגרה מגדירה את המאפיין ח0ו660חח660ע0/ של האובייקט 6809|00 כך
שהקטלוג יצביע על מסד נתוניס מסויס. לאחר מכן היא מגדירה את הפניית הטבלה
לטבלה שנמצאת במסד נתונים זה. הפניה וו היא הטבלה שאליה תוסיף השיגרה
שכתבת את המפתח הראשי החדש.
כעת, השיגרה מגדירה ארבעה מאפייני אינדקס. הראשון הוא שס המפתח הראשי. הוא
מופיע בתור ערך בעמודה שם אינדקס (6וח8! א06ח1) בחלון אינדקסים (65א06ח1) של
הטבלה. שלושת המאפיינים הנותרים מייחדים את המפתח הראשי מאינדקס פשוט
כלשהו. עליך להקפיד ולהגדיר מאפיינים אלה כפי שהם מופיעים בשיגרה 800% בעת
יצירת מפתח ראשי.
בשלב וּה, מפעילה השיגרה שתי שיטות 0סחס6סקה. הראשונה מצרפת את העמודה פ1וח8=
מתוך הטבלה 52ז6וח6!/ץ!ווחא אל האינדקס. השיטה השנייה מצרפת את האינדקס
לטבלה. לבסוף, השיגרה מגדירה את האובייקט 68004 בתור פַחוחזסא, ועל ידי כך
משחררת את המשאביס ששימשו ליצירת המפתח הראשי.
לעיתיס קרובות יש צורך בשדה שסוג הנתונים שלו הוא מספור אוטומטי, מספר שלס
ארוך או טקסט, שישמש כמפתח ראשי. דבר וה משפר את ביצועי מסד הנתוניס
בהשוואה למפתח ראשי המבוסס על שדות רבים. לעומת זאת, יש מקריס שהשימוש
באינדקס המבוסס על שדות רבים הגיוני יותר במונחים של אופן השימוש בנתוני
הטבלה. במקרה שאינדקס מבוסס-שדות רביס הולס את הצרכים, כל שעליך לעשות
הוא לצרף יותר מעמודה אחת לאינדקס בטרס תצרף את האינדקס לטבלה.
בדוגמה לעיל, ניתן להחליף את השורה:
"ס1וחה" 0חהסססה.5חוחטוס6. 1אס
בשורות הבאות:
"סוחפח |" סחה6סס.5חוחט!וס6. 1אס
"6הההח-" 0ה6כס.5חוחט!וס6. 1אס
"ח0ו₪6|30" 0חהסססה.5חוחט!וס6. 1אס
שורות אלו מגדירות מפתח ראשי בשלושה שדות במקוס בשדה אחד. השיגרה 007%
יוצרת מפתח ראשי המבוסס על שדה יחיד; החלון אינדקסים הראשון בתרשים 3.14
מציג את תוצאת פעולת השיגרה 4002%. החלון השני בתרשים מציג את תוצאת פעולת
השיגרה 400063 - שיגרה זהה ל- 8005%, למעט השינוי בשורות הקוד (שתי השגרות
מופיעות בתקליטור המצורף לספר, בחלק של פרק 3). לא ניתן לקייס אלא מפתח
ראשי יחיד בזמן נתון, ולכן עליך להסיר ידנית את המפתח הראשי בין הקריאה
לשגרות 002% ו-₪00263.
4 הח 2000 466655
|| ג 2
סז אבה[
5 ץ'זבחוזק
5 שטסוח!
טש 6זסחהז
ח36= .א6בחו וח זס] סהזבח שחד
.116/05 10 50 קט 56 ח63 6%בחו
הַהוח5 סוחבח]
הַחו0ח56 סובה
הַהו0ח56 חסובוס
5זטסזוס 6%בח1
ץ'זבחווק
ח36= .א6בחו פוחל זט] 6וחבח שחך סווחו
.116/05 10 50 קט ₪56 ח63 6%בחו 5טו 6זסחבז
תרשים 3.14: חלונות אינדקסים לאחר הפעלת השגרות 0026 ו-4007%3
השגרות 002%( ו-₪007%3 יכולות להיכשל מסיבות אחדות. השיגרה 0078577 שלפניך
לוכדת שתי שגיאות: מפתח ראשי שכבר קיים (קוד שגיאה 2147467259-) וטבלה
שכבר נפתחה (קוד שגיאה 2147217856-). כפי שנאמר, לא ניתן להוסיף מפתח ראשי
חדש אס קיים כבר מפתח ראשי. בנוסף, לא ניתן לשנות את מבנה האינדקס אס
הטבלה פתוחה.
()זזם 400% סט5
ץוםאק 6070 זסזזם הס
0 צוס)] ₪5 6841 חחוס
6סהּד. אסכה אסא 5 1!טז חזוס
אס סח אסכה צוסא 5 1אכ וס
1 25 זסטוחטצו חחוס
ץ6א ץזה וז ש6ח %6 זסז +א6חה60 8 076806 '
הסוח .סז קזח = הס 66 ה 600 /ו6. 6861
( "06752 רחש ץ11רח3- ")30165 68%1.7 = 0|1+ 56%
פרק 3: עיצוב טבלאות | 185
.סק 86 ץזהווזק 06 56% '
+חוסק 660/67 38 6זו660סזכ 06 65עו (6|טהוזהעאקז56) |6סב! סחד '
. ץ6א ץזהוחווק 8חה150א6 ץ|פטסוטסזס 8 וחסז '
:|
1 וו
"ץסא זה הוזקץו]" = 6וחהּא.
סד = ץ6אשזהוחוזק.
6 = 6טסוחש.
צוס!|1!50158טא301706 = פ!וטאאססחז.
האוצ 0ח5=
.6 סז א06חו 0ח3 אססחו 60 חוחט|ס6 סחסססה ד
"ס1החהּ=" החהססכה.5הוטוס6. 1אס
1 החסככה.65א06ח1. 1 וט
.זז זואם י
:ץ|אםז אק
9וח%ס = 0861 56%
סטפ +ואם
:זו אק
6 חו 1680 80!6+ זס1 6006665 '
חס ד 2147217856- = זססותטא.זזם +
= 8 "פוח ד .56ש חו ץמ ח6זט6 52זסטות6וזץ!וחזה=" א0 150
".610560 06 0ף %80|6 06 65זוטף6ז חסחסהזסקס "
5 60| 66 ץזהווזכן זסז 006685 '
חסחד 2147467259- = זססוחט.זחם 5|5611
5 הז 1אכ ה806ם זס=
הסח ד סטד = עסאץזהחוזק. 1אכ זז
(ז6טותטו\ו) 65.6!6%6אס6ח1. 1וטץ
5606 6506
+ 0חם
1 + זססוחטאו = זסטוחטאו
1 )אסא
5 זס 0 זסז 5קזד '
6
"+60 פָטם זס? שססחוצו 6018%6ח1 הסכ0" א5080וו
חססק656.זו= ;זססוחטא. זחם זחוזק. פטטסס
%ואם זא 6506
+ 0חם
סט5 0חם
חוצ מכמה חריגות, הלוגיקה של השיגרה ז₪7אק00 והה ברובה לזו של אק00.
00 מאפשרת להפעיל תחילה רוטינה לטיפול בשגיאות באמצעות המשפט חס
זסזזם. אזור ההכרזה כולל משפט חום חדש למשתנה מסוג ז0606ח1. מנגנון לכידת
השגיאות מנצל משתנה זה בתור אינדקס בלולאה שעוברת על האוסף 65א086%ח1 של
הטבלה.
6 הח 2000 406655
מנגנון לכידת השגיאות של 007857 מתחיל את פעולתו בתווית זזםאס. משפט
חסחד...ז בודק בשלב ראשון אס הטבלה פתוחה. אס הטבלה פתוחה, השיגרה מציגה
תיבת הודעה שמסבירה את הבעיה ומציעה פתרון לפני שתסתייס בצורה מסודרת.
הפסוקית ]₪561 מזהה את קיומו של מפתח ראשי. במקרה זה, הרוטינה ממספרת את
האינדקסים בטבלה, עד שמגיעה לאינדקס שהמאפיין שסאעזפּוחוזק שלו מוגדר בתור
6ז. כעת היא מוחקת את האינדקס ומחזירה את השליטה לשלב ההתחלתי של
הגדרת מפתח ראשי חדש. פעולה זו הכרחית, מכיון שהשגיאה מבטלת את ההגדרות
הקודמות. אס הטבלה אינה פתוחה וגם לא קייסם מפתח ראשי כלשהו, השיגרה כותבת
את מספר השגיאה ואת תיאורה לחלון 60]3%6ו₪ו1₪ לפני שמסתיימת. מוצגת
למשתמש תיבת הודעה שמורה לו להציג את החלון 11661316 לקבלת פרטי סיבת
השגיאה.
יצירת אינדקס
הוספת אינדקס פשוט לטבלה אינה שונה בהרבה מהוספת מפתח ראשי. ההבדל
העיקרי הוא שאין מגדיריס את המאפיין שְסַאץזפחזוזק בתור 6טזד (כברירת מחדל, ערכו
הוא 8|56=). השיגרה א80010 שלפניך דומה במבנה שלה ל-א4002%. מלבד וה שאינה
מגדירה את מאפיין המפתח הראשי, ההבדל העיקרי ביניהן הוא שהיא קובעת
מפורשות סדר מיון לאינדקס. השיגרה ממיינת את הטבלה לפי העמודה 8012" בסדר
יורד, ועל ידי כך גורמת לה להציג קודס את הרשומות המאוחרות (בהנחה שרשומת
בעלות ערך כ1וח8= גדול יותר מתווספות לאחר רשומות קודמות). כשאתה קובע את
סדר המיון, עליך לציין את מספר העמודה שעליה הוא חל. מספור העמודות הוא
מבוסס-אפס (מספר העמודה הראשונה הוא 0).
()א0010 פט5
0. אכ צוס 5 6861 וחוס
6סהּד. אסכה סא 5 1!ס+ חחוס
אססח. אסכ צוס)] ₪5 1אסו חחוס
.א06חו ששח %06 107 +6%ח60 8 0768066 '
חס ות .קת = הס 66 חח 660 /ו6. 6861
( "0052 16 /ץ|ו רה" )!סה ד. 681 = 011+ 56%
סכ א06חו 06 56% '
1 ו
"ז79ו-35015 1" = 6וחהּ).
סד = 6טסוחש.
צוס!|50158!|טא06ח3011 = פווטצ]אססחז.
הז%ו\ 0חם
פרק 3: עיצוב טבלאות | 187
זז +50 65 56% 0ח3 אססחו 60 חוחט|ס6 סחסססה ד
.6 0ף א06חו ששח סחסססה ד
"ס1ההּ=" סחה6סקה.5הותטוס6. 1אסו
3050065660 = ז%0700זס5. (5)0הוחט!ס6. 1אסו
1 סחסקקה.65א06ח1. 1!ט+
.5 מ6סחת |
9וה%ס = 0011 56%
50 0ח=
אכלוס טבלה באופן דינמי
לאחר שעצבת טבלה והגדרת את האינדקסיס שלה, עליך לאמ אחת משתי גישות כדי
למלא אותה בערכים. כשנתוני הטבלה המיועדת לאכלוס נמצאיס בטבלה אחרת,
באפשרותך להגדיר ערכת רשומות בטבלת מקור הנתוניס ובטבלה החדשה. לאחר מכן
עליך לנווט בשתי ערכות הרשומות בצורה מסונכרנת תוך העתקת רשומות לטבלה
החדשה באמצעות השיטה 0086 (גישה זו עוברת בלולאה על ערכת רשומות, ולכן
אינה פתרון מעשי לטבלאות גדולות מאוד). הגישה השנייה היא שימוש ב-501 להוספת
ערכיס לטבלה החדשה, תוך התבססות על ערכי הטבלה המקורית. גישה זו אינה
מבוססת על ערכות רשומות או השיטה צו200166, אך היא דורשת אובייקט 0ח8חחחס6
אחד לפחות.
שימוש בערכות רשומות
הגישה הראשונה מומחשת באמצעות השיגרה הבאה, ודורשת אובייקט 6066000
ואובייקט 68%9|00 נוסף לזוג ערכות רשומות (86607056₪). האובייקט 68₪|09 ושתי
ערכות הרשומות חולקיס אובייקט ח6600חחס6 משותף. אובייקטיס רבים מאוד
חולקים ביניהסם חיבור משותף, ולכן יש טעס להצהיר על אובייקט 6060000
ולהפעילו, לכל אחד מהאובייקטיס האחריס הזקוקיס לו.
()65ט|00/3 פט5
ח0ו66 08.60 ₪5 1 חהחס חחוס
0. אכ צוס 5 6861 וחוס
צעשוסא 5 561 חחוס
צעשוסא 5 562 וחוס
(0152 רח6 זץ|ו רה ]) 9016 ושח פחוסה!טוקסק זסז 6%%ח00 56% '
הסוח 060.60 ק 66 = 1חחס 56%
1חס = 66000 חח660ע60. 68%1 56%
1חס = ₪ה6607006600ע60. 561 56%
1ח6 = ₪ה92.60/6000706600ז 56%
8 הח 2000 406655
.5 |החוףוזס 30 שו6ח חס 08560 660705605 הסקס '
3002686560 , ,"652 רחש זץ!ווח3-" ה6ק561.0ז
006 ,6 5ווחוסק0א6ס וה
,ץ! הזוס חק 300 ,1 הח6 ,"5זסם רחס ץ!ווחה-" ה562.006ז
06 ,ץחה 6800 א6ס וה
.6 סח 0 |החופוזס וחסז 600 60 6607056%5ז חפטסזח% קססן '
1 חס
52.0 וטח סס
0
(16!05)0. 562 = (6!05)0ו=.
(16|05)1-.75%2] = (16|05)1=.
(75%2.16|05)2] = (16|05)2=.
(16]05)3. 502 = (6!05)3ו=.
6 :
]אס סטסו.
עסו 502
קסס |
ה)ו\ 0חם=
טפ 0ח=
לאחר ההצהרה על אובייקטיס והקצאת החיבור לאובייקטיס שישתמשו בו, השיגרה
פותחת ערכות רשומות בטבלה המכילה את הרשומות המקוריות, 5זסטוחס6!ץ!וחחה=,
ובטבלה החדשה, 52זסטוח6ווץ!ווחהת.
הקוד שלעיל מציג שתי גישות להקצאת חיבור לערכת רשומות. באפשרותך להקצות
חיבור למאפיין ח06600ח660ע60 של ערכת רשומות - 400%3/065 משתמשת בטכניקה
זו בטיפול ב-501ז. בגישה השנייה, תוכל להפנות אל אובייקט ח6600חח60 בשיטה ח6סס
של ערכת רשומות - השיטה ח006 הפועלת על 5₪ז משתמשת בטכניקה זו. ניתן לפעול
בכל אחת משתי הגישות בעבודה עס שתי ערכות הרשומות. השיגרה 65ט|400/8 כוללת
שורת קוד שמראה כיצד להגדיר את המאפיין ח06600ח660ע6ה של 502 באמצעות
פעולת הקצאה. שורה וו מסומנת בתור הערה. אס תחליט לנקוט גישה זו בטיפול
ב-15%2, תוכל להסיר את ההפניה אל 1חח6 בשיטה ח6ס0 הפועלת על 52ז.
המשפט 0...])000ם העובר על הרשומות של ₪פז מקונן בתוך המשפט 6תם...וזוצ
המתייחס אל 19%1 (עקב הפניות הרבות אל 1561 בלולאה, משפט זה מאיץ את פעולת
הקוד ומשפר את קריאותו). בתוך הלולאה, השיטה 800%68₪ מאפשרת את הקצאת
הרשומה הנוכחית ב-50ז אל 561ז. השימוש בשיטה 0008%6 להשלמת פעולת השיטה
0016 הוא אופציונלי (הדוגמה מציגה אותה בצורת הערה, ולא כחלק פעיל בקוד).
לאחר הוספת הרשומה הנוכחית מ-1502 ל-1551, השיגרה מתקדמת לרשומה הבאה
ב-502ז. אין צורך להתקדם גסם ב-961ז, מכיון שמעבר הלולאה הבא יוסיף רשומה חדשה
בסוף ערכת הרשומות 5%1ז. הלולאה ₪0 ממשיכה להתבצע עד הגיעה לסוף הקובצ
(0₪ם) של 902ו.
פרק 3: עיצוב טבלאות 189
שמירת ערכת רשומות
לאחר שאיכלסת בערכיס את ערכת הרשומות והטבלה שעליה היא מבוססת (ואולי אף
עדכנת אותן), באפשרותך לשמור עותק של ערכת הרשומות. עושיס ואת באמצעות
שיטת ערכת הרשומות החדשה 586 בהתאם לסוג הקובצ שלה, המבוסס על תבנית
בינארית קומפקטית. 2000 860655 מציע כמה דרכים לשמירה ואחזור של ערכות
רשומות באמצעות תבנית חדשה זו והַסֶפּק המתאים שלה. השגרות שלפניך שומרות
ערכת רשומות על ידי שימוש בסמן לקוח (זס5זט₪ זחפו|6), ולאחר מכן פותחות אותה.
()58/6₪51 פט5
זז 58/6351 6070 זסזזם חס
אסא 5 561 וחוס
ה זס5זט6 %ח6ו|6 חסמס '
300560 = ח06800]זס5זט6. 561
,660.000066000[סזק)ה6זט6 ,"52זס רחס זץ!והזה=" ה6ק 561.0
06 01 ,056
055 , " 0ב 053 ס רחש ץורח :6" 58/6. 561
:א 565
טפ זואם
565
זסזזס 681505 ץְ680ז|ה 8|6 קפזד '
חח ד 2147286960- = זספוחטא.זזם +[
"40 53 רת6זץ!וחחם= :6" |ווא
656
+ 0חם
.סז ]066 זס+ אואם '
= ".6130005065 זסזזס זס1 אוססחועט 6018%6וחרח1 צוסו/" אס ₪5
"2000 66655 6700508ו1] פחווחוחהזפסזק" ,וה6ט6פצ
א 365 6506
סט 0ח=
() 51 58/60ח6ק0 פט5
עס ₪5 561 הזוס
.6 6607056%] 58/60 חסכס '
"20515 15 = זט 0ועסק" ,"3050 53זס 6 וזץ|וחה- :6" ה6ק 561.0
6071608 וחזו1ח60 %0 0זח! 56166060 +חוזק '
36 (16|05)0-.561 8 " = " .8 6חחהא. (6|05)0ו=. 561 זחוזק. פטטסס
סט5 0חם
חלקה הראשי של השיגרה 58/6851 פותח סמן לקוח ומציב בו ערכת רשומות. לאחר
מכן הוא מפעיל שיטה 58/6 של ערכת רשומות. שמירת ערכת רשומות לקוב אינו
תהליך מורכב יותר מכך. הקוב 6ד0) (8₪ז1890!60 2868 הַססַחַ8ע6) הוא מינימלי
בגודלו (1%8 בלבד בגירסה של מחבר הספר). יש בכך חיסכון משמעותי לעומת אחסון
ערכת רשומות בצורת טבלה בקובף מסד נתוניס.
0 הח 2000 406655
אס אתה רגיל לשמור ערכת רשומות לאחר עדכונה, השיטה 58/6 תיכשל אם לא
תמחק את שס הקוב הישן, או תיתן שס חדש. לחילופין, באפשרותך ללכוד את
השגיאה, למחוק את גרסת הקוב הישנה ולאחר מכן להפעיל שנית את השיטה 58/6.
שגרת הטיפול בשגיאות של 58/6651 מדגימה טכניקה זו.
באפשרותך לפתוח ערכת רשומות שמורה באמצעות שתי שורות קוד בלבד, כפי
שמדגימה 58/6651ח6ק0. השורה הראשונה מצהירה על אובייקט 86607056 ויוצרת
מופע שלו. השורה השנייה מפעילה את השיטה ח6ק0 של ערכת הרשומות. המקור שלה
הוא הקובצ ששמרה השיגרה 58/6₪51, וארגומנט החיבור שלה מפנה לספק 5061515%!!ו
הכלול בחבילת המוצר 2000 166655. שורה שלישית מדפיסה את תוכן השדה מתוך
ערכת הרשומות כדי לאשר שהמידע שבקוב תקין.
שימוש ב- 5091
רעיון המעבר בלולאה על ערכת רשומות, רשומה אחר רשומה בזמן נתון קוסס
למפתחים רבים עקב מוחשיות הפעולה. אכן, קל לדמות את המעבר מרשומה לרשומה
ב-5902] ואת ההוספה של רשומות יחידות ל-5%1ז. יחד עס זאת, יעיל יותר לבצע את
המשימה בעזרת קוד !501. בנוסף, הגישה המבוססת על 501 זקוקה לאובייקט
0חחוח0ס6 אחד בלבד מתוך הספריה פססכה. גישת המעבר בלולאה מסתמכת על
אובייקטיס אחדיס הלקוחים מתוך הספריות 8ססכג ו-אספג יחדיו. אס קשה לך
לכתוב קוד 501, באפשרותך לנצל את מעצב השאילתות התזותי של 460655 לקבלת
גירסה ראשונית ותפקודית של תחביר 501 תקין לביצוע משימה, כגון הוספת רשומות
מתוך טבלה אחת לטבלה אחרת. השיגרה 65501ט!800/8 ממחישה את יתרונותיו
החסכונייס של קוד 501 (לאמיתו של דבר, אס היישוס שלך אינו חייב לדעת את מספר
הרשומות שהוא מוסיף, ניתן לקצר עוד יותר את הקוד).
() |00/3|06550 סט5
חר 0.00 0 5 601 וחוס
זז 5 0060ה5וססחו וחוס
1 ווחופ
.1 5%80806חז '
וו 208.00 עוסא = 601 56%
1 זז 6% 800 הס 6 החסס 6 56% '
600008א6 61076 '
01 הטסו
חסו66 חח 60600.0 6 = חה0 660 666 .
8 " 06752 וח6!ץ!ןוח3= סד ד155₪" = 6% דחו ס6.
;זט רש ץ| ור = = *.5זסס רחסו ץ!ור8= ד6= |55"
0% = 06ץ ו 60.
יחו 66076אם.
הזו/ 06ח=
.0 6001 660705 ץחה עוסח +וסכסת'
".80|6? 06 60 80060 6ז6/ סז ".8 050060 שחו = 5071
"2000 466655 11670501% סחווחרתהזטסזק" ,הסטהותזס?ה1פע ,501 אס8 וו
טפ 0ח=
פרק 3: עיצוב טבלאות 191
השיגרה פותחת בהצהרה ויצירת מופע של אובייקט 800 60. היא משתמשת במשפט
סחם... וזו\ כדי לפשט את הגדרת מאפייני האובייקט ולהפעיל את השיטות שלו. קטע
הקוד הכלול במשפט 6ַתם... וטו מתחיל בקביעת המאפייניס ח60/660006600
(-6 6018007 של האובייקט 6חפ 60 (בגישה זו, טקסט הפקודה יהיה תמיד
משפט 501). קטע הקוד מגדיר את המאפיין 6מְץְד0ח3 60 בתור 6%% 30607 כדי
למטב את הביצועיס (אס לא תגדיר את המאפיין קץ0ח8ח ו 60, 66655 יצטרך לקבוע
את הסוג של האובייקט חח 60 בטרס יוכל לטפל בפקודה). לבסוף, קטע הקוד
קורא לשיטה 0060%66א₪ עס הארגומנט האופציונלי 80060וסזחו. בסיוס השיגרה,
0 ו מכיל את מספר הרשומות שמשפט 501 טיפל בהן. משפט תיבת הודעה
נוסף מנצל את 50060וו₪0חו כדי לדווח למשתמש את מספר הרשומות שנוספו
לטבלה החדשה.
עבודה עם נתונים בתבניות אחרות
בפרק 2 למדנו כיצד להשתמש בספק 08 015 4 36 כדי לפתוח את מסד הנתוניס
סחושחזזסו! מתוך יישוס. באפשרותך לעשות זאת כדי לגשת לנתוניס שנמצאיס במסד
נתוניסם מסוים של 8066055 מתוך כל מסד נתוניס אחר של 460655. שיטת עבודה זו
ישימה אפילו לנתוניס המאוחסנים בתבניות אחרות שעבורן קייס ספק 8 015. גס
במקריס שספק 8 015 אינו זמין, באפשרותך ליצור קישור אל מסד נתוניס אחר
באמצעות 0, לגשת בקלות למידע שהוא מכיל ולנצל את יתרונותיו של מקור נתוניס
מקושר כלשהו.
באפשרותך לנצל את ספק 4 366 כדי לפתוח מקור נתוניס מסוג 6%א5%. תרשים 3.15
מציג גיליוו עבודה פשוט בחוברת עבודה של |66א5, שנקראת 55א.5%00615ט6. הגיליון
1 מכלל טווח בשס 650675 (ראה תיבת שם - אסם 6וחאּא) ובו מידע אודות קוד
לקוח, שס החברה, שס איש קשר ותנאי תשלוס. השיגרה שלפניך פותחת טווח בחוברת
עבודה של 2000 |5%68 באמצעות 2000 ₪06655.
()0706ו8%50כ |אסחוזק ה6ק0 פט5
סו חח 8.00 00 עשסא 5 1 החש וחוס
5 561 וחוס
56 30 חסמס '
= 8 ";08.4.0ם 670508.26%.01ו1]= ז06וטסזס" ה6ק1.0החס
8 5;7|א.005%070675 8003 46665560/ פחות וח8זססזק:66=6ז7ט50 פאה"
";8.0 |66א =670165ק0סזק 060ח06אם"
שא = 561 56%
3% = 6קץ ד50זט6. 561
6 וק 0600 301 = 6קץ 0687 961.1
306 , , ,1 החש ,"656065" ח561.0726ז
041 605560 8 %חוזכן 0ח3 6607056%ז חסמס '
501.0 טח סס
36 . (6!05)1וח. 5%1ז ,6ט|3/. (6!05)0ו=. 561 זחוזק. פטטסס
]טסו 561
קסס |
סט 0ח=
2 הח 2000 406655
| |5)=. ספ (וסטחןעל 2363 1005 6הזם= >זספת1 שוסוע ובש 6|ם |
הר א|? 9 ₪ 5 9-6 5₪,| 8 ₪ שםן
5 ]| -₪ | -6 ₪ ₪ | | + >|
זפ 37| 3514308 001801 814808 ]1301ח0ס | 8ההב3ץ ההק 60 6051080
צְהם 8910 |808ו/
חסוזהסוופטם יי וז | זי
5 30 .8 08ן28) אספסזסוו!
חסוזהסוופט 8 8 זפמס|פשפ םי ססוויו
ז 59 ז0 צֶהם 5 פסם טוזס// [פחזט)ח|
|8סזמ3 הטסו ו וש 8
|8סזמ3 הטסו 5 סד 6ועם שדוםן 6 |
הסח
הוור סט ו 8 פפטףוח 0 ך טפ/
8 80 םזסו!ש]
צהם 5 זט !פיפ
- חסוזהסוופטם בו כ ווח3ך |[ חזטס נססוי
850 |868ו/
זחסו/ 1 הח הרזה סז
חסוזהסוופטן זסו ח880!חסם חזוצ [החזנוס [מם/י
35 30 ם/* 008 60888 ₪
חסוזהסוופט ץצ ו יי 0
8 808פזסווש! ₪
חסוזהסוופט זו ווחש זפוט ו
פשוזס ה
5 צְהּם זט ס|פ/יפ
ן. [+ן / 56603 ), 506602 0, 56611 ו | +
]|
תרשים 3.15: 460655 יכול לטפל במידע שבגיליון עבודה של |66א5
השיגרה 0318500166 |אטחוזקה6קס משתמשת באובייקט ח8600חח60 כדי לפתוח חוברת
עבודה של |68א5%. השיטה ח6ק0 של האובייקט 1חח6 יוצרת חיבור אל קובצ חוברת
העבודה. הספק בקריאה זו הוא אותו ספק בו השתמשנו עבור קבצי 4 26, הארגומנט
5 860ח00א₪ מציין תבנית תואמת לקבצי 2000 |68אם וארגומנט מקור הנתוניס
מצביע על חוברת עבודה של (5%66 בספריה 460655 פַחווחות8זססזק שבכונן 6. ארבע
השורות הבאות בשיגרה יוצרות ופותחות הפניה לערכת רשומות שמוגדרת בטווח
6505 בקוב 15א.5ז656006. לולאת ₪0 שבסוף השיגרה, מדפיסה את שני השדות
הראשוניס שבערכת הרשומות לחלון 6013%6וחוח1.
לאחר פתיחת ערכת רשומות עבור מקור נתונים ב-66א5, באפשרותך לבצע כל פעולה
ש-60055 מאפשר לבצע על מקור רשומות, כגון עדכון ערכי שדות. ההבדל במקרה זה,
הוא שהיישוס מעדכן ערכים בטווח בחוברת עבודה של |66אם, ולא ערכיס בטבלה של
5 . שגרת הדוגמה 6סזטס30550כ [אסחוזקהסקס ממחישה בצורה ברורה את עוצמתס
של ספק: 400 ו-08 01 כחלק מפעולת יישוס ₪06655.
פרק 3: עיצוב טבלאות 193
שימוש בספק .1504501
0 8460655 עובד עס ספקי 01508 נוספים, כגון 504501, הפועל על כל מקורות
הנתוניס מסוג 0086. למרות שקייס ספק מיוחד עבור ז6ז56 .501 50%סזסו1א, השיגרה
שלפניך מנצלת את הספק הכללי 0086 01508 כדי להמחיש את השימוש בספק
בעבודה עס מקור נתוניס 0086 כלשהו. ספק זה מתייחס תמיד למקור נתוניס 0086,
ולכן באפשרותך להשתמש בו בתיאוס עס אַ5כ. השיגרה מציגה ספק 1504501 המפנה
למסד נתוניס 7005 567/67 .501, כדי להדפיס את פרטי המחבר: מספר זהות, שס פרטי
ושס משפחה.
(050= |ס0הפטסזח 66%00861 סט5
חס חח 8.00 0 עוסא 5 1חח6 וחוס
5 561 וחוס
.6 5 300 זססועסזק .508501 חשואו 665זטס50 0086 חסמס '
";05ק = 56; 1502501!]= ז06וטסזס" ה6ק1.0החס
אש = 561 56%
3% = 6כץ 50 ט6. 561
6 וק 0600 301 = 6קץ 0687 561.1
6 , , ,1הח6 ,"5זסתשטּ" ח51.0726ז
041 6056 8 %חוזכן 0ח3 6607056%ז חסמס '
501.50 טח ספ
36 . (16!05)1ת. 561 , (6!05)2ות. 51 ,6ט|3/. (6!05)0ו=. 561 +חוזק. פטטסס
]טסו 501
קסס |
סט 0ח=
השיגרה 08ם |0פטסזח 66002861 מתחילה בפתיחת חיבור אל מסד הנתוניסם .501
5 56/6 ומפעילה את השיטה ח6ק0 של האובייקט. ארגומנט הספק מציין את ספק
1, ואילו הארגומנט א05 מכיל את נתוני החיבור ופועל בתור ארגומנט 808
6זטס5 של ספק 4 26%. השיטה חפקס יכולה לציין את נתוני מחרוזת החיבור, מה
שמבטל את הצורך להתייחס ל-א5כ. המשפט שלפניך מראה כיצד פותחים מסד נתוניס
5 ]5076 501 מבלי לציין אפס :
8 5667 501= חם/זחכ; 501ב150=זס0וטסזס" ה6ק1.0 החס
"; =0שש; 58= 05;010 טק = 85 ד ;82200 6= חם/ק5 5"
שמו של 60אז56 501 הוא 6482200. שיס לב שמחרוות התיבור מכילה גם את
הארגומנטיס של זיהוי המשתמש והסיסמה. מחרוזת התיבור ייחודית למסד הנתוניס
שאליו אתה מתחבר.
ארבע השורות הבאות של השיגרה פותחות ערכת רשומות בטבלה פזסוטטוה במסד
הנתוניס 5פנוק 567/61 .501. תחביר השיטה ח006 והה לזה ששימש לפתיחת טווח
בחוברת העבודה של |68א5. היחס הסימטרי בין שני מקורות שוניס אלה ממחיש את
עובצמתו של 400 עס ספקי 08 015. לולאת ספ הסופית עוברת על הרשומות כדי
4 הח 2000 466655
להדפיס את מספר הזהות, השס הפרטי ושס המשפחה של כל מחבר. המאפיין 6טופ
הוא ברירת המחדל של האוסף ₪68!065 של האובייקט ערכת רשומות, ולכן אין צורך
לצייו אותו (שים לב שהארגומנט השני של השיטה שחוזס.0ַטפ6ס אינו מפנה מפורשות
למאפיין | 6וט|%8 | של האוסף 0605). | העיצוב | הכולל | של השיגרה
8 מראה ש- 2000 06655( יכול ליצור קישור אל מסד נתוניס
]5 501 באותה קלות שהוא יוצר קישור אל חוברת עבודה של |68אם.
השיטות 780506708%82856 ו-5/6750768057661ח3ד של האובייקט 06ח6סס הן אמצעי
קל וחסין תקלות לקישור לנתוניס שנמצאיס ביישוס אחר; הן אף אינן תלויות בהפניה
לספריה סאכ. שיטות אלו חושפות את מקורותיהן באמצעות החלון מסד נתונים, בעוד
שהספק 8 015 מספק ממשק תכנותי בלעדי למקורות הנתוניס שלו. יכולתך להפיק
תועלת מחשיפת המקור באמצעות החלון מסד נתונים תלויה ביישוס שלך ובהעדפות
של המשתמשיסם בו.
שימוש בשיטה ס56הַּבּז3כ5)6חב3ּוד או בשיטה
וכ 5 הבו ד
השיטות 7780516728%82856 ן-6805066%ז50ז50הפזד הן תוצאה של פקודות מאקרו
המאפשרות ייבוא, קישור וייצוא. השיטה 0805066%ז507ז510חפזד תומכת במיגווןו רחב
של תבניות ₪5ס] ו-|6אם. השיטה 560708182856ח8זד תומכת במקורות נתוניס 0086,
כגון ]567/06 501 ו-0780|6, וגס במקורות נתוניס 150%6, כגון אסספּזבּק, 00856,
סזקאס= 1167050 ו-36%. השיטות 805/0708%80856]ד ו-6805766%ז50ז516ההזד מנצלות
את מנהלי ההתקניס של 1546 ו-0086 המשווקיס עס 866655. מידע רב-ערך אודות
שיטות אלו ניתן למצוא במערכת העזרה המקוונת של 406655 ובחלון מאקרו הפתיח
בתצוגת עיצוב, הכולל תיבות רשימה נפתחת שמהן ניתן לבחור ארגומנטיס אפשריים.
השיגרה 605000675 |אאחו! שלפניך מציגה את תחביר השיטה 6805066%ז6750)פחפוד.
באפשרותך להשוות טכניקה זו עס התפקודיות של ספק 8 015. שגרת הדוגמה יוצרת
קישור לטווח 6056070615 בחוברת העבודה 8א.65000615 (הקוב 65א.560675ט6 כלול
בתקליטור המצורף לספר). חוברת העבודה מבוססת על תבנית 97 |68א5, אך תומכת
גס בגרסאות 3-5 של |66אם. 68050660ז560750ח3וד תומכת גס בתבניות של פטססש, כגון
1 3א/ ו-4א/). האובייקט 06ח6סספ יוצר טבלה מקושרת שנקראת 605000065 |א
במסד הנתוניס. הארגומנט האחד לפני אחרון של השיטה 506750768050666ח8זד (1-)
מציין כי הטווח של |66א₪ כולל שמות שדות בשורה הראשונה.
()5ז05%000 |אאחו! פט5
סו חח 8.00 00 עוסא 5 1 החש וחוס
5 561 וחוס
.אחו| 6 86 ץו|868 וה זפסזק 0+ 0וח6סכ שפט'
= ,686|97א065ץ ]36527680570660 ,%ח 861 5076805066%ז510ח3 ד. וחספ
> ,"5|א.5507675 008003 66655/ חחורתרחה זססזק :0" ,"60560065 |א"
"5ז6₪5%0006" ,1-
פרק 3: עיצוב טבלאות | 195
0 56 30 חסכס '
שא = 561 56%
הסוח .660166 = הס 66 ה ה 660 6. 561
3% = 6קץ ד50זט6. 561
6 וק 0600 301 = 6קץ 0687 961.1
6 , , , ,"0056065 |א" ח561.076ז
041 "605% 8 %חוזכן 0ח3 6607056%ז חסמס '
501.50 וטח סס
(16!05)2ת. 5%1 ,6ט|3/. (6|05)0ו=. 51 +חוזק. פטטסס
]אס עסו 561
קסס |
סט5 0חם
לאחר שהשיטה 66%ה50075070805ה1?8 מתבצעת, היישום יכול לנצל את קבוצת
ההחזרה 560 חז6ז) שלו בצורה דומה לזו שמתקבלת מספק 80 015. ראשית, פתח
את ערכת הרשומות בטבלה המקושרת. לאחר מכן טפל בערכת הרשומות בעזרת קוד
כדי למלא את דרישות היישוס (605000815 |אאחו! מדפיסה שדות אחדיס לכל שורה).
השיטה 5/0708%80856ח3זד כוללת מיגוון גדול יותר של אפשרויות גישה לנתוניס לעומת
הפקודה 5/675076805066%ח9זד. האפשרויות כוללות את מנהלי ההתקניס ההיסטורייס
של 154% ו-86ס0. הואיל ורוב מסדי הנתוניס תומכיס ב-86ס0, שיטה זו יכולה לגשר
כמעט אל כל מקור נתונים של מערכת לניהול מסדי נתוניס יחסיים (פ1א8ס5). יתירה
מזאת, התחביר של השיטה 5)6708082856ח8זד דומה לזה של 6805066%ז5/6750ח8ז ד,
מה שמקל את השימוש בה.
השיגרה 5זסהזטה60086ח!ו1 מנצלת את השיטה 5)075076805766ח8זד כדי ליצור קישור
אל הטבלה פזסושט במסד הנתוניס 5פטק של ז6שז56 -501. זסחזטה0086>הו1 יוצרת
קישור אל הטבלה פוסושטא תחת השס פזסושטס0 במסד הנתוניס הנוכחי. אס
5זסהט/00 כבר קיימת במסד הנתוניס הנוכחי, השיטה שומרת את העותק המקורי
מבלי להתריע על כך, יוצרת עותק נוסף ונותנת לו את השס 00751ט/800.
()5זסרסטה/)כ סאחו! פט5
חס חח 8.00 00 צוסא 5 1 החש וחוס
5 561 וחוס
.אחו| 6 86 ץו|68ו8 רפסק 60 0וה6סכ שפט'
= ,"08680856 0086" ,אהו 61 6708%80856ז5חהּ ד. חספ
> ,"05טס=855 דהכ;=//ק;58= 5;1סטק = 86;5סס"
"5ז0ח%ט600" ,"5זסחזטג" ,3016 6
00 56 30 חססס '
שא = 561 56%
סו חח ס.0[60 זל 66 = הס 66 ה ה0ס66ע6. 561
3% = 6קץ ד50זט6. 561
6 וק 0600 301 = 6קץ 0687 561.1
6 , , , ,"סט 400" ח5+1.026ז
6 הח 2000 466655
01 605% 8 %חוזכן 0ח3 6607056%ז חסמס '
51.50 טח ספ
(16!05)2ת. 5%1 ,6ט|3/. (6|05)0ו=. 561 +חוזק. פטטסס
]טסו 561
קסס |
סט 0ח=
הארגומנט הראשון המועבר אל 500:08)89856ח8]ד מציין את סוג ההעברה אל מקור
הנתוניס ; הארגומנט %חו861 יוצר טבלה מקושרת במסד הנתונים. שני הארגומנטיס
הבאים מציינים את סוג מסד הנתונים ואת שמו. (השיגרה 5זסחזש600864חו1 מגדירה
מקור נתוניס מסוג 0086. לאמיתו של דבר, דוגמה וו משתמשת במסד הנתונים
המקובל 5פט של זסעז56 501). הארגומנטים הנותרים מצייניס את סוג אובייקט מסד
הנתוניס שעליו ברצונך לבסס את המקור, את שמו במקור המרוחק (פוסחזט1) ואת
שמו ביישוס שלך (5ז0ח6ש000). שאר חלקי הקוד של השיגרה מבצעים פעולות והות
לאלו של שאר דוגמאות הקוד בסעיף זה.
פרק 3: עיצוב טבלאות | 197
4
טיפול בנתונים
באמצעות שאילתות
שאילתות הן סוס העבודה של יישומי מסד נתוניסם. תוכל ליישס אותן כדי להשיג
מטרות רבות. שאילתות מאפשרות לטפל בנתוניסם שנמצאיס בטבלאות מסד נתוניס.
תוכל לנצלן כדי להגדיר תכניס של טפסים ודוחות. שאילתות יכולות גם לציין את
מקור הנתונים של דף ט6/ש.
אחת הסיבות העיקריות לכוחן הרב של שאילתות היא המיגווןו העצוס שלהן. בפרק 2
למדנו כיצד לעצב שאילתות החזרת שורות (סחוחזט6ז-שוסז) ושאילתות חסוזהזסקס >וטס
(שאילתות פעולה בתבנית המוגדרת על ידי המשתמש), באמצעות אובייקטי נתוניס
6% (ססה). ניתן גסם לבצע פעולות אלה ואחרות באמצעות שפת שאילתה מובנית
(/50). מפתחים משתמשים לעיתיס קרובות ב-501 כדי לטפל בטבלה על ידי חילוצ
שורות ועמודות נבחרות, אך אלו אינן האפשרויות היחידות לטיפול במקור נתוניס.
שאילתות חסטאזפקס א|טט קלאסיות כוללות צירוף ומחיקה של רשומות ועדכון שדות.
ניתן גס ליצור שאילתות חדשות באמצעות .501.
בפרק זה נדון בנושא השאילתות של 2000 260655 במיגוון רמות.
> סקירה כללית על סוגי השאילתות השונות. הפרק עוסק בטיבן של שאילתות, במה
שהן מאפשרות לעשות ובאופן בו הן משלימות זו את זו.
4 תיאור טכניקות ידניות לבניית שאילתות. סקירה וגו משרתת מטרות רבות. היא
מרחיבה את הסקירה הכללית בהצגת שלבים ביצירת כל אחד מסוגי השאילתות.
4 הפיכת משימה לאוטומטית באמצעות שאילתת פעולה. אפשר לנצל את ב8 כדי
ליישס באמצעות קוד שאילתות החזרת-שורות ושאילתות פעולה פשוטות.
> התבססות על 501 באמצעות קוד. כאן נשליס את הסקירה מפרק 2 בנושאי ססג
ונדוו בתצוגות ושגרות מאוחסנות.
> טיפול במסדי נתוניס מרוחקים. גרסת 2000 מטפלת במסדי נתוניס מרוחקיס טוב
יותר מגרסאות קודמות. שימוש בשאילתות למטרה זו ישפר את היישומיס
שתכתוב ויעלה את רמת הביצועים שלך בתור מפתח בסביבת 60655(.
פרק 4: טיפול בנתונים באמצעות שאילתות 199
סקירת סוגי שאילתות
ניתן להתייחס לשאילתות ככלים לחילוצ מידע ממסד נתונים אחד או יותר, אך קייס
מיגוון עצוס של דרכיס בהן שאילתות מבצעות משימה זו. בנוסף, שאילתות יכולות
לבצע פונקציות מסוגים שוניס, במיוחד אס כולליס את תכונת הגדרת הנתוניס של
וקישור למקורות נתוניס מרוחקים. בסעיף ה נסקור אפשרויות שאילתה רבות
ש- 2000 466055 תומך בהן. סקירה זו תספק את המידע הדרוש כדי לבחור בסוג
השאילתה הנכון למצב נתון.
שאילתות בחירה (56166%)
שאילתות בחירה מאפשרות ליצור קבוצת משנה של פריטי מידע בטבלת מסד נתוניס
אחת או יותר. לרשות המפתחיס עומד מערך אפשרויות עשיר שמאפשר בחירה ועיבוד
נתוניס בדרכים שונות. אפשרויות אלו יסייעו לך לקבוע את ערכי העמודה והשדה
בקבוצה המוחזרת 560 חז6₪0א) מתוך שאילתה. שאילתות בחירה הן מקור רשומות
טוב עבור טפסים, דוחות ודפי פ6/, ולכן שליטה בעקרונות הבסיסיים שלהן תשפר
מאוד את עבודתך עם רכיבי פיתוח נוספים.
שאילתה הבוחרת קבוצת משנה של שדות ברשומה היא אחת השאילתות הבסיסיות
ביותר שיש. נוח מאוד להשתמש בה כשרוצים להציג עמודות אחדות מתוך טבלה
הכוללת עמודות רבות. חילוצ מספר עמודות חלקי יכול להאיצץ את פעולת השאילתה.
5 מחשב שאילתת בחירה בכל פעס שהוא פועל, מובטח כי המשתמש יקבל תמיד
את המידע העדכני ביותר. כשיישוס אינו אמור לחשוף את המידע העדכני ביותר
מהטבלה, יש להשתמש בקריטריונים שוניס כדי להגביל את ערכי השורה שהשאילתה
מחזירה. לחילופין, תוכל להפעיל סוג אחר של שאילתה כדי ליצור טבלה זמנית חדשה
שמכילה קבוצת משנה של עמודות ברגע מוגדר בציר הזמן.
קביעת קריטריונים
בין אס שאילתת בחירה בוחרת קבוצת משנה מתוך מקור נתונים ובין אס לאו, היא
יכולה להגביל את השורות בקבוצת המשנה. באפשרותך לציין את השורות שתוחזרנה
על ידי קביעת קריטריוניס מתאימים. השתמש בשורה קריטריונים (67168) ברשת
עיצוב שאילתה כדי לקבוע קריטריונים. קביעת קריטריוניס באמצעות קוד כוללת את
הפסוקיות =8פה/ ו-6א1/₪ במשפטי 501. הפסוקית =אשהע נוגעת לרשומות בודדות
במקור הרשומות עליו מבצעיס את השאילתה, אך הפסוקית 6א4/1 יכולה להגביל
את קבוצות ההחזרה בהתאם לערכי הפסוקית 8 6₪000.
שאילתות בחירה יכולות להחזיר קבוצות שורות שמתאימות לערך או לטווח ערכים
מסוים. בעת טיפול בטבלת ערכים גיאוגרפיים, ניתן להגדיר שאילתת בחירה שתחזיר
את שס העיר והמדינה (בארהייב) בהתאם למיקוד. אס הרשומות במקור נתוניס
מכילות שדה מסוג תאריך/שעה, כגון תאריך הזמנה או חשבונית, תוכל לבחור הזמנות
או חשבוניות מתאריך מוגדר. ניתן להשתמש גם באופרטורי השוואה, כגון גדול (<),
0 ה 2000 406655
קטן (>) או שונה (<>), כדי לבחור טווח שורות. אפשר להתאיס את הפריט המבוקש
לערך מחרוזת מוגדר, או לטווח ערכיס באמצעות תוויס כלליים (0ז68 6וואו). תוויס
אלה משמשיס לקביעת טווח ערכי מחרוזת. לדוגמה, הקריטריון |*5 מתאיס
למחרוזות |58 ו-|58, מכיון שהתו * מתאיס למספר תוויס כלשהו. לעומת זאת, התו !
מתאיס לתו אחד בלבד, ולכן הקריטריון |?5 מתאיס למחרוזת |58, אך לא למחרוזת
|580.
פונקציות צבירה (סִזהּחַסִיו9ַטַ3)
מפתחים יכוליס להשתמש בפונקציות צבירה (פ5חסט6חט= 6ְהּחַסזִחָפָה) בשילוב .501, כדי
לסכם את הרשומות במקור נתוניס. פונקציות צבירה טיפוסיות מונות, מסכמות או
ממצעות את רשומות מקור הנתוניס כתגובה לשאילתת בחירה. ניתן להפעיל פונקציות
צבירה כדי לחשב את מידת ההשתנות (שווופפוז3) של מקור רשומה (66ז50 660706])
באמצעות פונקציות כגון 506 או פז3. אפשר אף לחשב את המינימוס או את
המקסימוס של קבוצת ערכים בשדה בעזרת פונקציות צבירה.
שאילתות בחירה יכולות ליישס פונקציות צבירה בשילוב עס הפסוקית 8 60005.
הדבר מאפשר לשאילתה לחשב נתוני צבירה עבור רשומות מקובצות במקור נתוניס.
שימוש בפונקציות צבירה יחד עס פסוקית צ8 68005 מאפשר ליישוס להחזיר את
מספר שורות הפריט עבור כל הזמנה בשאילתת בחירה.
צירופים (5חוס1)
אפשר לבסס שאילתות בחירה על טבלה אחת או יותר, על שאילתה אחרת או על שילוב
כלשהו של טבלאות ושאילתות בחירה. בעת בחירה מתוך טבלה אחת או יותר, היישוס
ייקשר את הטבלאות באמצעות שדות משותפיס אחדיס. אס מסד הנתוניס מקשר
טבלאות באמצעות הגדרות שלמות הקשרים, 66655 יוהה ואת בעצמו ויצרף אותן
כשתשלב אותן יחד בתור מקור רשומה של שאילתה. 860655 מזהה גס שדות משותפיס
במצביס נוספים, ועל ידי כך מאפשר לקייס, לשנות או להחליף קשרי גומלין שזוהו
אוטומטית, בין טבלאות.
ברירת המחדל לצירוף טבלאות היא שילוב כל הרשומות בין שתי טבלאות שאחד
משדותיהן מכיל ערך תואם. צירוף הטבלאות 070675 ו- 061918 5ז06זס של מסד
הנתוניס 6חושח+וס בשאילתת בחירה פשוטה, מסוגל להחזיר את כל שורות הפריטיס
לכל הזמנה. במצב זה אנו מעונייניסם רק בפריטיס שתואמיס להזמנות. טבלאות
הקשורות זו לזו יכולות להכיל בטבלה אחת ערכי שדות ללא ערכים תואמיס בטבלה
המצורפת (לדוגמה, תוכל לאחזר נתוניס ממסד נתונים ישן שאינו מאלצ שלמות
קשרים). היישוס יכול לאהות רשומות שאין להן רשומות תואמות, על ידי הכללה
מאולצת של כל רשומות טבלה מצורפת אחת או יותר לקבוצת התחזרה. במצב זה, כל
הרשומות המשולבות המכילות ערך מטבלה אחת, והחסרות שדה צירוף מהטבלה
האחרת, תצבענה על רשומות לא תואמות.
פרק 4: טיפול בנתונים באמצעות שאילתות | 201
תוצאת זוג כלשהו של ערכות רשומות מצורפות יכולה להצטרף לטבלה או לשאילתה
אחרת. אס אתה מנוסה ב-501 תוכל לפתח קבוצת החזרה על ידי טיפול במספר
טבלאות ושאילתות באמצעות קשרי גומלין המבוססים על צירוף מורכב, ואת במשפט
אחד בלבד. מתלמד ב-501 עשוי למצוא שבטותח יותר להעדיף בניית שאילתות
בצורה גרפית ברשת עיצוב השאילתה כשהמדובר בזוגות טבלאות או שאילתות
אחרות. כשמתכנני מסדי נתוניס נוקטיס צעד מקדמי וּה, הס יכוליס לאמת את
תוצאת צירוף שתי הטבלאות לפני צירוף קבוצת ההחזרה לטבלה או שאילתה אחרת.
עדכון נתוני מקור
אחת התוצאות הנפוצות של שאילתת בחירה היא קבוצת רשומות דינמית ִסִ5חץ0).
קבוצת רשומות דינמית היא ערכת רשומות ששומרת מפתחות ראשייס במקוס נתוניס
בפועל. שאילתת בחירה מאפשרת ליישוס לשנות את השדות ברשומות שעליהן
מבוצעת השאילתה (לשס הנוחות, נשתמש במילה רקע). לעיתים, השדות שברקע
שאילתת בחירה אינס ניתנים לעדכון. בשאילתות בחירה המבוססות על טבלה בודדת
או שתייס בקשר יחיד-ליחיד, קיימת תמיד אפשרות לעדכן את רשומות הרקע (אלא
אס משתמש אחר נועל אותן). בדרך כלל ניתן לעדכן טבלאות שקשרי הגומלין שלהן
הוא מסוג יחיד-לרבים.
הצג את השאילתה בתצוגת גיליון נתונים והבט בשורת המצב כדי לקבוע אס שדה
מסויס הוא בר-עדכון. אס השדה אינו כזה ויש לך צורך לשנותו, שקול גישה ישירה
לטבלה שבה הוא נמצא, או עיצוב מחדש של השאילתה.
שמירת שאילתות
כששאילתות הן מורכבות. כדאי לשמור אותן ואחר כך להפנות אליהן בשאילתות
אחרות. לדוגמה, שאילתת בחירה המצרפת שתי שאילתות נוספות (או יותר), ולאחר
מכן מפעילה עליהן פונקציות צבירה של 501 כדי ליצור סיכומי נתונים. שמור שאילתה
מורכבת והפנה אליה בשאילתות אחרות כדי להימנע משגיאות תחביר. לעיתים,
כשמצרפיס שאילתה אחת או יותר כדי לקבל שאילתה חדשה, לוגיקת השאילתה
עלולה להיות מורכבת מדי לכוח החישוב של מנגנון מסד הנתוניס. במצב זה, שמור
שאילתת קלט אחת או יותר כטבלה זמנית. לאחר מכן, השתמש בטבלאות אלו
כתחליפים עבור השאילתות. חשב מחדש את הטבלאות הזמניות בכל מקרה שחל שינוי
בנתוני הקלט של הטבלאות המקוריות.
שאילתות פעולה (חסז6%)
במקוס להחזיר קבוצת שורות כמו בשאילתת בחירה, שאילתות פעולה (ח600
65 מבצעות את משימתן מול טבלה אחת או יותר. שאילתות פעולה מאפשרות
להפעיל אוטומציה של יישוס. אפשר לעצב שאילתות פעולה באופן גרפי, והן תמשכנה
לבצע את הפעולות התיוניות: הוספה, מחיקה ועדכון רשומות. שאילתות פעולה
משתמשות ב-501 לביצוע משימותיהן, ולכן ניתן לנצל אותן כפקודות טבלה
2 הח 2000 406655
מתוחכמות לטיפול ברשומות. מפתחי 8466055 מנוסיס תוהיס מן הסתסם על שאילתת
הפעולה של 460655 שנקראת שאילתת יצירת טבלה (180!6 ₪8%6). שאילתת פעולה זו
מאפשרת הגדרת נתוניס וגס טיפול בהם. שאילתת יצירת טבלה היא הנושא המרכזי
בסעיף שאילתות יצירת טבלה שבהמשך הפרק.
שאילתות הוספה
שאילתות הוספה (0060865 6ח6סקה) מאפשרות להוסיף רשומות לטבלה אחת
המבוססות על אלו שבטבלה אחרת. הפעל שאילתת הוספה כשהיישוס מקבל רשומות
ממקור חיצוני, כגוו טבלה שנמצאת במחשב אחר. טבלת המקור חייבת להיות במסד
הנתוניס הנוכחי, או לפחות מקושרת אליו. טבלת היעד יכולה להיות במסד הנתוניס
הנוכחי או בקובצ מסד נתוניס אחר. שמות השדות בשתי הטבלאות יכולים להיות
שוניס זה מזה, אך חייבת להיות תאימות בין סוגי הנתוניס כדי לצרף ערכיס משדה
בטבלה אחת לשדה תואס בטבלה אחרת. טבלת המקור אינה מחייבת שכל השדות יהיו
בטבלת היעד.
קיימיס מצביס העלולים ליצור שגיאות בשאילתות הוספה. בעיקרון, עליך להימנע
מהוספת ערכים לשדה מספור אוטומטי, מכיון ששדה מסוג וה מתאכלס מעצמו. אס
תנסה להוסיף רשומה שגורמת לכפילות בשדה המפתח הראשי, היישוס ייצור שגיאה
של הפרת מפתח. 460655 לא יאפשר להוסיף רשומות, אס הוספתן מפירה את תקפות
הטבלה או את כללי שלמות הקשריס.
שאילתות מחיקה
שאילתות מחיקה (006065 26!605) מאפשרות ליישוס להפוך את תהליך הסרת
הרשומות מטבלה לתהליך אוטומטי. ניתן לקבוע את הרשומות המיועדות למחיקה
בעזרת קריטריוניס מוגדרים. אפשר למחוק שתי רשומות או יותר באמצעות שאילתת
מחיקה בודדת. כאשר סכימת מסד הנתוניס מציינת מחיקות על פי היררכית הקשרים,
שאילתת מחיקה תמחק רשומות תואמות הן בצד היחיד והן בצד הרבים, בקשר גומלין
מסוג יחיד-לרבים.
אס עליך למחוק רשומות מתוך צד היחיד בלבד, בטל את המחיקות על פי היררכית
הקשריס מתוך הגדרות שלמות הקשרים. אס עליך לבטל את כל הרשומות בצד הרביס
של קשר גומלין מסוג יחיד-לרביס בעל שלמות קשרים, כבה את קשר הגומלין, בצע
את שאילתת המחיקה ואחר כך, שחזר את הגדרות שלמות הקשרים.
שאילתות עדכון
בניגוד לשאילתות הוספה ומחיקה, שאילתות עדכון (6765ט) 0008%6) אינן פועלת על
רשומות שלמות. במקוס ואת הן משנות ערכיס בשדות שנבחרו. הקצה שורות מוגדרות
באמצעות קריטריוני הגדרה. אפשר לנצל שאילתה מסוג וה לחישוב מחירי פריטיס
חדשים שעולים בשיעור קבוע. אס העליה במחיריםס חלה על קטגוריית מוצר אחת
בלבד, ציין את הקטגוריה בהגדרת הקריטריוניס.
פרק 4: טיפול בנתונים באמצעות שאילתות 203
סוגי שאילתה אחרים
קיימת קבוצת שאילתות מיוחדת נוספת שמרחיבה את שימושיות השאילתות. בדרך
כלל, אם כי לא תמיד, שאילתות אלו מרחיבות או משלימות את היכולת של שאילתות
בחירה והוספה.
שאילתות פרמטר
שאילתות אלו הן סוג מיוחד של שאילתות שיכולות להחזיר שורות או לבצע פעולות.
בומן ריצה, שאילתה מסוימת יכולה להנחות את המשתמש לספק קלט שקובע את
אופן פעולתה. באפשרותך לבקש מהמשתמש קלט אחד או יותר על ידי שימוש בסוגי
נתוניס שוניס. מוריסם לשאילתת הפרמטר מה עליה לבצע על ידי הכנסת ערכים
בתשובה לבקשות שלה, או על ידי הגדרת הפרמטריס שלה באמצעות קוד %84 טרס
ביצוע השאילתה, כדי לשלוט בקבוצת ההתחזרה שלה או בפעולה שהיא מבצעת. הדבר
מאפשר לספק קוד זיהוי של לקוח בזמן ריצה, כדי לקבוע את הלקוח ששאילתת
הבחירה תחציר את פרטיו.
כחלופה לשאילתת פרמטר, היישוס יכול להפנות למחרוזת 501 של שאילתת בחירה או
פעולה, באמצעות משתני מחרוזת. בטרס תבצע את משפט .501 בפקודת ססם, הקצה
ערכיס מוגדריס למשתני המחרוזת. על ידי כך ניתן לקבל תוצאות גמישות יותר מאשר
מקבלים בשאילתת פרמטר, מכיון באפשרותך לשנות, למעשה, פסוקיות שלמות
במשפט 501 של שאילתה. במקריס מסוימים, שאילתות פרמטר מפצות על כך
באמצעות הקלדת נתוניס ובקשות מוכללות לקבלת ערכים. בנוסף, שאילתות פרמטר
מבטלות את הצורך במניפולציות של מחרוזות 501, כל שעלינו לעשות הוא לעדכן את
ערך הפרמטר.
שאילתת איחוד
שאילתת האיחוד (ץזפטט חסוחט) היא סוג של שאילתת 501. ווהי שאילתה מעניינת
במיוחד, עקב התנהגותה החדשנית (היא מציבה טבלאות זו מאחורי וו במקוס זו לצד
זו). שאילתות איחוד מצרפות יחד את השדות מתוך שתי טבלאות או יותר. במקוס
לצרף את רשומות הטבלאות זו לצד זו, שאילתות איחוד מוסיפות את הרשומות
מטבלה אחת ישירות אחרי אלו של הטבלה האחרת. עליך לבנות שאילתות איחוד על
ידי שימוש במשפטי 501. לא ניתן לעצב אותן בצורה גרפית ברשת עיצוב השאילתה.
הקלד את קוד 501 של שאילתת האיחוד ישירות בתצוגת 501 של השאילתה. תכונה זו
מייחדת את שאילתות האיחוד מכל סוגי השאילתות בהן עסקנו עד כה, מכיון
שבאפשרותך ליצור את כל שאר השאילתות בצורה גרפית. שאילתות איחוד מעניקות
לך את מלוא העוצמה של שפת 501 להגדרת קריטריוניס ולקביעת סדרי מיון.
4 הח 2000 406655
שאילתות הצלבות
שאילתת הצלבות (עזפטף 055/92ז6) קולטות טבלה או שאילתה בתור מקור נתוניס
ומחזירה סכום, ממוצע או מונה של שדה אחד המבוסס על שני שדות קטגוריה
נוספים. שאילתה מסוג זה וקוקה לשדה שהיישוס יכול למנות, לסכס או למצע. נוסף
לציון שדה המיועד להצגת תוצאות צבירה, מפתחים חייבים לספק שדות קטגוריה של
שורה ועמודה. שדות אלה צריכים להכיל ערכיס בדידים שישמשו בתור קטגוריות
לדיווח על תוצאות צבירה. 460655 תומך ביצירת שאילתות הצלבות באמצעות אשף ו-
1 26%. בנוסף, באפשרותך לטפל ידנית בעיצוב שאילתת הצלבות בתצוגות עיצוב
(ח0ו65כ) וג*ליון נתונים (66ח5ז8כ).
שאילתות משנה
שאילתת משנה .501 היא משפט ז551560 בשפת 501 שמקונן בתוך שאילתת פעולה
אחרת. השתמש במשפט ז0ם551 המקונן בתור ביטוי בקריטריון של שדה. המשפט
המקונן מחזיר ערך שבבוא הזמן יכול לתפקד בתור קריטריון נוסף. למרות שעליך
לכתוב את שאילתת המשנה בשפת 501, תוכל לקנן אותה ברשת עיצוב השאילתה.
יתירה מזאת - באפשרותך להשתמש בשאילתה נוספת כדי לאשר שעיצבת את המשפט
המקונן בצורה תקינה. השתמש במשפט 501 המקונן כפי שהיית נוהג בקריטריון
כלשהו אחר, כדי לציין ערך או תחוס ערכים עבור קבוצת החזרה.
פעולות להגדרת נתונים
שפת 00806ח1]8 הסטוחו6כ הזכ 501 (וספ 501) מאפשרת למפתחים ליצור טבלאות
המכילות משפטי .501. השאילתה ליצירת טבלה מנצלת את וספ כדי להפוך יצירת
טבלה לתהליך אוטומטי. אחד ההיבטים המצודדיס של שאילתת יצירת טבלה הוא
האפשרות לעצב אותה בצורה גרפית. מקובל מאוד להפעיל את עיצוב שאילתת יצירת
טבלה בתור שאילתת בחירה סטנדרטית. לאחר עיצוב שאילתת בחירה כך שתחזיר
בדיוק את מה שאתה מחפש, הפוך אותה לשאילתת יצירת טבלה.
השתמש ב- ]ספ 501 לעיצוב ידני של טבלאות באמצעות משפטי 501. אס נוח לך
לעבוד עס משפטי 501, זוהי הדרך המהירה והטובה ביותר לעצב טבלאות. ]ספ 501
מהווה חלופה ל-ספ2. קיימות משימות נבחרות, כגון קביעת ערך הצעד והערך
ההתחלתי של סוג הנתוניס מספור אוטומטלי (זספוחטאססטה), או הפעלה וביטול דחיסת
6, שניתן לקבל בלעדית ב- 501 266. כמובן, מפתחיס לסביבת 460655 נוהגיס
להשתמש במשפטי 501 בעיקר כדי להגדיר את המאפיין 6ץד6ַח 60 של אובייקט
600 של 0כ2. אס המאפיין 6קץ01ח8ח ו 60 בתוכנית שלך קיבל את הערך
0ה, עליך להשתמש במשפט 501 כדי להגדיר את המאפיין 6 חחח 60.
הפעל את השיטה 560016 של הפקודה כדי להפעיל את משפט 501.
פרק 4: טיפול בנתונים באמצעות שאילתות | 205
עבודה עם מקורות נתונים מרוחקים
כשעובדיס עס מקורות נתוניס מרוחקים, כגון ז86ז56 .501 1167050 או מסד נתוניס
של 0786!6, חלים כללים מיוחדים לטיפול במקור נתוניס ולמיטוב ביצועי השאילתה.
ארבעת נתיבי הגישה הבסיסיים לנתוניס מרוחקיס, כוללים טבלאות צמודות,
שאילתות מעבר (665ט חסטסזח+-0855) . 501, 66זוס86סס ו- 8 = וס.
בעבודה עס 2000 66655, קרוב לוודאי שתעדיף להימנע מגישה לנתוניס באמצעות
זו סס. עדיף ללמוד להשתמש בספקי ססג ו-₪8 015, מכיון ש- 8ם ₪ וס/ססא
מהווה חלק מגישת הנתוניס האוניברסלית של 167-0506 (888 |88זסעוח( 0506ז6וז
5). הטכנולוגיה 008601766 הולכת והופכת מיושנת, ו- ₪8 015 עתיד להחליף
אותה.
שאילתות מעבר 501 הן שאילתות המבוססות על תחביר .501 טבעי של מנגנון מסד
נתוניס מרוחק. סוג שאילתה זה מאפשר לעבוד ישירות עס טבלאות בשרת המרוחק
במקוס לקשר אותן תחילה. העובדה שניתן להשיג תוצאה והה בעזרת סג עס תחביר
בעל אפשרות העברה טובה יותר הופכת גם את שאילתות המעבר לאמצעי מיושן.
עבודה עם טבלאות מקושרות יכולה לאפשר ליישום גישה מבוססת-מטמון לרשומות
במקור נתוניס מרוחק. הדבר עלול להאט את מחירות עבודתו של יישום, אך בו-בומן
גם להאיץ שאילתות שיש להן מקורות נתוניס מקושרים, במיוחד כשהנתוניס אינס
משתניס לעיתים תכופות.
במהלך עיצוב שאילתות למקורות נתוניס מרוחקים, חשוב לתכנן אותן כך שתבצענה
את רוב השאילתה במחשב המפעיל את מנגנון מסד הנתוניס המרוחק (השרת),
שביצועיו עוליס לאין שיעור על אלה של מחשב שולחני טיפוסי. בנוסף, הפעלת
השאילתה בשרת מאפשרת להקטין את תעבורת הרשת ולהעביר רק חלק מהנתוניס
ברשת. לפניך עצות אחדות למיטוב שאילתות המבוצעות על מקור נתוניס מרוחק:
4 הגבלת פונקציות צבירה 501 לאלו שמנגנון מסד הנתוניסם המרוחק תומך בהן
(הפונקציות דא(600, א50, אזוא, אהוא ו-6/)
> הגדרת סוג הנעילה 00001506ח801060800 והפעלת השיטה 0508060806 כדי
למטב את העבודה עס מקור נתוניס מרוחק בצורה לא מחוברת
> הימנעות מהפעלת פונקציות מותאמות אישית שדורשות משאבי עיבוד מקומייס
> שימוש בקריטריונים המגדירים טוות קבוע, כגון בין 100 ל-1,000, לעומת
קריטריונים ייפתוחיםיי, כגון 100<
4 מילוי חוקים כלליים של מיטוב שאילתות, מיון, חיפוש וצירוף בשדות סדורי
אינדקס, ושימוש בפרמטריס של תווים כלליים (0ז068!ו₪) עס האופרטוריס =א1|
רק בסוף קריטריון חיפוש מחרוזאת
6 הח 2000 406655
הערה:
501 תומך בתו % במקום בתו * לחיפושים המבוססים על תווים
כלליים עם האופרטור 5א1]. אם השאילתה מופעלת מול מנגנון מסד נתונים .501
זז הכולל את 6חוַפַח= 2868 אספסזסוא החדש, הקפד לשלב בשאילתות את התו
הכללי החדש.
עיצוב שאילתות באופן ידני
יישומיס מותאמים אישית יכולים לבנות שאילתות באמצעות קוד, או לנצל שאילתות
בנויות מראש בתור מקורות של רשומות. בדיוק כמו בטבלאות, סביר מאוד שלעיתיס
תבנה שאילתות באופן ידני ולעיתים - באמצעות קוד. ידע מבוסס בעקרונות עיצוב
ידני של שאילתה יהיה לך לעזר רב בבואך ללמוד עיצוב והפעלה של שאילתות
באמצעות קוד.
בסעיף זה נבחן לעומק בניית שאילתות באמצעות אשפים ונסקור את התצוגה עיצוב
(ח0ו65כ) של שאילתה. קל מאוד להשתמש באשפים, אך הס מגביליס במידה רבה את
אפשרויות העיצוב בהשוואה לבניית שאילתות באופן ידני ברשת עיצוב השאילתה
שבתצוגת עיצוב. סקירת טכניקות השימוש ברשת עיצוב השאילתה כוללת: הוספת
טבלאות, בחירת שורות וציון קריטריונים. כאן תגלה גס כיצד להרכיב שאילתות
פרמטר, שאילתות איחוד ושאילתות משנה.
שימוש באשפים
אשפי השאילתות של 406655 מאפשרים ליצור שאילתות בצורה קלה ומהירה. סעיף זה
מתאר את ארבעת האשפים.
אשף השאילתה הפשוטה
החלון מסד נתונים (ס288085) של 2000 466655 עוצב מחדש באופן שהופך את הגישה
לאשף שאילתה פשוטה (0ז28ו) 61165 6!מוחו5) לפעולה ייחודית. בחר את שאילתות
(165ז6ו)) בחלון מסד נתונים ולחץ לחיצה כפולה על הסמל יצירת שאילתה באמצעות
אשף (0ז28ו) פַחו5 ץ8 /ז6ט) 676866) כדי לפתוח את האשף. באפשרותך גם להגיע אל
אשף זה בדרך המקובלת יותר, על ידי בחירה באפשרות שאילתות ולחיצה על לחצן
חדש (שוסא) בסרגל הכליס של החלון מסד נתונים.
אשף השאילתה הפשוטה מאפשר שלושה סוגי עיצוב שאילתה. כל רכיביו מיועדיס
למפתחים מתחילים. יחד עס זאת, גס מפתחיס מנוסים ייווכחו שהוא מאפשר ליצור
שאילתות במהירות המשתווה לוו של עבודה עס רשת עיצוב השאילתה. חסרונו
פרק 4: טיפול בנתונים באמצעות שאילתות | 207
העיקרי של אשף השאילתה הפשוטה הוא שאינו מאפשר את טווח עיצובי השאילתה
המלא שניתן להשיג באמצעות רשת עיצוב השאילתה או 501. מפתחים השולטיס
ב- 501 ובכללי הצירוף (0165 פַחוחוסן), יחבבו את הממשק הגרפי שלו.
הערה:
היישום החדש 70[605ק 460655 16050 אינו כולל אשפי שאילתה כלשהם
(סוג פרויקט זה יוצר קבצים מסוג 800.* בניגוד לקבצי מסד הנתונים ט0וח.*
המקובלים). בנוסף, עיצוב התצוגה עיצוב עבור קבצי כ0ְ80.* שונה מזה של קבצי
טסחח.*. עיין בסעיף האחרון בפרק זה לקבלת הסבר ראשוני בעיצוב שאילתה בעזרת
65 00655 פרק 12 מרחיב בנושא העבודה עם מסדי נתונים מרוחקים ו-
6חוסח= 2868 50%סז6ו₪].
הדרך הבסיסית ביותר לבנות שאילתה בעזרת אשף השאילתה הפשוטה (ראה תרשיס
1) היא לבסס אותו על טבלה או על שאילתה יחידה. הפעל את האשף באופן וה כדי
להפריד בין השדות שהשאילתה מחזירה. למרות פשטות השימוש באשף, תפיק ממנו
תועלת רבה, מכיון שהגבלת קבוצת ההתזרה משפרת את ביצועי השאילתה.
זה קוש עז26) 6!קחוו5
?שזסום זטוסץ חו לחפאו טפץי סי 25| הסותעי
זפ זס 30/6 6חס הבח 6זסח החסז'] 6056 חב6 סי
:וז 65וטבד
] = 5 6ב ד]
:8|05|= 58|80580 :6|05= 6|סב||ב/ים
זז 3:60
בו יו 5
| הפוחו=
תרשים 4.1: אשף שאילתה פשוטה במהלך יצירת שאילתה המבוססת על קבוצת משנה
של שדות בטבלה 686600165 במסד הנתונים 6חוששח+זסצ
8 אא 2000 06055
עוצמתו האמיתית של אשף השאילתה הפשוטה באה לידי ביטוי ביכולתו לצרף שתי
טבלאות או יותר, מבלי לחייב את מעצב השאילתות ליצור צירופיס (פחוסן) בפועל בין
הטבלאות. הדבר מאפשר למעצב להתמקד בשדות הדרושיס בשאילתה ובטבלאות
שמהן יילקחו השדות, מבלי להקדיש זמן כלשהו לעיצוב הנאות של שאילתה. האשף
נבון במידה הדרושה ליצור תוצאות תקינות.
תרשיס 4.2 מציג את אשף השאילתה הפשוטה בשלבי הפיתוח של שאילתה המצרפת
שתי טבלאות במסד הנתוניס סחושוחשזסא. כל שעליך לעשות הוא לבחור טבלה ולאחר
מכן לבחור שדות בטבלה זו ולהעבירס מתיבת הרשימה שדות זמינים (פוטבּוּוה/
5) אל התיבה שדות שנבחרו (6|05= 56!66060). החלון התחתון מציג קטע מקבוצת
התוצאה של צירוף השדה 68%6007/88₪6 מהטבלה 68060065 והשדה 6ותהּאס6טססזק
מהטבלה 6655ט0סזק.
השאילתה שבתרשיס 4.2 מצרפת את הטבלאות 6806007165 ו-00065זק בשדה המשותף
שלהן, 6806007/10, ואולס, בשוס שלב אינך צריך להגדיר זאת. אשף השאילתות
הפשוטות מזהה בעצמו את השדה המשותף ומצרף באמצעותו את שתי הטבלאות.
האשף מניח אוטומטית צירוף פנימי הכולל רק רשומות בעלות ערכיס תואמיס של
השדה 68060012 בשתי הטבלאות. אס רשומה באחת הטבלאות מכילה ערך
6306000 שלא קייס ברשומה בטבלה המקבילה, אשף השאילתה הפשוטה יתעלס
ממנה. אס היישוס שלך אמור להכיל רשומות שקיימות רק בטבלה אחת ללא הקבלה
בטבלה השנייה, תוכל לערוך את עיצוב השאילתה מתוך האשף, לעצב את השאילתה
בתצוגת עיצוב או להרכיב אותה בעזרת משפטי |50.
הזה קור עז6נו) 6!קחוו5
?פטס זוסץ חו לחבאו וס 0 816105 הסוח |
. וטו זס !530 חס הבר 8 זסוח הזסז" 6056 ח63 טטצ = |
:וס /65וסבד
] - 5 :6ב ז]
:805 56|06260 :6|05= 6|סב||ב/ים
סזס סז
סזזופווסקפ
וי
לוח( וזסק שפוְמְחבּנול)
6שוזקסוח! !
ו 0%
| >> |= זט הזכיח65וח ו
| [ץםהווהה ק
בו - ו ו יו 5
פרק 4: טיפול בנתונים באמצעות שאילתות 209
|<)- | עזפט ]56160 : עזסט 51 | >וסטוסז?] 65וזסט6)בּ:) שג
|=. ו 0 סז 36 6816001 | |
681
פֶח63
8 808 וכ
8 ח8500810
188848
38 68 60818
1888
8 הסט
זפחהּ | אפפ טחט | פָהוחִפָטבּ |
זפח3ּ | 80%זס
ז8וז0519!>! 8 זםח6ת=
36 |
מז 8880וח
החוח58850 הט[63 5'הסזת3 681
זז [++| זו שו ]| 4 [4ו 7
וו 60 ₪
וו 60 ₪
תרשים 4.2: תיבת הדו-שיח של אשף השאילתה הפשוטה ותצוגת גיליון הנתונים
המתקבלת ממנה
באפשרותך גס לעצב שאילתות המבצעות פעולות צבירה מסוימות בעזרת אשף
השאילתה הפשוטה. האשף מזהה בעצמו אם ניתן לבצע צבירה ועושה ככל האפשר
לסייע למעצב השאילתה. האשף מציג תיבת דו-שיח כמו זו שבחלקו העליון של תרשיס
3 רק כשניתן ליצור צבירות מספריות. ניתן עדייו לבמצס את נתיב הצבירה על ידי
בחירה באפשרות פירוט (וו060) בשלב השני של האשף. אס תבחר באפשרות סיכום
(זהחח ו 5), יהיה עליך גס ללחוצ על לחצן אפשרויות סיכום (פהסטק0 עזהוחותט5) כדי
לצייו את השדות שייצברו ואת הפונקציות שבאמצעותן תתבצע הצבירה. האשף מכין
לפעמיס שדה סיכוס נוסף. אס הוא עושה זאת, מחק את השדה ברשת עיצוב
השאילתה.
20
?סו זה החחחנו5 זס 653 3 5א|! טס סוטס/א
(6 80 וטע ]0 1614 סיס 5אוסח5) ובס +
| חפוחו= 6% >
66655 2000 8
ץזה וחתופ +
[| |
זה 2ו/ עזסט1) 6!קחוו5
<1ם)= | עֶזפט) ]56160 -: עזסט) ]חטס:) 615טסז 65וזסףפז3ּ:) 3
- .
כ הוה >
6חחב!זלטסזק 6וחב1ז 3-60
סזזסוופקפ
₪ זַא
*)פַחס= :65שטטסזק זכ זחטס > ב יי
1 :בד
:|ב)סד
יי
:סח
- ו
חס
בי 1ב
605 ו
ו 5
858 צְזובָּם 5
65 הזכ ₪
ץזזוסו/1631א | |
8 ז0 [>:|וין, 1
תרשים 4.3: שלב 2 של תיבת הדו-שיח אשף שאילתה פשוטה מאפשר לבצע חישובי
צבירה בשאילתה
שני החלונות התחתונים של תרשיס 4.3 מציגיסם את תצוגות העיצוב וגיליון הנתוניס
של השאילתה. שיס לב שהשאילתה מונה את המוצריסם בכל קטגוריה. החלון האמצעי
מציג את רשת עיצוב השאילתה שמחשבת את התוצאה. לעומת זאת, אשף השאילתה
הפשוטה מבטל את הצורך לדעת היכן להציב את פונקציית הצבירה ואת הבחתירות
שיש לבצע בשורה סך הכל (|פזסד) (עליך ללחוצ על הלחצן סכומים (10₪/5) בסרגל
הכלים כדי להציג את השורה סך הכל ברשת עיצוב השאילתה בעת עיצוב ידני של
שאילתה). האשף משחרר אותך מכל הפעולות האלו.
פרק 4: טיפול בנתונים באמצעות שאילתות | 211
אשף שאילתות חיפוש כפילויות
צמד אשפי שאילתות מסייע ליצור שאילתות המבצעות משימות שכיחות. אשף
שאילתת חיפוש כפילויות (/ וסט 68565ווכט 6חו=) מחפש בערכת רשומות כדי לקבוע
אס קיימות שתי רשומות או יותר המכילות ערכים זהים. האשף מחזיר את הערכיס
הכפוליס של כל הרשומות בעלות ערכיס משותפיסם בשדות שצוינו בקריטריוני החיפוש.
אחת הסיבות השכיחות לחיפוש כפילויות היא ביטול עותקי רשומות נוספים במקור
רשומה. יחד עס זאת, לא ניתן להפוך את השאילתה שיצר האשף לשאילתת מחיקה,
מכיון שהיא תסיר את הרשומות המקוריות יחד עס בנות זוגן. מערכת העזרה
המקוונת של 2000 866655 מתארת שיגרה להסרה אוטומטית של כפילויות בהתאס
לתוצאה שהתקבלה מאשף שאילתת חיפוש כפילויות. כדי להציג את השיגרה, הקלד
יימחק רשומות כפולות'י (6001168%6 06606 /!|63החסלטהּ) בתור קריטריון החיפוש
בכרטיסיה חיפוש של העזרה (שס המאמר: מחק באופן אוטומטי רשומות כפולות
מטבלה).
פתח את ההוראות הספציפיות על ידי בחירה בנושא מחק באופן אוטומטי רשומות
כפולות מטבלה.
הדוגמה שלנו לאשף זה מבוססת על הטבלה פוזס6פח6וץווחח8= (עייו בחלון העליון
בתרשיס 4.4). תיבת הדו-שיח אשף שאילתת חיפוש כפילויות במרכז התרשים, מכילה
זוג תיבות רשימה לבחירת שדות בהס יש לחפש ערכים כפולים. כמו במקרה של אשף
השאילתה הפשוטה, מעביריס שדות מתיבת הרשימה שדות זמינים אל התיבה שדות
בעלי ערכים כפולים (6|05= 6ט|8/-6806ו!קטכ). בדוגמה, נבחר השדה 6ההתה|
שבאמצעותו יתבצע חיפוש אחר כפילויות. כפי שנראה בחלון העליון בתרשיס 4.4, כל
הרשומות שבטבלה 5ז6טחס6!ץוווח8= הן כפילויות של ערך אחד או יותר של שדה זה.
שלב 3 של האשף מאפשר לייעד שדות נוספים שיוצגו בקבוצת ההחזרה. הדוגמה
בוחרת בכל השדות הנותרים.
החלון התחתון בתרשיס 4.4 מציג את אחד הצדדיס החזקיס ביותר של אשפי 06655( :
פישוט משימות מורכבות. החלון התחתון מציג גם את עיצוב רשת עיצוב השאילתה
שיוצר האשף. שיס לב שהתצוגה כוללת שאילתת משנה ב-501. משפט שאילתת
המשנה כולל פונקציית צבירה וגס את הפסוקיות +ם ק(/6₪0 ו-6א1/אה. זו שאילתת
המשנה בשורת הקריטריון של רשת העיצוב שמזהה ערכיס כפוליס בערכת הרשומות
של המקור. באפשרותך לכוונן את עיצוב השאילתה שנוצרת על ידי הוספה או הסרה
של שדות, כולל שדות מקור חדשים או חליפיים, או אפילו על ידי שימוש בקריטריוניס
נוספיס להסרת כפילויות מסוימות.
2 הח 2000 406655
<₪1)- | 6 - >זספחו6)אע!וחובּ ] ₪8
| 618000 | 6חזבח] | סובה | והז | |
8 תספטסס אמח בו
וו הס0פססכ | הוחופזו/* 2
חספ ווח חשו) 3
חספ ווח צחסך 4
אה ]-חו-זפ1ח 3 ווח צוופתם 5
5 זט |++| ו +
ה ול עזסט1) 65זב3ּ6ו!קט וחו-]
?הסוס הרזחו 306שו!קו הוב:חס6 זתטוחח 16105 הסות/א
4
טס , זהז05:0ו6 חס הבר 6'וסחח תסוצו וו זס] החט)ספ| 6זה טסץ ]| 6וקוחה6% זס= סה א 1
סח 6!05ו] הסופ טחב עו 56ססח6 ב|טסאו א 2
אא אא אא 3
:16105 8/06/י-8לבסווסטום :6|05ו] 6|סב|ובים א 2
אא אה א 4
סזוחב-
שבח
>
1
א
4
₪
|<1)- | עזסט[) 561801 - 150015 ע!וחובּ ] זס] 65זהּשו!קט חות א
15 ע!וחובּ ]
תפז ]= | = 5זביסהת6הזע!וחה = 5זסיפותפזיז !וחב = | :6!סבד
000000 מַהח500ה| 500
יו
( 1<(*)פחוס) ב16/םו] שבח | ים ק( 60 קוחד 5 5 זסותפויז/י]והחב = = ספת | 607 551) ח1 | :הוזפטוז
7
תרשים 4.4: אשף שאילתת חיפוש כפילויות. החלון העליון מציג את מקור רשומות
הקלט. תיבת הדו-שיח המרכזית מציגה בחירת שדה שלפיו יתבצע חיפוש הכפילויות.
החלון התחתון מציג את השאילתה שנוצרה בתצוגת עיצוב
פרק 4: טיפול בנתונים באמצעות שאילתות 213
אשף שאילתת חיפוש של לא תואמים
אשף שאילתת חיפוש של לא תואמיסם (2870ו) זט 60ח6ז8החש סחו=) הוא רכיב נוסף
התומך במטלת ניהול מקובלת של מסדי נתוניס. האשף מחזיר רשומות בטבלה אחת
שאין להן רשומות תואמות בטבלה מקבילה. נוח במיוחד לנהל באמצעותו טבלאות
שאין להן שלמות קשרים, אך קיים ביניהס קשר גומלין מסוג יחיד לרביס. במצב זּה,
באפשרותך להסיר, בשוגג או במתכוון, את צד היחיד או את צד הרבים של קשר
הגומלין. כאשר לאחד מצידי הקשר, היחיד או הרבים, אין בן-ווג בטבלה המקבילה,
אשף שאילתת חיפוש של לא תואמים יגלה זאת. באופן טיפוסי תרצה להסיר רשומות
אלו ממקור הרשומות. אין כל בעיה - כל שעליך לעשות הוא להפוך את השאילתה
שנוצרה לשאילתת מחיקה.
השאילתה שבתרשיס 4.5 מחפשת רשומות לא תואמות בטבלאות שסהבּאץ!וחחה8=
ו-5ז0טוח6!ז/י!ווחה=. ההשוואה מתבצעת על השדה 6וַַ8ַח] בשתי הטבלאות. השאילתה
מצרפת את שתי הטבלאות על ידי אילוצ כל הרשומות מהטבלה פפואאץ!ווח8= לתוך
השאילתה, כמצוין בחץ ההכוונה מהטבלה פ6וחפ8אץ!וחח8] אל הטבלה פזסטוח6וזץווחזה.
לאחר מכן, השאילתה מחפשת ערכי || ₪ בשדה 6וַהַח1 בטבלה 8זסטוחסואץ!ווחה-. אס
ערך הרשומה של 6ו8ח] בצד 5זסטחסואץוווח8] של קבוצת ההחזרה הוא ו|טח, לצד
55וחהץ!ווחה-] של קבוצת ההחזרה אין בן וג תואס בטבלה 5זססוחסועוווח8=. העיצוב
הנאות של שאילתה זו מחייב הבנה של הקשרים ושל ערכי |וגוח. התעמקות בעיצוב
שאילתות כגון זו ובשאילתות שמחזירות ערכים כפולים עשויה לחדד את מיומנויותיך
בעיצוב שאילתות, במקרה שאינך רגיל לכתוב שאילתות כאלו דרך שיגרה.
ב ו
הו8]518= ₪
60016: | + | 2 | |*=[
[<1םו .₪
מד ו חוה |ע!וחובּ 1
%*
סוחבח 1
סחחבח !] :6/0
ץוחב = | :וד
]וספ
יו
:סו
7
תרשים 4.5: אשף שאילתת חיפוש של לא תואמים. מקור הרשומות השני הוא הטבלה
5זסם וח6ו ץ|ורחה=. קריטריון ההתאמה הוא השדה 6וחפח ].
4 ח/ 2000 406655
אשף שאילתה מוצלבת
מנתחי תמיכה בהחלטות מגליס לפעמים ששאילתות הצלבות (6765ש0 67055%85)
מסייעות להגיע לתובנות חדשות אודות אובייקטיס ותהליכים. תרשיס 4.6 מציג טבלת
קלט של אשף שאילתה מוצלבת ואת קבוצת ההתחזרה שהוא יוצר ממנה. תצוגת קבוצת
ההתחזרה טופלה בתצוגות עיצוב (חטו65כ) וגיליון נתונים (סַחַ5ּזה).
שאילתת ההצלבות שבגיליון הנתוניס התחתון מונה את 810" לפי השדות חסטבּ|₪6
ו-806ח] של גיליון הנתוניס העליון. הייטיפוליי שהענקתי לתצוגת העיצוב מכוונן את
מיון השורות לפי חסט8ּ|6ח, מסדר עולה ליורד. בתצוגה גיליון נתונים, גררתי את
העמודה המסומנת בתור פ1ח3ת 0 |טסד כך שבמקוס שתהיה העמודה השנייה, היא
מעתה העמודה האחרונה. אחרת, העיצוב היה אוטומטי. לא היה צורך להכניס שמות
שדות ומילות מפתח ברשת עיצוב השאילתה, וגס לא היה צורך לכתוב קוד 501.
| 40]2000 | שחזהה] | סחזפה- | קוחו | |
+
8 חספטסם אמח
סוי הספפסכ | הוחואזו/* 2
חספ ווום חפ 3
חספ ווום צחסך 4
אה |-חו-זס זבה ווח צו|פם 5
2
2
1
1
4 01 [> :|| וו
תרשים 4.6: שאילתה שנוצרה באמצעות אשף שאילתה מוצלבת של 2000 655סס. גיליון
הנתונים העליון מציג את הקלט של קבוצת ההחזרה של השאילתה שמופיעה בגיליון
הנתונים התחתון
שתי טכנולוגיות ניתוח חדשות נוטלות את הבכורה משאילתות ההצלבות. הראשונה,
טבלת ציר (190!6 +סטוק) יכולה לחשב תוצאות הצלבה פשוטות מתוך מקור רשומה, אך
באפשרותה גס להפעיל טיפול דינמי בנתונים לאחר חישוב ההצלבה. הדבר מאפשר
למנתחי החלטות לתקשר באופן דינמי עס תוצאות הניתוח שלהם. 866655 הופך טבלת
ציר לוּמינה באמצעות הטפסיס ודפי הגישה לנתוניס שלו (78065 06055( מּז8), אך
|66א₪ 6705066 הוא הכלי הראשי של 08666 לביצוע ניתוח טבלת ציר. הטכנולוגיה
פרק 4: טיפול בנתונים באמצעות שאילתות | 215
השנייה, מסד נתוניס עיבוד ניתוחי מקוון - 0147 (0חו00655זק |63חץהחה 6חווחס)
מאפשרת ניתוח נתונים דינמי מול מקורות נתוניס גדוליס מאוד. טכנולוגיה זו מחייבת
שימוש בשרת מסד נתוניס מרוחק (אחד או יותר), כגון 7 ז7/6ז56 501 וצרכן 014 עבור
הנתוניס. בקרב הרכיביס המקובליס של 2000 01666, 2000 |6אם הוא המשאב המיועד
לתפקיד וה.
שימוש בתצוגה עיצוב
אשפי השאילתות מאפשריםס לעצב שאילתות בלי תלות ברמת השליטה בתחביר או
בסוגיות העיצוב, אך הן מצמצמיס את היקף האפשרויות שניתן להשיג בעזרת
שאילתות. כפי שקורה בעת השימוש באשפים, לעיתים הם יוצרים עיצוב מורכב יותר
מאה הדרוש בפועל כדי למלא משימה מוגדרת. הדבר עלול לסבך את תהליך עריכת
שינוייס קטניס בשאילתה. אס תעצב את כל השאילתה בעצמך, קרוב לוודאי שתיוכר
בלוגיקה הנכונה ותצליח לערוך בה שינוייס בהמשך ללא קושי מיוחד.
הוספת טבלאות ושאילתות
באפשרותך ליצור בעצמך שאילתות מותאמות אישית על ידי הוספת טבלאות או
שאילתות אחרות לרשת עיצוב השאילתה. אס תבחר בדרך או, בדרך כלל לא תצטרך
לכתוב קוד 501 כדי ליצור שאילתות ולערוך אותן. פתח את רשת עיצוב השאילתה על
ידי לחיצה כפולה על יצירת שאילתה בתצוגת עיצוב (שסוש ח0ו65כ ח1 זט 670806)
בקבוצת האובייקטיס שאילתות (067₪65) שבחלון מסד נתונים (פהּסַהּזהכ). לאחר
מכן, הוסף טבלה או שאילתה אחת או יותר, או צירוף כלשהו של טבלאות ושאילתות
בראש רשת העיצוב. בחר טבלה או שאילתה ולח על הוסף (400) כדי להעביר אותה
מתיבת הדו-שיח הצגת טבלה (80!6ד צשסח5) לראש רשת העיצוב.
לאחר שהוספת טבלה לראש התצוגה עיצוב, עליך לבחור שדות שיהוו חלק מהשאילתה
ברשת התחתונה. קיימות לפחות שלוש דרכיס להוספת שדות לשאילתה. דרך אחת -
גרירה ושחרור של שדה מתיבת הרשימה שמייצגת את הטבלה בחלק העליון אל
השורה שדה (8!0=) ברשת התחתונה. אס תגרור ותשחרר שדה בקצה חימני העליון של
עמודה שכבר מאוכלסת בנתונים, 466655 יעביר אוטומטית את העמודות הנותרות לצד
שמאל (בממשק עברי). דרך שנייה - באפשרותך ללחו לחיצה כפולה על ערך ברשימת
השדות. על ידי כך תעתיק את השדה לעמודה הפנויה הראשונה ברשת. דרך שלישית -
ניתן לבחור שדה מתוך תיבה נפתחת בשורה שדה של כל אחת מהעמודות. אם חלקה
העליון של הרשת מכיל יותר ממקור רשומות אחד, הרשימה הנפתחת של השורה שדת
תמספר שדות שקובצו לפי מקור רשומות.
באפשרותך לפעול בכל אחת משלוש הדרכים בטיפולך בטבלה בודדת כדי לציין עמודות
אחדות בטבלה המכילה עמודות רבות. תרשים 4.7 מציג את התצוגות עיצוב וגיליון
נתונים (8550660זכ) של שאילתה המבוססת על הטבלה 006₪סזק בדוגמה. השאילתה
מציינת שלושה שדות מתוך הטבלה.
6 הח,/ 2000 406655
השורה +501 בעמודה 6וחבּז6ט0סזק בתרשים 4.7 נקבעה בתור סדר עולה (בַחו0ח506).
שורה וו מכילה רשימה נפתחת ובה שלוש אפשרויות: סדר עולה, סדר :ורד
(0חו0ח26506) ולא מוין (50660 זסא). אס תבחר באפשרות האחרונה, התא יופיע
כשהוא ריק ברשת ונתוני העמודה לא יהיו ממויניס בעת הצגת השאילתה בתצוגת
גיליון נתונים. בחירה באפשרות סדר עולה בעמודה 6וחִ83ז6טססזק גורמת לרשומות
להופיע בסדר אלפבתי בהתאס ל-6וה68ט0סזק. אס שורת המיון של 6והּאס6טססזק
ריקה, גיליוו הנתוניס בחלון התחתון של תרשים 4.7 יופיע ממוין לפי המפתח הראשי
של הטבלה, פשטס0סזס.
|<1םן- | הנוי בד ו א
חח ס6פו 6ב טסוק | | 10הטהסזק | :בשו
זה | 5טטסזק| !פ|סבד
| | = פהבתספה] = | 500
וס
סו
17
|<]םן- | הזה יוב בד ו א
|.. 8 + סז ו זט | |
חסזטן 8סו|
מז 5880וחה .3
1 080 ה0510 .40
זו 3 ₪0
5 חסה 3 18
1/0081
פָח03 2
3588 39
פָחוח58850 חטן[0:3 5'חסזח 81ח) 4
או סטחנוכ) פ'הסזת 81 5
8 40
8 6₪₪ 38/0618
שףסזוסם 48 5630015 50
אוו סוו= 52
7 זס [%*| | + ו ]| + 44 :ספה
תרשים 4.7: החלון העליון מציג את תצוגת השאילתה של שאילתה שנוצרה באופן ידני
ומבוססת על הטבלה 6%5טסזק. החלון התחתון הוא גיליון הנתונים שהתקבל כתוצאה
מהשאילתה
ה
ה
ה
ה
ה
ה
ה
ה
ה
ה
ה
ה
פרק 4: טיפול בנתונים באמצעות שאילתות | 217
קל ופשוט להוסיף מקור רשומות אחד לתצוגת שאילתה. באפשרותך לבחור מקור
רשומות קלט מתוך טבלאות ושאילתות אחרות. מומלצ מאוד לצרף מקורות רשומות
(אם 860655 אינו מצרף אותס בעצמו בהתאס לקשרי הגומלין המצויניס בחלון קשרי
גומלין). כשלון צירוף הטבלאות יגרום לכך שגיליון הנתוניס שיתקבל יציג את
התוצאה הקרטזית של שתי הטבלאות (כל השילובים הסדוריס האפשריים של שורות
מהטבלה הראשונה עס כל השורות מהטבלה השנייה) של שתי הטבלאות. זו תהיה
לעיתיס קרובות טבלה בעלת מספר שורות גדול במידה מופרזת.
תרשים 4.8 מציג את הטבלאות 65טסזק |-5|ו6%8 ז66זס מצורפות באמצעות השדה
סשסטטסזק. באפשרותך ליצור צירוף ברירת מחדל כמו זה על ידי גרירת שדה מטבלה
אחת ושחרורו בשדה התואס בטבלה השנייה. כך תקבל גיליון נתוניס עס שורה אחת
לכל שדה תואס בשתי הטבלאות. אם רשומה כלשחי מופיעה בטבלה אחת בלבד, היא
לא תיראה בגיליון הנתוניס של השאילתה. קיימים שני סוגי צירוף נוספים. סוג אחד
מצרף את כל השורות מהטבלה השמאלית פסט0סזק, והאחר מצרף את כל השורות
מהטבלה הימנית 61916 ז06זס. באפשרותך לבחור אחד מסוגי הצירוף הללו על ידי
לחיצה ימנית על קו הצירוף ובחירת סוג הצירוף המבוקש לאחר מכן.
[<11)- | עזסטון) 561601 : 06?ו60ח6זא 01385 עו בג
8 וז
0] :66וק 66000 חפוס / וח סו יג
|[ = 06855 ]0706 5 זז 5 טס | ]= 06635 ז6הזס | :שפד
56 | 508
ש [ .
|
ש ₪ |
6 0] :66 060ח6טאם
זסז0]*[ סה ]|[ זכ
| = ([5ח60פוכ]-1)[ ססוזלפוח(] !| !ומס
תרשים 4.8: החלון העליון מציג את עיצוב השאילתה של שאילתה שנוצרה באופן ידני
בהתאם לשתי הטבלאות, 66סט6סזק ו- 261915 ז06זס. החלון התחתון מציג את תיבת
הדו-שיח שנה מרחק מתצוגה (וח200) המציגה את הנוסחה של שדה מחושב בשאילתה
8 הח 2000 406655
השורה טבלה (1806) בתרשים 4.8 מציגה ארבע עמודות ששייכות לטבלה
65 ז0ס0זס. עמודה נוספת, 6וח8זסטססזק, שייכת לטבלה 5ס6טססזק. השדה האחרון
של עיצוב השאילתה אינו נראה בשלמותו בחלון העליון של התרשיס.
התייחסות לגליונות נתונים משניים
אחד החידושיס שהונהגו ביישוס 2000 8460655 הוא היכולת להתייחס בצורה היררכית
לטבלה או לשאילתה אחת מתוך שאילתה אחרת. במובן מסויסם אפשר לומר
שלשאילתה אם יש טבלה או שאילתה בת.
תרשים 4.9 מציג גיליון נתוניס משני בתוך גיליון נתוניס של שאילתה. השאילתה הַאָס
נקראת 680600766ץזף. שים לב לסימן החיבור (+) בעמודה הראשונה של השאילתה.
לחיצה על אחד הסימנים הללו, למשל הקטגוריה ץוש!טסק /+163א, פותחת גיליון
נתוניס בן והופכת את סימן החיבור לסימן חיסור (-). הסימן המתחלף מתפקד כמתג
דו-מצבי לפתיחה וסגירה של גיליון נתוניס משני המקושר לשורה כלשהי בשאילתת
האם. גיליון הנתוניס המשני (הבן) שבתרשים מציג את שדות המוצר עבור שורה אחת
של גיליון הנתוניס האב שלו. כללית ניתן לומר שגיליון הנתוניס הבן מפנה לשאילתה
או לטבלה נוספת שמקושרת לשורה הנוכחית. באפשרותך לפתוח בו-זמנית גליונות
נתוניס בניס רביס. לאמיתו של דבר, מאפיין של שאילתה מאפשר להשאיר את כל
גליונות הנתוניס הבניס פתוחיס כברירת מחדל.
|<1ם]- | הד יו ב בר
50 זב 081601 | ק! עַזסאַ0819 | | |
38| קפחחזום 5 חח , 085 , 1895 , 608888 , פאחוזם 08 ב ו 1 + | ?|
הההחז| קהחחזום 588505 בחה , 8805ז60 , 85ח8ו|8ז , 58085 58/01 טח3 זאו ו 2
38| קפחזום 5 50/8811 300 , 630185 , 855885 05 3
8הה3ח| קפחחזום 858" 000158 ץזו3ם 4
שהח| ק3וחזום |08788 800 ,8913 , 07806879 , 8809ז | | 18109/08188|5 5
38| קפוחזום 58 86 מז 1/9 5
זז )וח אה זפ" עָוחב וו זפ 6 וז פ! סז
.5 8 500 - 18 וס /1 ו טאו 6008>] ומפו 9
ו א 1 - 20 | צזווטס 1/0 חסזוטו פסו|ת .17
.5 0 א 5ח09 50 | ץזוס 81/7 01 זפהָמוזטחד 29
5 48 31/0 8 58 חפ 53
58 16 וס ו סד 54
68 2 א 00885 24 | ץז881/0|1/] פוסחותס 816 55
וס 1 ו (זפט הטוס זר
| 4 007
38| קפחחזום טס 68 בחב ]וט ספוזם זז 7
8הה| קפחחזום 5 800 5880880 68
(ז ט רחס זט
8 |++| תו %ן |[ 4 ]4 נמ
תרשים 4.9: שאילתת אם, 68%600765/זוף, מציגה את גיליון הנתונים המשני שלה עבור
הקטגוריה ץז+!טסץ /+163]
חמישה מאפייני שאילתה חדשיםס שולטים במראה ובתפקוד של גליונות נתוניס
משניים. המאפיין שם גיליון נתונים משנל (6וח8 50008%85066%) מצביע על טבלה או
שאילתה המכילות את נתוני הבן. כדי לגשת למאפיין ה או לארבעת האחרים, פתח
את תיבת הדו-שיח מאפיינים (65ז6קסזק) בתצוגת עיצוב של השאילתה. חמשת
פרק 4: טיפול בנתונים באמצעות שאילתות 219
המאפיינים החדשים מופיעים בתחתית תיבת הדו-שיח. תיבת המאפיין שם גיליון
נתונים משני מכילה תיבה נפתחת שמפשטת את תהליך הבחירה של שאילתה או
טבלה אחרת בתור מקור רשומות עבור גיליון נתוניס משני. במקרה של השאילתה
שבתרשים 4.9, שם גיליון נתונים משני הוא הטבלה 666טססזםץוא. הכנס שמות שדות
עבור המאפייניס קישור שדות צאצא (₪6!05 6!וח0 %חנ1) וקישור שדות מראשלי (חו!ן
5 "18506)) כדי לסנכרן את שאילתת האס עס שאילתת הבן או טבלת הבן. כמו
במקרה של טופס עיקרי עס טופס משני, שמות השדות אינס חייבים להיות זהים, אך
סוג הנתוניסם שלהס צריך להיות והה. המאפיין גובה גליון נתונים משני
461000 500085850661) שולט בגובה גיליוו הנתוניס המשני בתצוגת גיליון נתונים של
גיליון האם. ואחרון חביב, המאפיין גליון נתונים משני מורחב (660ה50008185
0חהקאם) מקבל את הערכים כן (65+) ולא (סא). תיבת הדו-שיח מאפייני שאילתה
(00671165זק /זסגו)) כוללת רשימה נפתחת להכנסת אחד משני ערכים אלה.
0 8406055 תומך בגליונות נתוניס צאצאים עבור גליונות נתוניסם הורים המבוססיס
על טבלאות כמו גם על שאילתות. לעומת זאת, מנגנון התמיכה בגליונות נתוניס
משניים עבור שאילתות הוריס שונה במקצת עבור טבלאות הורים. בטבלה אם ניתן
לקבוע את קשר הגומלין בין טבלה אס והטבלה או השאילתה הבת שלה בחלון קשרי
גומלין (5ק1ח5ח56|800). אס תבחר דוקא להשתמש בתיבת הדו-שיח מאפייני טבלה
(65!זז6קסזק 180!6), עליך לפתוח את הטבלה בתצוגת עיצוב. לאחר מכן, עליך לפתותח
במפורש את תיבת הדו-שיח מאפייני טבלה על ידי לחיצה ימנית בחלקה העליון של
הרשת ובחירה במאפיינים (65ז6קסזק). פעולה וו מאפשרת להשתמש באותס חמשת
המאפיינים כמו עבור שאילתה כדי לקבוע את קשרי הגומלין בין טבלה אס לגיליון
הנתוניס המשני שלה.
שימוש בשדות מחושבים
באפשרותך ליצור שדה מחושב הגוזר את ערכו מתוך שדה אחד או יותר של שאילתה.
חשב שדות אלו באמצעות אופרטוריס חשבוניים או אופרטורי מחרוזת, פונקציות
מוכללות או פונקציות מותאמות אישית.
שדות מחושביס אינס ניתנים לעדכון באופן ישיר, מכיון ש-866655 מאחסן רק את
הביטוי של משפט 501 ולא את תוצאת החישוב. באפשרותך לשנות שדות מחושבים על
ידי שינוי הקלטיס לביטוי החישוב. למרות ששדות מחושביס אינס ניתניס לעדכון,
היישוס יכול לצבור אותס לאורך הרשומות.
הגדרת שדות בתור ביטויים בשאילתה טומנת כמה יתרונות. ראשית, מאחר שביטוי
יכול להציג נתוניס מבלי לאחסן אותם בפועל, שימוש בביטוי עבור שדה מאפשר
לשאילתה להציג תוצאה ללא צריכת שטח אחסון. שנית, ביטוייס מחושביס מחדש
באופן אוטומטי. כך הם יכוליס לשקף את הנתוניס העדכניים ביותר ללא התערבות
כלשהי של מנהל מסד הנתוניס. שלישית, קייס מיגווו אפשרויות להכללת ביטוייס
בתור שדות. לימוד האפשרויות הללו יגדיל את הבנתך הכוללת בעבודה עס 60655.
406655 2000 / 0
אופרטורים חשבוניים תרשים 4.8 מציג שדה מחושב שמחשב מחיר סיכום לשורה.
ביטוי מחיר הסיכוס לשורה מתבסס על אופרטור חשבוני פשוט, כגון כפל וחילוק. שיס
לב שהשורה טבלה (130!6) של השדה המחושב בחלון העליון של תרשיס 4.8 ריקה.
משמעות הדבר היא שהשדה אינו תופס שטח אחסון כלשהו. השדה המחושב
שבתרשיס 4.8 משתמש בתווית שדה לייצוג תווית בעל משמעות של השדה בתצוגת
גיליון נתונים.
פונקציות מוכללות תרשים 4.10 מציג שדה מחושב שמתבסס על פונקציות מוכללות.
הביטוי מרכיב מחרוזת, ולכן באפשרותו להשתמש בפונקציה 16%. השימוש בפונקציה
זו חוסך זיכרון בהשוואה לפונקציה הכללית 16% שמחזירה מחרוזת שסוג הנתוניס
שלה משתנה.
הביטוי בתרשיס 4.10 משרשר שלוש מחרוזות נפרדות. ראשית, הוא מאחזר את האות
הראשונה בשמו הפרטי של בן המשפחה באמצעות הפונקציה 168%. שנית, הוא מצרף
את המחרוזת " .יי כדי להוסיף נקודה ורווח לאחר האות הראשונה של שס האיש.
הביטוי מסתייס בצירוף שס המשפחה. לשדה מחושב זה יש עדיין תווית ברירת מחדל,
אך תצוגת גיליון נתונים מציגה את העמודה עס כותרת שונה, תיאורית יותר. תיבת
הדו-שיח חימנית העליונה בתרשיסם 4.10 מלמדת שניתן להשיג תוצאה זו על ידי מתן
ערך לכיתוב של השדה. ערך כלשהו בתיבת מאפיין הכיתוב יחליף בתצוגה את שס
ברירת המחדל של העמודה.
|< || < ו = | עזסט[) 56|601 : 160הוצזספ עו ג
מס | | ו₪60613
| ₪ | מ
6ב זו וסט ה
5 זט |%*|ואן + 1 [4 [4ו ב
תרשים 4.10: שלושת החלונות שבתרשים חושפים את כללי התחביר והתווית החלים על
הוספת ביטוי מחרוזת לשאילתה, במטרה להגדיר את השדה היחיד שלה. החלון התחתון
מציג את קבוצת ההחזרה מתוך השאילתה.
פרק 4: טיפול בנתונים באמצעות שאילתות | 221
ניתן לפשט את תהליך השימוש בפונקציות מוכללות ולהפנות לערכי טבלה, שאילתה
וטופס, באמצעות תיבת הדו-שיח בונה ביטויים (ז06וום חסו55סזסאם). אס תמצא לנחוצ
לשפר את הביטוי לאחר הוספתו באמצעות בונה הביטויים או באופן ידני, השתמש
בתיבת הדו-שיח שנה מרחק מתצוגה (ו200). באפשרותך לעשות זאת על ידי לחיצה
ימנית בשורה שדה (6!0=) ובחירה באפשרות מרחק מתצוגה. תיפתח תיבת הדו-שיח
שנה מרחק מתצוגה ובה הביטוי שכתבת. שנה את הביטוי לפי הצורך בטרס תלת על
אישור כדי לסגור את תיבת הדו-שיח ולהכניס את הביטוי שערכת לשאילתה. החלון
התחתון שבתרשיס 4.8 הוא תיבת שינוי המרחק מתצוגה שמציגה שדה מחושב מתוך
שאילתה.
פונקציות מותאמות אישית | נוסף לשימוש באופרטורים ובפונקציות מוכללות,
באפשרותך לפתח בעצמך פונקציות מותאמות אישית שיחזירו ערכי שדה. תרשיס 4.11
מציג שאילתה המקושרת לטבלה ₪665 000 במסד הנתוניס 5פטק של ז6/ז56 .501.
השאילתה מציגה את השדות ₪06 ו-6והספטק של כל אחת מהרשומות. בנוסף, היא
כוללת שדה מחושב שקורא לפונקציה המותאמת אישית א68/5%02. הביטוי מעביר את
ערך השדה 0866פטק אל הפונקציה. הפונקציה 08/5002 מופיעה מעל התרשים. אס
תשווה את שס הפונקציה שלפניך עס עיצוב השאילתה שבתרשיסם 4.11, תיווכח כי
הפניות לפונקציה בשאילתה אינן תלויות ברישיות (5106ח56 6856).
חן 5 (2866 ₪5 28%6ח02)1 0857 הסטסחט= סווטגוק
(1/1/2000%א ,6זהסח1 ,"ס")וכ הכ = א2סזַ5עְהס
חסטסחט= 0חם
<ום]ן- | הנדומ בד ובונ ירי
-
=]
| ([0868סטם])26סס5ע03 :26 סס פעה| | || | | 6בסטם]+ | 8₪) ₪66
| 00| 666 0ם0| = 65 ססנ| :שסבד
[ 0000000000[ 00 שַח9006שק[ 8 | ₪ח5
:אוסת5
ו
מס
תרשים 4.11: השאילתה שלפניך משתמשת בפונקציה מותאמת אישית לחישוב ההפרש
בין ערך שדה בשאילתה לבין התאריך 1 בינואר, 2000
2 הח 2000 466655
הפונקציה קולטת את ערך השדה 08%6פט0 בתור ארגומנט ומחזירה ערך מסוג ז%606ח1
אל השאילתה. פעולה זו מאפשרת יישור אוטומטי לימין (אם לא מצייניסם את סוג
הנתון המוחזר בתור ז606זח1, הפונקציה תחזיר משתנה טחאוזפּט) לשאילתה שיגרוס
ליישור לשמאל). הפונקציה המותאמת אישית מכילה שורה בודדת. היא מיישמת את
הפונקציה המוכללת 86014 כדי לחשב את ההפרש בימיס בין השדה 08%6פטכ לבין
התאריך 1 בינואר, 2000.
יש בעיה ביישוס פונקציות מותאמות אישית בביטוייס של שדות שאילתה, בעיקר עס
מסדי נתוניס גדוליס ומרוחקים. על היישוס להשתהות בזמן שטבלה גדולה עוברת
בקווי התקשורת מהשרת המרוחק אל תחנת עבודה מקומית. בנוסף, לא ניתן לנצל את
עוצמת החישוב של השאילתה במחשב השרת המרוחק. במצביס בהס הכרתי להפעיל
פונקציה מותאמת אישית, הרכב שאילתה שמחלצת את מספר הרשומות המינימלי
מהשרת המרוחק ומבצעת את כל שאר הפונקציות בשרת זה. לאחר מכן, החל את
הפונקציה המותאמת אישית על קבוצת ההתזרה המצומצמת שהתקבלה מהשרת.
הסתייגויות אלו מפונקציות מותאמות אישית אינן נוגעות לדוגמה שבתרשים 4.11,
מכיון שהטבלה ₪665 000 קטנה מאוד. פונקציות מותאמות אישית פועלות היטב עס
מסדי נתוניס מבוססי-260 בכל גודל.
פונקציות צבירה 501 | באפשרותך לחשב ערך ללא שימוש בביטוי כלשהו. אחת
הדרכים לעשות זאת היא על ידי לחיצה על לחצן סכומים (10₪/5) - הלחצן הנושא את
האות סיגמה (5) - בסרגל הכלים עיצוב שאילתה (ח0ו65 ץזפטוס). לאחר מכן גרור
שדה אחד או יותר אל רשת עיצוב השאילתה ובחר באפשרות קיבוץ לפי (ץֶ₪ סטסזס)
בשורה סך הכל (|₪סז). חייב להיות לפחות שדה אחד בעל ערך מספרי שהשורה סך
הכל שלו אינה מוגדרת בתור קיבוץ לפי. באפשרותך לייעד שדה מחושב בתור שדה
הערך המספרי. בשורה סך הכל בחר ב-חסו655זקאם. הכנס פונקציית צבירה 501 לשדה
המחושב כדי למנות, לסכס או לחשב ממוצע בשדה המחושב עבור כל שילוב ייחודי של
שדות שהשורה סך הכל שלהן מוגדרת בתור קיבוץ לפי במקור הרשומות.
עזסט[) 561601 : 65סוזו6הוחוט 6131155 כ 0עז ג
תי יי
ג
5 זסטזס | י6וטבד
חסו655זםיי= | ץם קטוסזס | :)בד
50
יו
וי ו
7
תרשים 4.12: הביטוי בשדה המחושב בשאילתה זו מחשב את מחיר הסיכום לכל שורת
פריט בכל הזמנה. מילת המפתח קיבוץ לפי בשורה סך הכל מאלצת את פונקציית
הצבירה שבביטוי לחשב את סכום הערכים על פני שורות הפריטים בכל הזמנה בנפרד
פרק 4: טיפול בנתונים באמצעות שאילתות 223
תרשיס 4.12 מציג תצוגת עיצוב שמסכמת את מחיר הסיכוס (סה'יכ) לפי השדה
0זוס. השאילתה מחשבת את מחיר הסיכוס לכל שורת פריט לפני סיכוס וקיבוצ של
השורות לפי 10ז06זס. מילת המפתח קיבוץ לפי מופיעה בשורה סך הכל של העמודה
0ז6זס. הפונקציה חזט5 בביטוי וזש 060ח06א₪ מציינת שהשאילתה תסכס את מחיר
הסיכוס עבור כל הזמנה.
חישוב ערך מתוך כמה שאילתות = יש עניין רב בתוצאות סטטיסטיות שמשוות שני
פריטי מידע או יותר. חשוב לדעת את שוויה הכספי של הזמנה, אך לעיתים מעונייניס
גס להשוות מחיר ההזמנה למחיר ממוצע ולדעת באיזו מידה הוא גבוה או נמוך ממנו.
5 אינו מאפשר לחשב תוצאה כזו בשאילתה בודדת. הדוגמה שנביא בהקשר זה
דורשת שלוש שאילתות, כשאחת מהן מכילה תוצאה קרטזית של שתי השאילתות
האחרות. השאילתה הראשונה היא זו המוצגת בתרשים 4.12. השאילתה השנייה
מחשבת את המחיר הממוצע של כל ההזמנות. שאילתה זו כוללת פונקציית צבירה
פשוטה מסוג 6/₪ הפועלת על מחיר הסיכוס עבור השאילתה שבתרשים 4.12. החלון
העליון בתרשים 4.13 מדגיס תוצאה קרטזית של השאילתה שמסכמת את מחירי
הסיכוס לפי הזמנה (7600106 60815507 סץזס) ושל השאילתה שמחשבת את מחיר
הסיכוס הממוצע בכל ההזמנות (פ6סוזקְפָטהססץזס). כוכור, הדרך לחשב תוצאה
קרטזית היא לכלול את שתי השאילתות בתצוגת העיצוב מבלי לצרף אותן. החלון
התחתון בתרשים 4.13 מציג את השינוי באחוזים בין הסהייכ של כל הזמנה לבין
הממוצע, בכל ההומנות. אס הסהייכ גדול מהממוצע, ערך האחוז חיובי, אחרת - ערכו
שלילי.
הנוסחה שמחשבת את שינוי האחוז מהממוצע אינה מוצגת בתרשים 4.13. הביטוי הוא
לא יותר מיחס בין שני מספרים. המונה הוא ההפרש בין מחיר הסיכוםס בהזמנה לבין
המחיר הממוצע, של כל ההזמנות. המכנה הוא מחיר הסיכוס הממוצע של כל
ההזמנות. מאפיין תבנית העיצוב של שדה מחושב זה מוגדר בתור אחוז (0ח66ז6ק) עס 0
מקומות אחרי הנקודה העשרונית.
/([66וזק 060ח6א= +0 0/ ]-[66וזק 060ח66אם]) :עה וחסיז 68| %
[166ק 060ח₪006 +0 פע ]
<1ם)- | עזסט) 561601 : [צחוסז ]סנחבּת:)וח66ז6 עו 5
-
וז סע
%
ששו 060ח65<= ז0 היה
ו 6131155 0 עו
- %
סזוסטזוס
שסוזק 50080
|
ו כ כו | בקנה |
| + [66וז 060ח66א= ז0 סיה 6 חא והז | :=
טעה ץז | = 066 ט0066355 יז | = 66תות55!ב6שסכועיזם | יפוטבד
7-8 שקה ברו =
:ספ
פישרש יג שכרש | שביה = בג
ה[ - -- | 5
:וזו
מס
4 הח 2000 406655
5 טע הזסז] 26168 % | סז 160086אם | ם! זפאזס | |
7% 40 : ,+
22% 30 1
2% 0 ו
7% 8
%ן 0 7 93
% 70, ו
4% 2
0% 70, 2
5% 9.0
%- 0, ו
% 8
5% 0 9100
%- 5 ו
0 זם [ :]| ויהכן ]| 4 [4ו יי
תרשים 4.13: החלון הראשון מציג שאילתה שמחשבת תוצאה קרטזית של שתי
שאילתות. הביטוי שבשדה המחושב מחשב את השינוי באחוזים בין מחיר הסיכום
להזמנה לבין מחיר הסיכום הממוצע של כל ההזמנות
עבודה עם קריטריונים
התנהגות שאילתות מושפעת בצורה מכרעת על ידי קריטריונים. ציון קריטריוניס
הכולליס ביטויים וקבועיס מאפשר לקבוע את סוג הרשומות שהשאילתה תחזיר.
קריטריוניס גורמיס להכללה או השמטה של רשומות בקבוצת החזרה של שאילתת
בחירה. הדוגמאות המוצגות בסעיף וה מתארות שאילתות פשוטות הכוללות תנאי
אחד. ברגע שתלמד כיצד ליצור אותן, תוכל לנצל יכולת זו באופן מיידי ליצירת תנאיס
מורכביס המשלבים שני קריטריוניס ואף יותר באמצעות האופרטוריס הלוגייס 406
ו-זס.
שימוש בקריטריון בודד תרשים 4.5 מדגיס קריטריון פשוט העושה שימוש במשפט
וטא 5. משפט זה משמש לזיהוי שדה ריק בשאילתה. עיצוב השאילתה מצרף את
הטבלאות 65חהאץ!וחח8= ו-5זססוחסואץ!וחחה-] בשדה 6וִפַח]. סוג הצירוף כולל את כל
השמות מתוך הטבלה פפַחהּא/!וח8] בין אס הס תואמים לערך אַחִאַה! בטבלה
ו ץ!ווח= ובין אס לאו. בטבלה 68 גּאץ!וחח8=, השדה 6ו8ח! מקבל ערך אחד
מתוך ארבעה ערכיס אפשריים: חספפס, ||וח, 5הסחוחו5 ו-חו06!5%0ם. השדה 6תהחה|
בטבלה פזסטוח6ואץ!ווחה] מכיל את הערכים חספפסס ו-!|וח. השאילתה מחזירה את
השמות פחסוחחן5 ו-חו506!5%6, כיון ששני השמות נמצאיס בטבלה 65 8אץ!וחח8= אך לא
בטבלה פזסטוחס6!וץ!ווחה=. שינוי המשפט |וטוא 15 ל- ווטש 6סא 5 גורס לקבוצת ההתזרה
להשתנות ל- חספססס ו-ו41.
פרק 4: טיפול בנתונים באמצעות שאילתות | 225
תרשיס 4.14 מציג עיצוב שאילתה הכוללת רק את רשומות הטבלה פזסטוחס6ווץ!ווח8=
שהשדה שוחִאַח!| שלהן מכיל את האות הקטנה 5 במקוס הרביעי במחרוזת השם.
הפונקציה 56ח1 היא אחת הפונקציות החזקות של 66655. הפונקציה משווה בין שתי
מחרוזות באחת מכמה דרכים. הפרמטר הרביעי מגדיר את סוג החיפוש; 0 מציין
חיפוש בינארי. הפונקציה 105 מחזירה מספר המציין את המיקוס של המופע הראשון
של המחרוזת השנייה בתוך המחרוות הראשונה. בביטוי שבתרשיס 4.14, שפח1ז
מחפשת את המחרוזת 5 במקוס 4 בשס חספטספ. מכאן שקביעת הקריטריון 4 תגרוס
לבחירת רשומות שהשדה פַוִַַח! שלהן מכיל מחרוזת שבמקוס הרביעי שלה נמצאת
האות 5.
|<וםן-. עזטט) 561601 : 61601 16-16165בּ!וס!הּ=)עזם םה
65 )ץוחו ]
5
וי
:5
טסו
תרשים 4.14: שאילתה זו מחזירה רשומות מהטבלה פזסטוחסואץ|וחח8=] שהשדה 6חחפּח |
שלהן מכיל 5 במקום הרביעי במחרוזת
אס תוסיף לטבלה פזססחס6וץוווח] רשומות חדשות שהשדה שַחִאַח]| שלהן מכיל
מחרוזת שבמקוס הרביעי שלה נמצאת האות 5, השאילתה תחזיר גסם אותן. לדוגמה,
הוספת רשומה חדשה שהשדה 86| שלה מכיל את השס חספח58, תגרוס לשאילתה
להחזיר את ח050ח58 יחד עס חספטסס.
שיס לב שתוצאת הביטוי שבתרשים 4.14 אינה מוצגת בקבוצת ההחזרה של
השאילתה, מכיון שהתיבה הצג (שסח5) אינה מסומנת.
שימוש בקריטריונים רבים | השאילתה שבתרשים 4.15 יוצרת סדרת משפטים.
השאילתה מרכיבה את המשפטים באופן דינמי מערכי השדות, אך באותו זמן גס
משמיטה את הרשומה שערך השדה ח₪6!800 שלה הוא 6 (משפטי קבוצת ההחזרה
של השאילתה מתארים את היחס בין כל בן משפחה אלי (המחבר), ולכן הרשומה
שערך השדה ח0סטח688ח שלה הוא ₪6 (אני) לא אמורה להיות כלולה בשאילתה.
השאילתה משתמשת בשני ביטוייס: האחד מציין קריטריון להכללת רשומות, והשני
הוא ביטוי מחרוזת שמרכיב את המשפטים באמצעות ערכי שדה נבחרים.
6 הח 2000 466655
הדוה וב בדו
65 ע]וחוהּ ]
:ןסו
יזם
תרשים 4.15: שאילתה שמרכיבה משפטים בצורה דינמית
שימוש בקריטריון מורכב לאחר יצירה ובדיקה של קריטריוניס לשדות מסוימיס,
ייתכן שתמצא לנחוצ ליצור קריטריונים מורכביס שמשלבים שני קריטריונים ויותר
לגבי שדות מסוימים. ניתן לעשות ואת בשתי גישות בסיסיות. האחת, לשלב
קריטריוניס באמצעות האופרטור 8ח8 (וגס). טכניקה זו גורמת לשאילתה להחזיר
שורות של רשומות העומדות בו-ומנית בכל הקריטריוניס המצויניס. הגישה השנייה
היא לשלב קריטריוניס באמצעות האופרטור זס (או). הדבר גורס לשאילתה להתחזיר
שורות של רשומות העומדות לפחות באחד הקריטריוניס מאלה שהוגדרו.
תשמח בוודאי לדעת כי רשת עיצוב השאילתה של 406655 פוטרת אותך מעיסוק בפרטי
התחביר של משפטי 501. בעת שימוש באופרטור 0חג, הצב את כל הקריטריוניס
בשורה בודדת של הרשת. אס ברצונך להציג את כל הלקוחות מעיר מסוימת שהזמנתס
עולה על סכוס ההזמנה המינימלי, באפשרותך להתחיל בשאילתה שמסכמת מכירות
לפי לקוח מעיר כלשהי. לאחר מכן, בשאילתה אחרת שמפנה לזו הראשונה, תוכל
להשתמש בקריטריון מורכב בעל התניה מסוג 6ח8: קריטריון אחד לקביעת העיר
פרק 4: טיפול בנתונים באמצעות שאילתות | 227
שאודותיה אתה מתעניין, וקריטריון נוסף לקביעת גבול תחתון כך שהשאילתה תחזיר
פרטים על לקוחות שסכוס הזמנתם גבוה מהמינימוס. הפעולה מחייבת שימוש
באופרטור 6חג, ולכן שני הקריטריוניס יופיעו באותה שורה של רשת עיצוב השאילתה.
לאחר מציאת כל הלקוחות העומדיםס בקריטריוניס בעיר המבוקשת, תוכל להחליט
להתמקד בדפוסי הקניה של הלקוחות באותה עיר. כדי לאסוף נתוניס בנושא, תוכל
להתחיל בשאילתה המצרפת את הטבלאות 070678 ו- 2669(5 ז06זס. רשת עיצוב
השאילתה שלך יכולה להכיל ווגות קריטריוניס נפרדיס בשורות רבות. הצבת
קריטריוניס בשורות נפרדות ברשת עיצוב השאילתה משלבת אותם באמצעות ההתניה
הלוגית זס. הקריטריוניס בכל אחת מהשורות יתייחסו לעיר וללקוח. העיר תהיה
משותפת לכל השורות, אך לכל שורה יהיה לקוח ייחודי משלה. כדי לקבצ מכירות
בצורה אלפבתית לפי לקוח, לח על השורה מלין 0ז50) של השדה ז008ז65 ובחר סדר
עולה (0חו0ח566).
שאילתות בחירה מיוחדות
מרבית הדיון על עיצוב שאילתות עד כה התמקד במרכיבי העיצוב הבסיסיים של
שאילתות בחירה (865טס 56|605). בסעיף זה נציג שלוש הרחבות של שאילתות
בחירה, אשר משפרות משמעותית את הגמישות וכושר ההתאמה של היישומיס
שתפתח. תחילה נלמד על אודות שאילתות פרמטר. מפתחים רביס אוהביס לעבוד עס
שאילתות מסוג זה, מכיון שהן מעניקות מימד אינטראקטיבי ליישומיס. אחריס
מחבביס אותן עקב קלות השימוש. שאילתות איחוד (65ח6טף חסוחט) מאפשרות לעצב
נתוניס בצורה שלא ניתן להשיג באמצעות צירוף. כשיש צורך לשרשר שתי ערכות
רשומות או יותר שיש להן שדות משותפים, שאילתות איחוד עשויות להיות הכלי
היעיל ביותר. אליה וקוץ בה - שאילתות איחוד מחייבות ידע מעשי בשפת 501. הסעיף
האחרון בפרק וה מציג סקירה קצרה על התחביר של 501 ודוגמאות רבות להמחשת
השימוש בשפה. נקודה נוספת: שאילתות משנה הן הכלי הנבחר כשיש צורך
בקריטריוניס נבוניס שמתאימיס את עצמם לערכיס במסד הנתונים. לעיתיס קרובות,
שליטה בינונית או מתקדמת ב-501 עשויה להקל על יצירת קריטריוניס דינמייס
שמשתנים לפי הערכיס במסד הנתוניס.
שאילתות פרמטר
שמן של שאילתות פרמטר נובע מהצורך לספק להן פרמטר בזמן ריצה כדי שתוכלנה
להתבצע. בעת יצירת שאילתת פרמטר בתצוגת עיצוב (ח8ו65), תוכל לקבוע את
ההנחיה להכנסת קלט בשורה קריטריונים (חטטוז0). קבע את ההנתיה במשפט
הקריטריון בתור משתנה שערכו ייקבע על ידי המשתמש בזמן ריצה. ממשק המשתמש
מאפשר גס להכריז על סוג נתוניס לכל פרמטר קלט. פרק 2 ממחיש כיצד לקודד
שאילתת פרמטר באמצעות 0פג. בסעיף זה נתאר כיצד לבצע משימה זהה באמצעות
ממשק המשתמש.
8 הח 2000 406655
תרשים 4.6 מציג עיצוב של שאילתת פרמטר יחד עס תיבת הדו-שיח המוכללת של
ההנחיה. שיס לב שההנחיה במשפט הקריטריוניס של השדה 66מקטוחש תחומה
בסוגרייס מרובעיס. הסימן קטן מ (>) שלפני הסוגר הפותח מגדיר את הגבול העליון
של ערכי השדה 6סוזקטטוח(! של קבוצת ההחזרה. אס המשתמש יקליד 35 כאשר יונחה
להכניס ערך באמצעות שאילתת הפרמטר וילח על אישור, השאילתה תציג לו את
רשימת כל המוצריס שמחירס נמוך מ-355 דולר. החלון התחתון בתרשים 14.6 מציג את
המוצרים הראשוניס ברשימה וגם את מספר הרשומות הכולל, העוניס על
הקריטריוניס (56).
|< ום|.. הויו ב בד ןו
6 זוחוהּזבּ?] זסוח ]
:החל 85| 5לסטססזק | חזשפת ו וי
506% ח51וח! ו
סח טוח ו
[66 0671 וספת
תולת 0ספו
0 |
ו
ד
הכ[ 0000000 פהנחספה[ 7 | ₪ח5
5
6 [ :הבח 855| פלסטסזק | חזנפסת]> :בסו
וס
2.00
9.00
7.00
5
5
9.00
ו 8 %:+000]9%ח0 8חו81ך ₪
0 0 0868 | |
0 ה8א06א 233058 ₪
5 זפ יס | הַחבּופָח אופ)] 1805 | = |
0 בי יי זופ| |
0+ מטזץ5 15886ח | = |
0-ו סד טופס | = |
200 | |
2.0 5 | 060118
56 זם |++| וז| + 1 | | 4 :006
תרשים 4.16: שאילתת פרמטר וקבוצת ההחזרה שלה
פרק 4: טיפול בנתונים באמצעות שאילתות 229
משתמשי היישוס לא יפעילו בדרך כלל שאילתות פרמטר מתוך תצוגת העיצוב, כפי
שעשינו בתרשיס 4.16. תרשיס 4.17 מציג את השאילתה כפי שהיא נראית בעת
הפעלתה מתוך מכולת מסד הנתוניס. השאילתה בדוגמה שלפניך מחזירה את הלקוחות
בבריטניה, גרמניה וצרפת, שהזמנותיהס עולות על הערך שציין המשתמש. כפי שנוכחת
לדעת, אפשרות המשתמשים לקבוע את קבוצת ההחזרה הופכת את שאילתות
הפרמטר לדינמיות ואינטראקטיביות.
ו
ו | א כ ו 3 | חו ע'וסטף 076866 ₪ 5 88
ופט 076806
8 זפ א
בי
:65| 3 ]0 5365 חפואו 65500075 טחו=
ה 0
וווקטסחסוטחו=ועום
חמ [ % ] 1166 !הזה "חנ = 010
זהח55!וה5ססיץום
5וסהעים סו
סז פַהַחבת-ח66זט/יזם
5
בי 5
ביני
1155ב" 5005 זט רחפזיז ]וח =חטם = כ בו
5650 וק
55 ץ!וחה= עזם
-
-/ 00-6ב1/ :]ו החב = דורוור!-ב 1 = ורור]-//%4 םוחב !]הב =
+
תרשים 4.17: שאילתת פרמטר מופעלת מתוך חלון מסד הנתונים
בי
תרשים 4.18 מציג את השאילתה מאיור 4.17 בתצוגת עיצוב. לשאילתה זו שני
קריטריוניס: האחד מנצל את מילת המפתת ה[ כדי לבחור לקוחות שמשרדיהס
הראשיים נמצאים בבריטניה, צרפת או גרמניה. כך מתבטל הצורך להגדיר שלוש
שורות נפרדות שכל אחת מכילה שם מדינה אחר. ההנחיה בעמודה 6סוזק 060ח16א₪
ממוקמת אחרי הסימן גדול מ (<), ולכן השאילתה מחזירה את כל הרשומות שמכילות
מחיר סיכום גדול מזה שמציין המשתמש.
ץז 561601 : 6351 |/3!650]/3 זפ 5
נוי יי
חו0ש5ו]- 1[ 6סוזספוח!]* [ סוס חבט ])וחט5 :ססוזם 0 וד 0000 ₪68 : :
ה ההההה הר 10 :
חסו655זם [ 000000000 חספפסמקאם| -- ---------- ץם קטסזש| | = ,8 קטסז| :)סד
ב עמשש צששן ה 5
בו
[ :65| 3 ]0 53/65 חלוש 615500675 טחו=]]< = ("ץחהוחזסב" 7 ,"א ו וי חז
תרשים 4.18: תצוגת העיצוב של השאילתה מתרשים 4.17
0 ;א 2000 466655
השאילתה שבתרשיס 4.18 מבצעת פעולות נוספות. היא מחשבת ומסכמת את מחיר
הסיכוס לפי חברה וממיינת את קבוצת ההחזרה שלה בסדר אלפביתי עולה לפי מדינה
ובסדר יורד לפי מחיר סיכוס של ההזמנות. שיטת העיצוב גורמת להצגת הלקוחות
הגדוליס בראש רשימת הלקוחות בכל מדינה.
שאילתות איחוד
שאילתות איחוד הן ייחודיות מכמה היבטים. ראשית, הן מפשטות בצורה דרמטית את
פעולת השרשור של שתי רשומות או יותר (כזכור, צירוף של שתי ערכות רשומות מציב
אותן זו לצד זו, ולא וו אחר זו). שנית, ניתן להגדיר שאילתות איחוד בעזרת .501
בלבד. שתי התצוגות היחידות של שאילתות איחוד הן גיליון נתונים (ִסִַ5הּזְכ)
ו- 501; בשוס אופן לא ניתן להציגן בתצוגת עיצוב (ח65!0כ). שלישית, לא ניתן לעדכן
ישירות את ערכי השדה בתצוגת גיליון נתונים של שאילתת איחוד. שאילתות בחירה
רבות שנראות זהות לשאילתות איחוד בתצוגת גיליון נתונים, הן קבוצות רשומות
דינמיות (פַפחש0), אשר מאפשרות למשתמש לעדכן את הטבלה שעליה מבוססת
ערכת הרשומות. אס עליך לערוך את הנתוניס שהס תוצאה של שאילתת איחוד, עליך
ליצור עותק של הנתוניסם באמצעות שאילתת יצירת טבלה (%80!6 8%6) ולערוך אותס
לאחר מכן. פעולת העריכה לא תשנה את נתוני הקלט המקוריים של שאילתת האיחוד,
אך תאפשר לפחות לשנות את העותק של הנתוניס שהתקבלו.
תרשיס 4.19 מציג שאילתת איחוד פשוטה ביותר שמשלבת את הטבלה
5 וח6וץ!ו הזה והטבלה 5ז6טות6וץ!והחהס ד5ח00ו00ה. אס אתה מתקשה בעבודה עס
1, תוכל להמשיך לשמור על פשטות שאילתות העיצוב. כתוב את המשפט הראשון
בתור משפט ז55|50 פשוט שמציג את שמות השדות ומקור הרשומות של שדות
בפסוקית 0ס8=. ההפניות לכל שאר מקורות הרשומות צריכות להתחיל במיליס
= 5₪ אסזאש, אך הרשימה עדיין צריכה לכלול את שמות השדות ואת מקור
הרשומות. ניתן לבצע פעולות מתקדמות יותר, אך אין הדבר הכרתי. תוכל תמיד לשלב
את מקורות הרשומות בצורה פשוטה זו ולשמור את פעולות הטיפול המתותכמות
במקורות הרשומות המשולבים לשאילתות בחירה אחרת שמתבססת על הפלט של
שאילתת האיחוד. באפשרותך לבצע את הפעולות המתקדמות האלו בתצוגת עיצוב.
ניתן לראות על פי משפטי ה- ז0ם |55 ו- ד0ם |55 אסזאט שאנו משרשרים טבלאות
שמכילות נתונים מסוג זהה. זוהי דרישה בסיסית בעבודה עס שאילתות איחוד. מספר
העמודות, המיקום, וסוג הנתוניס בטבלאות, או לפחות בשדות שאתה משלב, חייביס
להיות זהים. לא ניתן לעדכן את המקור מתוך תצוגת עיצוב, אך השאילתה מחושבת
מחדש בכל פעסם שפותחים אותה, עם הנתוניס העדכנייס שהתקבלו מהקלט שלה.
שיס לב ש-466655 מבטל זמינות את הסמל תצוגת עיצוב בשאילתת האיחוד, ולכן לא
ניתן לבחון שאילתת איחוד בתצוגה זו. עצב וערוך אותה בתצוגת .501, ובחן את פעולת
משפטי 501 בתצוגת גיליון נתונים.
פרק 4: טיפול בנתונים באמצעות שאילתות | 231
5 )!)0501ז6:₪ [ג]
ופ וווטטחו 05סד עזפטום >וספת1 אופוע 48 שו |
| כ | ₪ 5 ב א | ₪ 5 | ₪ ||
ב א
סוי 5350085
ופול 501 501
עזט1) חסוח(! : 5ז6פחו6)ע!וחובּ ]0 [ 5חסוזו10/ ז6 םס חז6 וא ע!וחוב ]חנו לכא
5זשםהתפ1י]/י]והזה "| החסזו] הסוס | , 6החבה | , הזחה , 10חחב= לס6|ס5
0675 ח18י]/י] וחב וס ד סוה הזסז' הסוסב|₪ , שהחבּח] , סהחבּח= , ס[חחב= :5660 (וכיזוי ו
תרשים 4.19: שאילתת איחוד בתצוגת 501
תרשים 4.20 מגלה את פעולת שאילתת האיחוד של תרשים 4.19. הטבלאות
הזרת = ו-5ז6ט וח6וץ!ורה8= 0 ד5הסטו00 מוצגות בחלקו השמאלי של תרשיס
0; פלט שאילתת האיחוד הוא גיליון הנתוניס בצד ימין. כפי שניתן לראות מסדר
ההצגה של השדה פזוח8=, השאילתה יוצרת גיליון נתוניסם חדש שמאחד את שתי
השורות של הטבלה 5ז6טוח6וץ!|חח 08 0000057 לטבלה 5זסטוח6וץווחזה=.
| ₪6|8000 | סתוהת | |סתובה |כומוה- | |
8 ח50ם0 | | אסות 1 |
וצ הספפסכ 8ומוטזו 2
חספ ווח ח8|₪ 3
חספ וה צְחסך 4
יה |-חו-ז זו ווח צוופתם .5
[<זם) -] 8 65 )אע!וחובּ ]0 541010005 ז6סחו6 וא ע!וחובּ ]הט פא
| ₪0|2000 | | סומבה! | חומה |כומוה= | |
8 הספטסם אסות
ו | חהספטס ומוטזו 2
חספ וו חש 3
חספ ווח צחסך 4
5 זס |+*| ו | + 1 | ]4 יי
|< |םן=. 6 [ : 68 )ע!וחוזבּ ]0 >חסוו40 8
| 361200 | סחזבח 1 | סובה | סו ב
חן08]518 58
8]-חו-זטזח 33 ווח ץו|פחם 5
חן8ז08|5 008
וח | פהסותוחו | 0918 7
ד זס |>:| ואן + 1 | + ]4 :90018
ושפח | פהסוחוחופ | ז0910- 7 ||
2 זט |++| 1 , |[ 4 ]4 מ
תרשים 4.20: שני גליונות הנתונים השמאליים הם קלט שאילתת האיחוד של תרשים
9. גיליון הנתונים שמימין הוא פלט שאילתת האיחוד
2 הח 2000 466655
שאילתות משנה
שאילתת משנה היא שאילתת בחירה המשולבת בשאילתה אחרת. שאילתת המשנה
חייבת להיות משפט ז0ם |55, אך ניתן להשתמש בה בתוך שאילתה אחרת כלשהי, כגון
שאילתת בחירה או שאילתת פעולה. קיימות מילות מפתח נוספות שמסוגלות למתן
את פעולתה של מילת המפתח הסטנדרטית ז60ם |55₪ של 501 בשאילתת משנה. המשפט
557 מחזיר ערכים, ולכן שאילתת המשנה מייצגת אפשרות חשובה לבניית
קריטריוניס דינמייס בשאילתות שמשתמשות בהם.
המשפט 6607 |55 המוטבע בשורה קריטריונים (0688וז6) של העמודה פַחאַת! בחלון
התחתון של תרשיס 4.4 הוא שאילתת משנה.
תרשים 4.21 מציג שאילתה שמחזירה את ערכי שוִַהַּח! הבלתי משוכפלים שהחזירה
שאילתת איחוד שנקראת. 5107600/0005חסו500זסוחסוץ| ורחתה הטס. | שאילתת
האיחוד משרשרת שלושה מקורות רשומה נפרדים. החלון השמאלי התחתון בתרשיס
1 הוא קבוצת ההחזרה של שאילתת האיחוד. שיסם לב להופעת ערך לא משוכפל
אחד בלבד של פַוִַהַח! שנקרא חו06/5%6ם. החלון הימני התחתון הוא קבוצת ההתחזרה
של שאילתת הבחירה.
|<1ם]- | עזסט 561601 : 5סחובּ אע!וחזה ]3160 !קט חס אח:-ועזם םה
-
זוז 005%וו1 5 ז הז א ע!וחזהּ -]חטף
1
|< |ם|=. -.. - 005ו0ו6/0ז5%|0חסווו5/.0ז טחוס |אע!וחוה ]הט לפא
| ₪6|8008 | סתהת] | שחחפה] |0ותו8] | |
|<וםו. ד
| 0808! | |
| ₪886 | < | 8 ח50סם ות 1 |
שו | 200508 8 מוחזו/ 2 ₪
1 זם |+<| | 12 | + | 4 :96076 500 וח | ח₪|0 3 ||
חספ ווח צחסך 4 ||
אופ|-חו-ז0זח 80 ווה ווח 5 ||
חן08]516 8 8 |
חח פהסוחוחו | ז0910] 7 ||
או3]-חו-808וח | פחסוחוחו5 | פחאום ם ||
חח ההז = פהסחחוחום א%סות 9 ||
9 זט |> ?| ו | 1% | + | 4 :96076
תרשים 4.21: החלון העליון הוא שאילתה שמוצאת ערכי שדות לא משוכפלים במקור
רשומות; שני החלונות שמתחתיו הם גליונות הנתונים של הקלט והפלט של השאילתה
פרק 4: טיפול בנתונים באמצעות שאילתות 233
החלון העליון בתרשיס 4.21 הוא עיצוב שאילתת המשנה למציאת ערכי סוחהַח! לא
משוכפלים. שים לב לדמיון בין שאילתה זו לשאילתה שבתרשים 4.4. לבד מן העובדה
שהשאילתה סורקת מקור רשומות אחר, השוני היחיד בין השאילתות הוא ששאילתת
המשנה מתחילה במילים ח1 א במקוס במילה ח1. הביטוי המכיל את ח1 0% מחזיר
שמות לא משוכפלים, בעוד שהמשפט האחר מחזיר שמות משוכפלים.
הערה:
באפשרותך לשלב את קבוצות הרשומות המוחזרות משאילתות כמו אלו
שבתרשימים 4.4 ו-4.21 כדי להחזיר את כל השמות השונים, אך 66655
כולל גם דרכים גרפיות וכאלה שמבוססות על ביטויים כדי להשיג תוצאה זהה. בהמשך
הפרק נתייחס בהרחבה לגישה המבוססת על ביטויים. הגישה הגרפית כוללת מתן
הערך כן למאפיין ערכים ייחודיים (פ65ט|8/ 6טףוחט) של השאילתה.
שאילתות פעולה
5 כולל ארבע שאילתות פעולה שניתן להפעיל באמצעות ממשק המשתמש וגם
בעורת קוד. אלו הן שאילתות עדכון, הוספה, מחיקה ויצירה. כאיש פיתוח ברמת
בינייס תיווכח ששאילתות פעולה הן מעניינות, מכיון שהן מספקות דרך מהירה וקלה
יחסית לשיפור התפקודיות של יישומי 06655.
באחד הסעיפים הקודמיס בפרק סקרנו את שאילתת הפעולה מהיבטיה התפקודיים,
מבלי להתמקד באופן היישוס שלה. בסעיף זה נתאר כיצד משלבים שאילתות פעולה
ביישומיס מותאמים אישית. רשת עיצוב השאילתה כוללת הרחבות מיוחדות התומכות
ברכיביס התפקודיים של כל אחד מסוגי שאילתת הפעולה. בסעיף וה נציג את
השאילתות ואת אופן העיצוב והשימוש בהן.
שאילתות עדכון
שאילתות עדכון משמשות לשינוי ערכי שדות במקור רשומות של שאילתה. מתחיליס
ביצירת שאילתת עדכון בדיוק כפי שנוהגיס במקרה של שאילתת בחירה. לאחר לחיצה
כפולה על האפשרות יצירת שאילתה בתצוגת עיצוב (שסו/ חףו65כ ח1 ץזסט) 670816)
בחלון מסד נתונים (ס085בז8כ), הוסף מקור רשומות אחד או יותר לשאילתה
באמצעות תיבת הדו-שיח הצגת טבלה (80!6ד ששסח5). למרות שס תיבת הדו-שיח, היא
מאפשרת להוסיף טבלה או שאילתה אחת או יותר. באופן טיפוסי תרצה בוודאי לצרף
את כל הטבלאות והשאילתות שאתה כולל בשאילתת העדכון לאחר סגירת תיבת
הדו-שיח הצגת טבלה (באפשרותך להסיר מקורות רשומות לא רצוייס כלשהם על ידי
בחירתם ולחיצה על מקש 08!606 במקלדת).
4 הח 2000 406655
כדי ליצור שאילתת פעולה, עליך לבחור את הסוג שלה. בחר באפשרות שאילתת עדכון
(ץז6ט 6ז081סש) מהלחצן סוג שאילתה (פסץד צעזפטוס) בסרגל הכליס עיצוב שאילתה
(ח0ו265 ץזפט)). חזות הלחצן תשתנה והוא יציג את סמל שאילתת העדכון (עיפרון
ואחריו סימן קריאה). שים לב שפעולה זו מוסיפה שורה מסוג עדכן ל (סד 0008%6)
ברשת עיצוב השאילתה ומסירה את השורות מילין (ז50) והצג (שסח5). לאחר מכן,
הוסף שדה אחד או יותר לשורה שדה (16!0=) של רשת עיצוב השאילתה. עליך לכלול גס
את השדה שברצונך לעדכן. ניתן לצרף לשאילתה שדות נוספיס למטרות זיהוי או כדי
לסייע להגדיר קריטריוניס לקביעת הרשומות שיעודכנו.
לאחר שתסיים לבחור את השדות עבור שאילתת העדכון, הכנס ערך או ביטוי באחד
התאים של השורה עדכן ל. הערך שבתא קובע את ערכי ההחלפה החדשים. אס לא
סופקו קריטריוניס כלשהם, הפעלת השאילתה תעדכן את כל הרשומות שבמקור
הרשומות של השאילתה. שילוב קריטריון אחד או יותר יגביל את פעולת העדכון
לשורות שעומדות בתנאיס מוגדריס.
בעת הפעלת שאילתת עדכון, לא ניתן לבטל את השינוייס בלחיצת עכבר. עליך לשחזר
את כל הטבלה מתוך עותק גיבוי, או להפעיל שאילתת עדכון אחת או יותר כדי לשחזר
את הערכים המקוריים. הלחצן תצוגה (שסו/) בסרגל הכליס של תצוגת העיצוב מאפשר
לבחון את הרשומות ששאילתה תשנה מבלי לבצע עדכון בפועל. לאחר שבחרת את
הרשומות המתאימות, לחצ על לחצן הפעל (חווח) כדי להפעיל את השאילתה. תיפתתח
תיבת הודעה ובה מספר הרשומות שהשאילתה תעדכן. באפשרותך לבטל את שאילתת
העדכון בשלב זה על ידי לחיצה על לא. אס תלת על כן, יימשך תהליך העדכון. אס
השדה אינו בר-עדכון, 866655 מציג תיבת הודעה מתאימה.
5 מציג תיבת הודעה נוספת אס מנסים להפעיל את שאילתת העדכון מחוצ
לתצוגת העיצוב. באפשרותך לדחות את האפשרות לשנות את ערכי השדות או
להמשיך. אס תבחר להמשיך בעדכון, תיבת הדו-שיח הבאה דומה לזו הראשונה
שהוצגה בתצוגת העיצוב. התיבה מציינת את מספר הרשומות שישתנו ומאפשרת
לשנות את הרשומות פעם נוספת ואחרונה.
שאילתות עדכון יכולות לשנות שדות רביס במקורות הרשומות שלהם. באפשרותך
לעדכן את השדות במקור רשומות כל עוד בידך הרשאה לעשות זאת ומקור הרשומות
זמין. נתוניס מקשר גומלין מסוג יחיד לרביס הס לעיתיס קרובות ניתניס לעדכון, אך
לא תמיד. לדוגמה, לא ניתן לשנות את המפתח הראשי, אם עדכוניס על פי היררכית
קשריס אינס ניתניס לשימוש. שדות וערכים מחושביס בשאילתות הצלבות (67055080)
אף הס אינס ניתניס לעדכון. אס שדה מחושב, שאילתות פעולה אינן יכולות לשנות את
ערכיו. העורה המקוונת כוללת תיאוריס מפורטיס של שדות שאינס ניתניס לעדכון.
החלון העליון בתרשיס 4.22 מציג את רשת עיצוב השאילתה של שאילתת עדכון
בסיסית שמשנה שני ערכי שדה בטבלה פזססוחסואץ!ווחהּ-. שאילתה זו משנה את ערך
השדה ח₪6|800 ל-500₪56, אס הערך הקודם בשדה מכיל את הערך 6 או 66וואו. שני
החלונות התחתוניסם בתרשיס מציגים שתי שאילתות עדכון נוספות שמשחורות את
הערכיס המקורייס של מקור הרשומות. שאילתות אלו מציינות גישה אחת לבניית
פרק 4: טיפול בנתונים באמצעות שאילתות | 235
שאילתות עדכון, כך שבאפשרותך לשחזר ערכיס התחלתיים. שים לב כי יש צורך בשתי
שאילתות כדי לבטל את פעולת השאילתה המקורית. כמו-כן, שיס לב שכל שלושת
המקרים מכילים קריטריונים מורכבים. הקריטריונים המורכביס מסייעים לזהות טוב
יותר את הרשומות המיועדות לעדכון.
[< ובו ד
65 וא ע!וחובּ ]
₪888 רה :| ] ו
פד
ו
"שח" זכ) "]וטו" | :8וססוז)
וס
|< ום). ... 08]6ק!] : 0116 561ט0ק 6510165 קט ג
-
[<וםו .5
65 )א ץ!וחוב 1 52
6615 | ע!וחובּ 1
הי
ד
הק
ו
וס
תרשים 4.22: שלוש שאילתות עדכון
הפעלת שאילתות השחזור טומנת בחובה כמה בעיות. ראשית, עליך להפעיל את
שתיהן. שנית, 60655 מבקש את אישורך להפעלת כל שאילתה (אס תפעיל אותן מתוך
החלון מסד נתונים, הוא מבקש את האישור פעמיים). אס ערכת עדכוניסם מסוגיס
רבים, כדאי יהיה להפוך את התהליך לאוטומטי כדי לחסוך זמן ולשפר את הדיוק.
שגרת המשנה שלפניך מבצעת את פעולת העדכון. כל שעל המשתמש לעשות הוא
להפעיל אותה.
()0/116ח/₪65%076]6 5
6 85חחז560/3. וחספ
"06 650076500056 קט" ץזסט0 חה6קס. 6וח6סס
"0/6 [ 65%076500056 קטף" זט חהסקס. וחספ
סז ד 85חוחזז5603. וחספ
50 0חם
6 הח 2000 466655
הקוד של שתי שאילתות העדכון מכיל ארבע שורות. השיטה פפַחוחז561)9 מבטלת את
תיבות הדו-שיח של האוהרה. השיטה /ז6ט0ח6ק0 משמשת להפעלת שתי השאילתות,
כל אחת בתורה. השורה האחרונה מחדשת את השימוש בתיבות הדו-שיח של האזהרה.
שאילתות הוספה
שאילתות הוספה מוסיפות רשומות חדשות מתוך ערכת רשומות של מקור אל ערכת
רשומות יעד. ערכת רשומות היעד יכולה להיות טבלה בודדת או טבלאות שעליהן
מבוססת שאילתת בחירה ברת-עדכון. ערכת רשומות המקור יכולה להיות טבלה או
שאילתת בחירה בעלת שדות שלפחות חלק מהס תואמיס את השדות של ערכת
רשומות יעד. ערכת רשומות המקור חייבת להיות במסד הנתונים הנוכתי. ערכת
רשומות היעד יכולה להיות בקובצ מסד נתוניס כלשהו של ₪06655.
שאילתת הוספה אינה חייבת להוסיף רשומות המכילות כל שדה ושדה ביעד, אך עליה
להכיל שדה מבוקש אחד לפחות. אס טבלת היעד מכילה מפתח ראשי, ודא שערכי
המפתח ייחודיים בשתי ערכות הרשומות. אס לא, ערכי המפתח הראשי לא יהיו
ייחודייס, שאילתת ההוספה לא תצליח להוסיף רשומות.
מתחילים בעיצוב שאילתת הוספה על ידי הוספת ערכת רשומות המקור לתצוגת
העיצוב של השאילתה. לאחר מכן, מוסיפים שדות מתוך המקור אל השורה שדת
(6|0=) של רשת עיצוב השאילתה. לאחר מכן, פתת את הלחתצן סוג שאילתה
(6סץד ץזסט)) בסרגל הכלים ובחר את שאילתת הוספה (ץזפו0 0חסססה) כדי להציג את
תיבת הדו-שיח הוספה (סחס6סס1). תיבה זו מפשטת את משימת העיצוב של טבלה
אחרת במסד הנתוניס הנוכחי בתור טבלת היעד. באפשרותך גס לציין שברצונך
להוסיף רשומות לטבלה בקובץ מסד נתוניסם אחר של 066655 על ידי בחירת לחצן
הבחירה מסד נתונים אחר (08182856 זסחזסחה) והקלדת הנתיב ושס קובצ של מסד
הנתוניס המבוקש. לאחר בחירת מסד נתונים, תיבת הרשימה הנפתחת שם הטבלה
(6וח8! 180!6) מציגה את הטבלאות בקובצ שבחרת. ציין ערכת רשומות יעד על ידי
בחירת שס טבלה מתוך תיבת הרשימה. אס ברצונך להוסיף רשומות לשאילתת
בחירה, עליך ליצור בעצמך את קוד שאילתת הפעולה (עייןו בפרק 2 לקבלת דוגמאות
לביצוע פעולה וו באמצעות סכג ו-501).
לאחר בחירת מקור רשומות יעד, 860655 משנה את רשת עיצוב השאילתה שלו כך
שתכלול את השורה הוסף ל (סד סחס6ס1). הוא גם מתאיס אוטומטית שדות רבים ככל
שהוא מזהה בערכת רשומות היעד לאלה שבערכת רשומות המקור. ניתו לדרוס את
הבחירות האוטומטיות. שדות ש-460655 אינו מתאים להם בני ווג, תוכל להתאיס
בעצמך (לדוגמה, שדה ששמו שונה, אך סוג הנתוניס שלו והה). לחצ בשורה הוסף ל של
עמודה, ובחר בשס השדה המתאיס מתוך הרשימה הנפתחת של שמות שדות ערכת
רשומות היעד.
החלון העליון בתרשים 4.23 הוא שאילתת הוספה בתצוגת עיצוב לאחר הוספת שדות
בשורות שדה והוסף ל שלה, ותיבת הדו-שיח הוספה שלה פתוחה. שאילתת הוספה זו
פרק 4: טיפול בנתונים באמצעות שאילתות | 237
מוסיפה רשומות מתוך הטבלה 65 ח6!וץ!וחח0=8 [5ח00ו00ג. לאחר סגירת תיבת
הדו-שיח הוספה, לח על הלחצן הפעל (חטא) כדי להפעיל את השאילתה. בדומה
לשאילתת פעולה אחרת כלשהי, לת על לחצן תצוגה (ש6ו/) בסרגל הכלים כדי להציג
את הרשומות שהשאילתה תעבד מבלי להפעיל את השאילתה.
|וםו ₪ם ו
סד טחפפקה ]| 65 ע!וחזבּ 01 40:0:057/.
:סב סוסב ד
5 שו ע!והחב:
6 תפז ר) %%
8 זסת תה 7
מכ | | | ]ה
6300 חח שוחהח= ו
ב 0 סוט | יסטוטה | הזוחב טסוט | = |עווחזב=וס דפהסטוטטה | :סופד
| | ₪ח5
סק
ו
מס
|<]ם)- | עזסט) 60 : 5חסוו6זסואקבּף ופא
-
65 )יאווחה ]0 1 005/)ו6/.0זס 14
- שש
ב בו ]
| ₪ | :בוו
5זיםח16זע] וח = 57 סוט פזסו | +
*. 5ז6םוח16ז/! וחב = | +
תרשים 4.23: החלון העליון הוא שאילתת הוספה שמציגה את כל השדות שיש להוסיף
למקור רשומות היעד. החלון התחתון הוא שאילתת הוספה שמנצל את הכוכביות כדי
לייעד את כל השדות של ערכות הרשומות היעד והמקור.
החלון התחתון של תרשיס 4.23 מציג גירסה שונה של שאילתת ההוספה שבחלון
העליון. | השאילתה | התחתונה | מעתיקה | את כל השדות | מהטבלה
5 6 זץ| הרהס ד5ה0סו00 סו אל הטבלה פזסטותסואץ!וחחה=. גררתי את הכוכבית
מרשימת שדה ערכת רשומות המקור לשורה שדה (₪68!0) שברשת עיצוב השאילתה.
באופן דומה, בחרתי את הכוכבית מהרשימה הנפתחת בשורה הוסף ל. שתי
השאילתות מוסיפות את כל השדות הקיימים מערכת רשומות המקור אל ערכת
רשומות היעד. לעומת וזאת, השאילתה התחתונה גמישה יותר, כיון שהיא כוללת
אוטומטית שדות חדשיס כלשהס שתוסיף לשתי הטבלאות. כאשר מציגיס את השדות
ברשימה באופן מפורש, השאילתה מוגבלת לשדות אלה עד שמעדכנים ידנית את
הערכיס בשורות שדה והוסף ל.
8 ;א 2000 06055
הערה:
במקרים אחדים, 66655 עלול לא לרענן מיידית את התצוגה של טבלה לאחר
השלמת שאילתת הוספה. לכן, השאילתה יכולה לעדכן בפועל את ערכת רשומות
היעד מבלי שהשינוי יבוא לידי ביטוי בתצוגה. ניתן להתגבר על הבעיה על ידי שינוי
תצוגת ערכת רשומות היעד לתצוגת עיצוב ולחזור מייד לתצוגת גיליון נתונים
(לחילופין ניתן לרענן את תצוגת ערכת רשומות, על ידי הקשה על 9=+8וח5).
שאילתות מחיקה
שאילתות מחיקה מסירות רשומות באופן תמידי מערכת רשומות יעד. מסיבה זו עליך
לנהוג והירות רבה בעת השימוש בשאילתות פעולה למחיקה. הקפד להשתמש בלחצן
תצוגה (ש6ו/) כדי לוודא שהרשומות המיועדות להסרה הן אכן אלה שברצונך להסיר
בטרס תפעיל את השאילתה. שאילתות מחיקה יכולות למחוק גם רשומות בערכות
רשומות אחרות פרט ליעד. הדבר נכון במצב שהיעד נמצא בצד היחיד של קשר הגומלין
מסוג יחיד לרביס ושנבחרה האפשרות למחיקות בהתאם להיררכית הקשרים. במצב
זה, מחיקת רשומה בצד היחיד מסירה את הרשומות התואמות גס בצד הרבים.
כללית, עליך להגן על מקורות הנתוניס בעת השימוש בשאילתות פעולות, אך הדבר
נכון במיוחד לגבי שאילתות מחיקה, על שוס יכולתן למחוק קבוצות גדולות של
רשומות מתוך מקור רשומות. מומלצ לשקול הכנת עותק גיבוי של מקור הרשומות,
וכך תוכל לשתחזר רשומות שנמחקו בשוגג. אסטרטגיה נוספת בטיפול בשאילתות
מחיקה היא להסתיר אותן בחלון מסד נתונים (28080856), מה שיצמצס את הסיכוי
שהמשתמש יפעיל בטעות שאילתת מחיקה (באפשרותך להפעיל באמצעות קוד את
שאילתות המחיקה שבחרת להסתיר). אובייקטיס מוסתריס של מסד נתונים אינס
מוצגיס אלא רק כשתבחר להציגס כך: בחר באפשרות אפשרולות (פחסטקס) מהתפריט
כלים (100!5) ובחר את אובייקטים מוסתרים (00[665 ח006ו3) בכרטיסיה תצוגה
(ש6ו/) של תיבת הדו-שיח אפשרויות.
הערה:
להסתרת שאילתת פעולה, לחץ לחיצה ימנית על שאילתה בחלון מסד
נתונים ובחר באפשרות מאפיינים (65ז6קסזק) מתוך תפריט הקיצור. בחר את תיבת
הסימון מוסתר (ח₪1006) בגיליון המאפיינים ולחץ על אישור (ייתכן שתצטרך לבטל
את גם בחירת תיבת הסימון אובייקטים מוסתרים בכרטיסיה תצוגה של תיבת
הדו-שיח אפשרויות).
הפעולה הראשונה בעיצוב שאילתת מחיקה היא לחיצה כפולה על יצירת שאילתה
בתצוגת עיצוב (וסו ח0טו65 ח1 ץזסטכ) 6ז6768) בחלון מסד נתונים. בתיבת הדו-שיח
הצגת טבלה (890!6ד צוסח5), הוסף את מקור הרשומות שממנו ברצונך למחוק רשומות.
צייןו את השורות שברצונך למחוק על ידי גרירת שדות מתוך רשימת השדות אל השורה
שדה (0|=) ברשת עיצוב השאילתה. הכנס ערכיס בשורה קריטריונים (68וז6) של
פרק 4: טיפול בנתונים באמצעות שאילתות 239
רשת העיצוב, כדי לציין רשומות יעד המיועדות למחיקה. אס ברצונך ששאילתת
המחיקה תסיר את כל הרשומות ממקור רשומות היעד, הכנס כוכבית (או שם שדה
כלשהו) בשורה שדה ואל תכניס קריטריון כלשהו. השורה שדה חייבת להכיל ערך
אחד לפחות, כדי ששאילתת המחיקה תוכל לפעול.
תרשיס 4.24 מציג את העיצוב של זוג שאילתות מחיקה. השאילתה העליונה מוחקת
את כל הרשומות מתוך הטבלה פוזספחסוץ!ווחה ; היא אינה מכילה ערכיםס כלשהס
בשורה קריטריונים. לו ידעת את ערכי 811" של הרשומות הספציפיות שברצונך
למחוק, יכולת להוסיפס לשורות קריטריונים טרס הפעלת השאילתה.
|<וםו) .₪
=
65 וא ע!וחובּ -]
ג
5 טס רח16יזץ!והחב = | :ופ ד
בי
סו
יס
| < | בד ה 3 ורוו [בה
65 ע!וחובּ ]
:65| 35 ]0 כ]חחבּ= 3 חסוו 860 עחבּ 6ספוטם
יג
5זסםותפויז !וחב = | :סופד
סזסה/ | :סוס
[ :635| ב ]0 10חזב= ב הפוא 'ז860ז חב 666|פכ]=< | :הפו
וס
תרשים 4.24: שתי שאילתות פרמטר
0 הח 2000 466655
אם אינך יודע איה שורות למחוק בזמן העיצוב, באפשרותך ליצור את שאילתת
המחיקה בתור שאילתת פרמטר. החלון התחתון בתרשים 4.24 מציג סוג שאילתה זה.
ההנחיה היא ההנחיה של שאילתת פרמטר שמופיעה בזמן ריצה. משתמש יכול להכניס
ערך 810" כדי למחוק את כל הרשומות שערך פ1וח8] שלהן גדול או שווה לערך
שצוין.
השיגרה שלפניך שופכת מעט אור על שאילתות מחיקה והוספה יחדיו. השיגרה
מאפשרת למחוק או לשתחזר את כל הרשומות בטבלה 5ז6טחף6!/ץוווחהת. כשהיא
מסתיימת, הטבלה פתוחה וומינה להצגה. אס תסתיר את השאילתות
5ז סרח 6וץ|ורחה= || ו-זססות6וזץ!וותהּ-]||ה76ס656קהף, הדרך היחידה להפעיל אותן
תהיה באמצעות קוד, כמתואר להלן.
()0וח6כ 60000067 פט5
ס\5ס פע וחוס
.05 || 061606 60 %קוחסזק י'
,"6607052 ||3 6שסוחשז 0ז +חהצו טסץ סס")א50 50 = סף68צזהש
("2000 66655 0508ח6ו1] פחווחותהזפסזק" ,ס65צסצ
.3 הח6ח+ 6שסוח6 ,65ץ 5 וסאופחהּ זך '
הסח 65צפע = 65 צזהּע ]1
6 65חח560/3. סוחס
"5 16 ץ | || וס" סט חסקס. ח6סס
סז ד 385 /56%. סוחס
+ 0חם
.5 | 076ז65 60 +קוחסזק '
= ,"?660705] ||8 650076 0ז +חהצו טסץ סס")א₪5050 = סא68צזהש
("2000 66655 11670508 פחווחותהזפסזק" ,סא65צסצ
.||3 הח6ח+ 656076 ,65ץ 5 זס/ופחב זז '
הסח ד 65צפע = ס65צזהּע ]1
6 85חח560/3. סוחס
"5 16| 3 || 650 ק 3" סט הסקס. חספ
סז ד 385 /56%. סוחס
+ 0חם
.ןוסוט זס+ 313016 80!6+ 6 חחוח 6!וחצו זו 605 916+ סַהוחסקס 06ח3 פחופסו6 '
"5 רחס זץ|והה=" ,3016 861 6|056. 0ח6סס
"05 רחשו ץ]והה=" 3016 דה6קס. וחספ
טפ 0ח=
השיגרה פותחת בפונקציה מסוג א15480! ששואלת את המשתמש אס ברצונו להסיר את
כל הרשומות מהטבלה פזסטוח6ויץ!ווח8=. אס המשתמש עונה בחיוב, השיגרה מפעילה
את השאילתה פזסטוח6ועווחח3ּ=!|הו00 שמופיעה בחלק העליון של תרשיס 4.24 (שיס לב
כי 0ה06ץז06חסו6ה מכילה זוג משפטים שמכבים תיבות דו-שיח של אזהרה ולאחר
מכן מפעילים אותן שוב). לאחר מכן, השיגרה שואלת את המשתמש אם ברצונו לשחזר
פרק 4: טיפול בנתונים באמצעות שאילתות 241
את כל הרשומות של פזספוח6!ץוווח=. אס המשתמש עונה בחיוב, הקוד מפעיל את
השאילתה זססוחסוץ!ווחהּת]||76זס+65 קט כדי להוסיף רשומות מתוך עותק גיבוי של
הטבלה אל הטבלה פזסטוח6וזץ!ווחה=.
לפני סיומה, השיגרה סוגרת את הטבלה פ5זספוחס6וץ!ווח8= ופותחת אותה מחדש, פעולה
שמבטיחה שהטבלה תציג את הנתוניס העדכנייסם ביותר, ומשאירה אותה פתוחה
לצפיה ב-66655.
שאילתות יצירת טבלה
שאילתות יצירת טבלה, בניגוד לשלוש שאילתות הפעולה האחרות, אינן משנות,
מוסיפות או מוחקות מקור נתונים מקורי. המטרה היחידה של שאילתת יצירת טבלה
היא ליצור טבלה של 460655 המבוססת על מקור רשומות. שילוב כלשהו של נתוניס
שניתן לקשר בשאילתת בחירה, ייחשב למקור רשומות חוקי שממנו ניתן ליצור טבלה.
תרחישי יישוסם אחדים עשוייס להצריך שאילתות יצירת טבלה. ראשית, באפשרותך
להשתמש בשאילתת יצירת טבלה כדי ליצור עותקי גיבוי של טבלאות קריטיות. הדבר
נכון במיוחד רגע לפני שיש למחוק רשומות מתוך מאגר הנתוניס של המערכת הפעילה.
שנית, שאילתת יצירת טבלה יכולה לשמר את מצב הטבלה או מצב קבוצת טבלאות
מצורפות בנקודת זמן קבועה. שלישית, ניתן להכין עותק נתוניס בקובצ מסד נתוניס
אחד למען המטרות של יישוס מסד נתונים אחר. תמיד קיימת אפשרות לקשר נתוניס
(היתרון של קישור הוא נתוניס עדכניים יותר), אך ניתן לשפר את הביצועיס באמצעות
טבלה בקובצ, במקוס טבלה מקושרת שמקורה בקובצ אחר. רביעית, שאילתות עלולות
להפוך למורכבות מדי לעיבוד ב-860655, או שעיבודן עלול להימשך ומן רב. במצביס
כאלה, החלף את השאילתה המורכבת הבעייתית בטבלה שנוצרה באמצעות שאילתת
יצירת טבלה. על ידי כך תעקוף את הודעת השגיאה הנוגעת למורכבות יתר וביצועי
השאילתה ישתפרו.
שאילתת יצירת טבלה היא במהותה שאילתת פעולה, ולכן קל בהרבה ליצור טבלה
באמצעות שאילתת יצירת טבלה לעומת יצירת טבלה בעזרת ססה, 501 או סאס. כך
יוצריס שאילתת יצירת טבלה: פתח שאילתה ריקה בתצוגת עיצוב, הוסף לה טבלאות
ושאילתות בתור משאביס לטבלה החדשה, צרף קלטיס לפי הצורך ובחר באפשרות
שאילתת יצירת טבלה (ץז006 6-180!6א98) מתוך רשימת הלתצן סוג שאילתה
(6סץד ץזפט0). כעת, גרור את השדות שתודקק להסם בטבלה החדשה אל השורה שדת
(6|0=) של רשת עיצוב השאילתה. לח על לחצן הפעל (חטח) כדי ליצור את הטבלה
החדשה. אס קיימת כבר טבלה הנושאת את שמה של טבלת היעד, 4006655 ישאל אס
ברצונך למחוק את הגירסה הישנה בטרם ייצור טבלה חדשה.
תרשיםס 4.25 מציג שאילתת יצירת טבלה פשוטה שיוצרת עותק גיבוי של הטבלה
5 וח6ואץ!והח8=. תיבת הדו-שיח יצירת טבלה (180!0 1!866) מופיעה בעת הפעלת
שאילתת יצירת טבלה. באפשרותך לנצל את תיבת הדו-שיח כדי להגדיר שס טבלה
2 הח 2000 406655
שנמצאת בקוב מסד הנתונים הנוכחי, או נתיב ושס קוב במסד נתונים אחר. לאחר
מכן תוכל לבחור טבלה להעתקה מתוך תיבת הרשימה הנפתחת שם הטבלה
(6חהּ 6ופב3ּד).
בדוגמה שבתרשים 4.25, הטבלה שְ5000ז6פוח6!וץ!ווחג] שנמצאת במסד הנתוניס
הנוכחי מוגדרת בתור יעד מסד הנתונים. הערך בשורה שדה (8!0=) שברשת עיצוב
השאילתה מציין כי כל השדות בטבלה 5ז6טוח6ואץ!וחח8= לוקתחיס חלק בטבלה החדשה.
לא מצויניס קריטריוניס כלשהס להכללה או להשמטה של שורות מערכת רשומות
המקור.
|<]? | 6וםב 7 4386 [31 1 366 - 6615 וץ!וחוה ]] 0עקס-3661 ₪ לט
6ופב ד אוסו! 11365 65 )ץוחה 1
עס -15שטות6!ז/י]וחחב. :36 פוטב ד
ו
6 :תפץזןר) 1%
זסתלסתה 7+
[ ב וז <] | ]| ה.
= 0
(הה ה הרן הההההה ה ה | 00 ]ש ".>שסחם""ץ!חב-| :₪0
בי
[ ה הך] | | ה ן] | | הןן | | ₪ | פס
ו
7
תרשים 4.25: שאילתת יצירת טבלה פשוטה
תכנות שאילתות באמצעות .501 ו-00
היא שפה מקובלת ביותר לטיפול בנתוניס יחסיים. רוב המנגנוניס לניהול מסדי
נתוניס יחסייסם מבוססיס על 501, וכמעט כל שאילתה שיוצריס בתצוגת העיצוב ניתן
ליצור באמצעות קוד 501. אס יש לך ידע מעשי כללי ב-501 (שנקראת גס 501-92),
תוכל לעצב משפטי שאילתה יעילים עבור השאילתות שלך בשפה הטבעית של מנגנוני
מסדי הנתוניס הללו.
הסעיפים שלפניך מציגים שימושיס מקובלים של 501 ביישומי 460655. ראשית, נבחן
את משפטי ז0ם 5₪. לאחר מכן נלמד על פונקציות להגדרת נתוניס. משפטי 501
המיישמיס הגדרת נתוניס יכוליס להתבסס ישירות על התחביר של משפט [0ם |55
ולשכלל את רמת התפקודיות שלו. לבסוף, נסקור טכניקות .501 ליצירה והפעלה של
תצוגות ושגרות מאוחסנות.
פרק 4: טיפול בנתונים באמצעות שאילתות 243
משפטי ז6ם 551
משפט ז55150 של 501 מחזיר קבוצת שורות מתוך טבלה אחת או יותר של מסד
נתונים. באפשרותך להשתמש בפסוקיות קשורות, כגון =חםח/ ו- ץם הפסאס כדי
לשכלל בצורה דרמטית את האופן שמשפט 507 5₪ בוחר ומציג שורות בקבוצת
ההחזרה שלו. פונקציות צבירה של 501 כוללות אפשרויות נוספות לניהול קבוצת
ההחזרה.
משפט 660 551 בסיסי מציין עמודה אחת או יותר מתוך מקור רשומות. הנה התבנית
הבסיסית שלו:
6 0 15% 601 ז6ם 551
רשימות שדות
בוחריס קבוצת משנה של שדות במקור רשומות על ידי הגדרת רשימה מופרדת
בפסיקיס עבור העמודה %%)₪8!0. בחירת כל השדות במקור רשומות מתבצעת
באמצעות כוכבית (*). אס שדה אחד או יותר בעמודה 16!011%= נקראיס בשס זהה, אך
נמצאיס בטבלאות שונות, עליך להקדיסם את שמות הטבלאות לשמות השדות ולהפריד
ביניהס באמצעות נקודה. אס שס הטבלה מכיל תו רווח אחד או יותר, עליך להכניס
את שס הטבלה בין סוגרייס.
צירופים
כדי לציין את קשר הגומלין בין שתי טבלאות המשמשות כמקור רשומות עבור קבוצת
רשומות המוחזרת ממשפט 60 |55, אתה משתמש בצירופים (פחוסן). הפסוקית ואסם-
של משפט ז0ם 551 מציינת צירופיס כלשהם לשילוב שתי טבלאות או יותר. צירוף חייב
לציין לפחות את העמודות שישמשו לשילוב טבלאות ואת אופן קביעת ההתאמה בין
הטבלאות (ניתן לקנן צירופיס כדי לציין קשרי גומלין בין יותר משתי טבלאות). סוגי
הצירופיס הטיפוסייס הס צירופיס פנימיים, שבוחרים רשומות תואמות מתוך כל
טבלה בזוג טבלאות; צירופיס שמאליים (פחוסן 16%) שכולליס את כל הרשומות מתוך
הטבלה הראשונה ורק רשומות תואמות מהטבלה השנייה; וצירופים ימנייס
(5חוס( +90וז) שכולליס את כל הרשומות מתוך הטבלה השנייה ורק רשומות תואמות
מהטבלה הראשונה.
פסוקיות =₪פוז/ש
משתמשים בפסוקית =₪שה/\ של משפט ד56 551 להגדרת קריטריוניס לבחירת שורות
מתוך מקור רשומות. בניגוד לפסוקית 80=, הפסוקית =58ה/ היא אופציונלית
ומשתמשיסם בה רק כדי להגביל את הרשומות בקבוצת החזרה.
4 הח 2000 406655
האופרטורים 15 !|
האופרטור האופציונלי 5א1]1 משמש למציאת ערכים בשדות שתואמים לתבנית
(חזסְאהק) מסוימת. אופרטור זה תומך בהתאמת תבנית בין המנגנונים של מסדי
הנתונים 26% ו- 561/61 .501, אך עליך לנהוג בזהירות, מכיון שהמנגנון של שרת קבציס
מפרש תוויס כלליים (פ5ז60ז860זח6 0ז069וו) באופן שונה מזה שעושים מנגנוני
שרת-לקוח רבים. לדוגמה, ]567/68 .501 670506 משתמש בתוויס הכלליים 6 ו- א
לעומת )36 שמשתמש בתווים * ו-1.
פסוקיות 8 0058
הפסוקית האופציונלית צ8 אםפסחס משמשת במשפט ז50 5% כדי להתזיר ערכת
רשומות בסדר שונה מזה שמכתיב המפתח הראשי. מצייניס את השדה הראשון שלפיו
רוציס למיין מייד לאחר מילת המפתח צ8 מפסחס. ברירת המיון של סדר המיון היא
עולה (456), אך באפשרותך לציין גם סדר יורד (2550). אס ברצונך למיין לפי יותר
משדה אחד, הפרד בין כל צמד של שם שדה וסדר מיון, באמצעות פסיק.
הפסוקיות צ₪ 680002 ו-6א1/גו
פסוקיות אלו משלימות זו את זו. הן פועלות עם פונקציות צבירה .501 כגון זאטס6
ו-1ז50. הפסוקית צ8 68005 מציינת שדות שלפיהן יש לחשב צבירים (8991698065).
הפסוקית ₪4/1%6 דומה לפסוקית פמפה/ו; היא מגבילה את ערכת הרשומות
המוחזרת באמצעות הפסוקית /8 680/05 לרשומות שתואמות לקריטריוניס נתוניס.
מילות המפתח ד6א1ד15פ
מילת המפתת ז151180כ היא אחת הדרכים להגבלת מספר הרשומות שמוחזרות
באמצעות משפט ז55150. מילת המפתח מונעת כפילות נתוניס בשדות שנבחרו. הצב
את מילות המפתח ז6א1511 בין מילת המפתח ז66 551 לבין רשימת השדות. התבנית
הכללית של מילת המפתת:
חס 6/01/50 6%ח15%1 56|66%
שימוש באובייקט 6חהּוחוחס6 לביצוע .501
האובייקט 60800 של 0008 משמש לביצוע פקודת 501 כנגד מקור נתוניס באופן
הבא:
1. הצב במאפיין 6% ז0חאחוחס6 של האובייקט 6החחס6 את משפט ה-|50
שברצונך לבצע.
2. הגדר את המאפיין 6שץד0ח חס של האובייקט בתור 6% 001ח806 כדי למטב
ביצועים.
פרק 4: טיפול בנתונים באמצעות שאילתות | 245
3. הפעל את השיטה 6ט60אם של האובייקט 0חה8וח60 כדי ליצור את קבוצת
ההחזרה של 501.
4. פתח אובייקט ₪6601056% המבוסס על האובייקט 6ח8חח0ס6 כך שתוכל לטפל
בקבוצת ההחזרה של 501 ביישוס שלך.
הקוד שלפניך מנצל את האובייקט חחח 60 כדי לבצע משפט 501 פשוט:
()56!66%ץ] 5
סו חח 5.60 0 ג צוסא ₪5 1 החש חחוס
חור 8.60 0 45 601 וחוס
5 561 וחוס
.6 307 60 ה0 660 הח 60 6+ 076866 '
8 ";508.4.0 67050.6%.01ו = זסוטסזק" ה6ק1.0 החס
8 " 1606 166 67050 65!= ותהזפסזק:06=6טספ הזכ"
"; סח 6 תוצחל+ סא 65| 58"
0 כ סטססזק || 56166 ס% ח8 וחור 60 6060%6א6 0חה 6חו6כ '
.6 0!6ח5 3 וחסז) פסְטוהָע '
חר 8.00 20 צוסא = 601 56%
1 חס וםו/
61 = 60000 ת6/660.
"[פ|6%81 ז06ז0] וחסז? כ 6ט0סזק 56666" = 6% חח ס6.
3% = 06ץ ו 60.
6
ה)%ו\ 0חם=
ה 0 56% הזטז6ז 6 הףו55ה '
אסא = 561 56%
0-6 = 6קץ 50 ט6. 561
ץ|הח6800 060 301 = 6כץ 0667 561.1
1 ה561.006ז
060% זס66א. 551 +חוזק. פטססס
סט 0ח=
השיגרה 5 1/56|66 מדפיסה את מספר הרשומות בקבוצת ההחזרה (2155) בחלון
6 וז (מ*ידי). קבוצת ההחזרה מתוך משפט 501 כוללת כל רשומה בטבלה ז0706
65. כברירת מחדל, המשפט 551501 בוחר את כל הרשומות שבמקור הרשומות
שברקע, ומשפט 501 של השיגרה 5666 אינו מכיל מגבלה כלשהי לגבי הרשומות
שיוחזרו.
דוגמה באמצעות אז20 אפאאז
המשפט 551507 שלפניך ממחיש רכיבים חדשים אחדים. ראשית, הוא מציג את
התחביר של צירוף פנימי בין הטבלאות 5ו69 ז0706 ו-6ס6ט0סזק. שנית, הוא ממספר
את השורות בקבוצת ההחזרה ומדפיס אותן בחלון 601306חחוח].
6 הח 2000 406655
()506!6053ץ1 פט5
סו חח 8.00 0 צוסא 5 1 חח6 חוחוס
חר 5.00 0 5 601 חחוס
חן 5 %1חו 66070560 טכ סכה 5 561 חחזוס
.6 30 60 הס 66 הח 60 6+ 076866 '
8 ";508.4.0 67050.26%.01ו = זסוטסזק" ה6ק1.0החס
₪ " 1606 1606 67050 65!= ותהזפסזק:06=6טספ הזכ"
"; סרח חלס 65!ק 58"
0 6 3 סק 015006% 56|666 60 86 חר 60 6060%6א6 חב 6חו6כ ד
.5 0סחוסן +0 זוה 8 וחסז) פַטוהע '
הוח 0.00 20 עש6א = 601 56%
1 חס ושו/
61 = 666066008
8 " ההסץ] 0686ק 2150066 56|66%" = 6% הו ס6.
= 8 " חס 66ט0סזק הוס? זסחח1 [06%81!5 ז66זסז"
"0610סזק.666ט0סזק = כטס6טסזק.[6%81!5כ ז66ס]"
0% = 06ץ ו 60.
6
זו\ סח
ה 0 56% חזטס6ז] 6חל חט551ה '
וס סחוע 1601816 6 סל 650/55 66 %חוז סחהבּ '
שא = 561 56%
0-6 = 6קץ סט 6. 561
]0606800 301 = 6כץ 0667 561.1
1 561.06
06% ז660א. 551 +חוזק. פטססס
51.00% סד 1 = 1שחו זס=
("6וחה\ל6ט0סזק ")561 זחוזק. פטטסס
]טסו 561
1חו %אס)]
סט 0ח=
המשפט ז560 551 של השיגרה 156663 מתבסס על שדות מתוך שתי טבלאות, ולא
אחת בלבד, כמו בדוגמה הקודמת. המשפט מבצע צירוף פנימי על הטבלה ₪סט0סזם ועל
הטבלה 268818 07087 כדי להתאים בין השדות פזזסט0סזק של שתי הטבלאות. מאחר
שמשפט 501 משתמש במילת המפתח ד1571%6כ, לא תהיה החזרה של ערכיס כפולים
מהשדה 6וח06%8סזס. לבסוף, הצירוף הפנימי מאפשר לשיגרה להדפיס את השס
התיאורי של המוצר שמתאים לכל קוד זיהוי של מוצר.
פרק 4: טיפול בנתונים באמצעות שאילתות | 247
דוגמה לשימוש ב- 50 ו- צם ה5פאס
השיגרה שלפניך משתמשת בפונקציית הצבירה 50% ובאפשרויות הצירוף והמיון שלה.
השיגרה מחשבת את סכוס מחיר הסיכוס לשורה לכל מוצר בטבלה 261818 ז6סזס.
קבוצת ההחזרה של המשפט ממיינת את התוצאות לפי גובה ההכנסה שמניב כל מוצר
(מהגבוהה עד לנמוכה ביותר).
()506!60%4ץ1 פ5
סו חח 8.00 0 שוסא 5 1 חח6 וחוס
חר 0.00 0 5 601 וחוס
5 %1חו 66070560 טכ סכה 5 561 חחוס
.6 30 60 הס 66 הח 60 6+ 076866 '
8 ";4.0. ₪08 67050.6%.01ו1 = זסוטסזק" ה6ק1.0החס
8 " 1606 166 67050 65!= ותהזפסזק:06=6טס5 הזכ"
"; סרח חלס 65| 58"
0 6 לט סק 015006% 56|666 60 80 חר 60 600%6א6 חב 6חו6כ '
.6 6060060 סוק 00 ;80165+ 60חוס[ 01 זוה 3 וחסז פ6טופצ '
חר 8.00 20 עוסא = 001 56%
01 הסו\
1חחס = ח6600 הח0ס66ע6.
8" ,66 65.00 סק 15066 56|66%" = 6% דחו 60.
8 "*[6סוזקשוח!)].[5|ו6%8 ז06זס])ותט5"
= 8 "*[שסחהט5[.]0!ו6%9 ז06זס]"
= 8 " [06וק 060ח06אם] 5 (([סהטס6פוכ ]. [5|ו6%8כ זססזס]-1)"
= 8 " חס [6%8115 ז0706] חוסנ זסחח1 65טוססזק וחסק-"
= 8 " סשסטססזק.[5|ו6%9כ ז06ז0] = סשס6טוססזק.665ט0סזק"
8 " 6%306ט0סזק.5ז6טטסזק ץ8 קטסזס"
= 8 "*[06וזקתוח].[5|ו6%9 ז06ז0])החט5 ץ8 זססזס"
= 8 "*[שסחהטס].[פ!ו669 ז06זס]"
"656 (([הט560וכ ]. [5|ו6%8 ז06זס]-1)"
0% = 06ץ ו 60.
6
ה)%ו 0ח=
3 0 56% הט6 %ה5%0006 56|66% ח0ן55ה '
וס סחוצ 1601816 6 סל 650/55 66 %חוז סחהבּ '
שא = 561 56%
3% = 6קץ ד50זט6. 561
1 ה561.006ז
06% ז660א. 551 +חוזק. פטססס
51.00% סד 1 = 1שחו זס=
("66וזק 060ח66אם")6!05ות. 551 , ("סות ה ס6טססזק")561ז זחוזק. פטטסס
]טסו 561
1חו %אס)]
סט 0ח=
8 הח 2000 06655
השיגרה ₪1/56!66%4 יוצרת שדה מחושב באמצעות קוד. השיגרה מפעילה את הפונקציה
5 עס הפסוקית +8 680005 כדי לחשב את ההכנסה שיצר כל אחד מהמוצרים. לולא
פסוקית זו, הקוד היה יוצר את השדה המחושב עבור כל שורה בטבלה המקורית, אך
לא היה מספק תוצאות סיכוס לפי קבוצה (הוא היה מחשב את ההכנסה הכוללת של
כל המוצרים, במקוס את ההכנסה הכוללת של כל מוצר בנפרד).
הפסוקית ץ8 ₪פסחס שולטת בסדר המיון של קבוצת ההחזרה. למרות שניתן לכתוב
קוד זה בצורה תמציתית (הקוד וזהה לקוד שמחשב את מחיר הסיכום לשורה), קל
יותר להבינו כפי שהוא כתוב, והוא דומה לקוד שיוצרת רשת עיצוב השאילתה.
פונקציות הגדרת נתונים
קיימות כמה דרכיסם להגדיר נתוניס באמצעות משפטי 501. בסעיף זה נבחן כיצד ליצור
טבלה באמצעות שאילתות יצירת טבלה. שאילתות יצירת טבלה הן שאילתות פעולה
שיוצרות טבלה חדשה המבוססת על קבוצת ההתזרה של שאילתה קיימת. זוהי
פונקציית הגדרת נתונים.
בסעיף זה גם נדגיס כיצד לשנות שדה שגודל בתוספת קבועה באופן אוטומטי
באמצעות מילות המפתח של 501 - = ומד אםד|ג ו- אוא 601 אםדוה. 501 4 36 כולל
סוג נתוניס שדה זיהוי שמאפשר לעשות ואת. 4 36% תומך בהגדרת ערכי צעד (50600)
והתחלה 70ז509) עבור שדות מונה אלה (ניתן לאפס אותס בכל עת). שגרות הדוגמה
בסעיף וה כוללות כבר את כל הרכיבים התפקודיים, אך ערכן יעלה אס תבחן אותן
לאור האמור בפרק 3. 815גד מפד]ג ו- אא 601 מפדוג הן חלק מקבוצה שלמה של
מילות מפתח (לדוגמה, = |8ד =דשה6, אשסא1 655 ו-קסמס) שתומכות ישירות
בפונקציות הגדרת נתוניס באמצעות .501.
סדאז... ד0= 551
לפניך התחביר של שאילתת יצירת טבלה באמצעות .501 :
6 0 6ובּסוסב דעוסא 0 דא 15% 601 ז6= 51
אם תיצור טבלה חדשה בקוב מסד נתונים שונה מזה הנוכחי, הוסף פסוקית א1 אחרי
הפסוקית סדא1 ולפני הפסוקית אסח=. השתמש בפסוקית א1 כדי לייעד את הנתיב ואת
שס הקוב של מסד הנתוניס שישמור את פלט המשפט 0דא]... ד0ם |55.
6 יכול להתבסס על טבלה אחת או יותר, או שאילתה אחת או יותר ועליו
להכיל את כל השדות שברצונך לכלול בטבלה החדשה שאתה יוצר. המשפט
סדא]... ד0ם !55 מעתיק את עיצוב השדות שנבחרו ואת נתוניהס לטבלה החדשה. אין
באפשרותך ליצור שדות חדשיס כלשהס באמצעות המשפט סדא1... ד0ם |55. תוכל
ליצור בקלות את התבנית הכללית של שאילתה זו על ידי יצירתה בתצוגת העיצוב
ולאחר מכן לעבור לתצוגת .501 ולהעתיק את משפט 501 אל שיגרה שמשתמשת
באובייקט 00ג. אס תאמצ גישה זו, לא תצטרך לתכנן את משפט 501.
פרק 4: טיפול בנתונים באמצעות שאילתות 249
השיגרה שלפניך משתמשת בגירסה פשוטה של משפט סדא]... ד0ם |55 כדי לגבות את
הטבלה 60065ץוחג] שבמסד הנתוניסם הנוכתי אל טבלה חדשה שנקראת
ס6הו.
()30!6 ד1366ץו פט5
600 חח 0.60 ג 5 1 החש חחוס
.6600 00 61676066 '
הסוח ה 0ס0[660.6 66% = 1חחס 56%
.ץז 866%80!6 זס? 501 6זט66אם '
8 " סדא1 *.5ז6טוחסוזץ!ווחה- 07 551" 6זטס6אם. 1החס
"5 רחש ץ] ווה 0 קטא836 ="
.5 3080 1886602= ]1 18165 6זט660סזק פוחד '
50 06ח=
למרבה הצער, בדרך כלל כדי ליצור ולהפעיל משפט סדא... ד0ם 551 לא די בשני משפטי
ספה הללו. לדוגמה, שיגרה זו תיכשל אס הטבלה קט8866= כבר קיימת. השיגרה
יכולה להיכשל גם אס משתמש נוסף יפתח את אחת הטבלאות. קשיים אלה ואחריס
מחייבים מנגנון ללכידת שגיאות. הדוגמה שלפניך ממחישה מנגנון אפשרי ללכידת
שגיאות ביישוס המשתמש בשיגרה בעלת משפט 0דא... ד0ם 55.
()62|סה ד6אהוץו! 5
:62 6070 זסזזם הס
הסוח ח 0.60 סכה 5 1 החש חחוס
.6600 00 61676066 '
הסוח ה 0ס0[660.6ז 66% = 1חחס 56%
.5 0186 חח 10 656 '
1 86ו₪8.זזם - '
.ץזסטף %8216-6א זס+ 501 6זט66אם ד
8 " סדא1 *.5ז6טוחסץ!וותה- 07 551" 6זטס6אם. 1החס
"5 רחש ץ] וה = קטא836 ="
62:
.500 6 61% 0ח3 חחוחסח 60 |ה 60 6 56% 30 הס0 66 החס6 6 0|056 '
6
הַחוח%ס = 1חחס 56%
סטפ +ואם
0 ;א 2000 06655
:זז 62אה ו
.5 ץ680ז| 90|6+ זס+ קְפזד '
הפחד 2147217900- = זססוחטא.זזם +1
"886 6|ס3ד קסזם" 6ז660אם. 1 החס
56
56
| 8 " 00860 חח ח3 078%60ח06 החהזטסזק סד" אס ₪15
6 " 876 ה00קו0650 0חה3 זססוחטח 155 .זסזזס"
= ,|₪68ופשע , הססק ו 60פסכ.זזם 8 " :" 8 זססותטא.זזם
"2000 66655( 11670506 פהורהוחבּזוטסזק"
+ 0חם
13662 6506
סט 0ח=
שיגרה זו מבצעת משימה זהה לזו של השיגרה המקורית, אך היא לא תיכשל גס אס
הטבלה 0ש18866= כבר קיימת. המטפל בשגיאות מוהה שגיאה מסוג זה ומוחק את
הטבלה הקיימת בטרס תבצע את הפקודה פעסם נוספת. במקרה של שגיאה אחרת,
היישוס יציג את המידע החיוני בתיבת הודעה כך שהמשתמש יוכל להודיע למפתתח
היישום על הבעיה.
השיגרה כוללת רכיב נוסף ללכידת שגיאות: מייד לאחר הקמת החיבור, הקוד יכול
לקרוא לשיטה 83156 של האובייקט זזש (הרכיב מסומן בתור הערה, אך דאגתי להסיר
את הסימון כדי להעריך את ביצועי מנגנון לכידת השגיאות). שימוש זה באובייקט זזש
יוצר שגיאה מלאכותית שמסייעת לגלות כיצד יש לעצב את השיגרה כך שתגיב
לשגיאות בלתי צפויות.
הדוגמה גם סוגרת את החיבור ומגדירה את האובייקט ח6600חחס6 בתור פחוחזסא.
שתי פעולות אלו דומות בייעודן ומשלימות זו את זו. בעת סגירת חיבור, המשאבים
ששימשו לצורך החיבור הופכים ומיניס לשאר המערכת. יחד עס ואת, האובייקט
נשאר בויכרון, ומאפייניו אינס משתניס. בשלב מאוחר יותר, תוכל לפתוח את אותו
אובייקט ח0ו660חח0ס6 עם הגדרות המאפיינים הקודמות שלו או עס הגדרות שונות
חדשות. עליך להגדיר אובייקט בתור פַחוחזסא כדי להסיר אותו מהזיכרון.
שימוש ב- = ומגד אשד וג וב- אאט וס6 אשד וה
כדי לאפס שדות %חהסוחס'ו6חוססט
מפתחים רביס לסביבת 460655 יתלהבו מאפשרויות השליטה החדשות בסוגי נתוניס
סח 60 (מונה) המשמשים כשדות זיהוי של רשומות. בפרק 3 למדנו כבר כיצד לקבוע
את ערכי ההתחלה והצעד (תוספת) של שדות מונה. מייד נלמד דרכים נוספות להגדלת
רמת השליטה בשדות אלה. השיגרה שלפניך מגדירה את ערכי ההתחלה והצעד של סוג
הנתוניס זס%חטס6.
פרק 4: טיפול בנתונים באמצעות שאילתות | 251
(ק6ז%5ח! ,5%8%חו)%07ח600ז₪656 פט5
חס 66 ה חה0ס0. 308 5 1חח6 וחוס
וחוו
שו זס? .5001 666016 80 חהסו66 הח 60 61676066 '
הסוח 060.00 ק 66 = 1החס 56%
.5 חח זה 035560 6167600665 +%08 חַחו50 .501 076866 '
8" 65 האס שורה ם |ד חם ד 1" = 507501
8 " 10600 310 אואע 601 אםד וג"
"(" 8 0ק566חו .8 "," 8 + בזסזחו 8 ")"
זז 00 6 2086 0+ %ח9%616ז5 .5001 606 6ז660אם '
1 6606אם. 1החס
סט5 0חם
השיגרה ז6000%0ז₪656 מדגימה כיצד להפוך פקודת 501 לדינמית על ידי הוספת
ארגומנטיס למשפט 501. תהליך זה דומה להעברת ערכים אל שאילתת פרמטר.
השיגרה ז₪656)6000006 משנה את ערך השדה פ1ח8" בטבלה 8365 זסטוח6וץ!ווחה=
וקולטת שני ארגומנטים. ארגומט אחד הוא ערך שדה המונה החדש של הרשומה
הבאה שתתווסף לטבלה; הארגומנט השני הוא גודל הצעד עבור הרשומות הבאות
החדשות. באפשרותך להפעיל את השיגרה על ידי הקלדת שורה מעין זו בחלון המיידי:
65600000" 2
שני ארגומנטיס אלה מאלציס מתן ערך 2 לשדה פ1וח8] ברשומה הבאה שמתווספת
לטבלה. כל ערך שדה כ81] בכל רשומה נוספת יגדל ב-2 לעומת השדה ברשומה
שקדמה לו. היזּהר בקביעת ערכי ההתחלה והצעד, מכיון שאתה עלול לגרוס להפרת
כללי מפתח ראשי (כגון ערכים כפולים) וכך לשלול מהמשתמשיס את הזכות להוסיף
רשומות חדשות לטבלה. למרבה המזל, 2000 8606655 מאפשר לסקור באמצעות קוד את
ערכי שדה המונה הקיימים, ולכן תוכל ליצור קוד שיהיה מוגן מפני בעיה זו. השיגרה
הבאה מדגימה זאת.
משפט 501 הוא לב-ליבה של ז6זחט₪656%60. כפי שניתן לראות, השיגרה כוללת שלושה
מרכיבים קריטיים. מילות המפתח 5 481ד 55ד1ה משנות את עיצוב הטבלה שצוינה.
מילות המפתח א 601% אםפדןא משנות את עיצוב השדה שצוין. מילת המפתת
צד דא5ס1 מעדכנת את שדה המונה בהתאם לארגומנטים של הערך ההתחלתי וערך
הצעד של השדה.
השיגרה ז16ח56%₪6560600 שלפניך ארוכה, אך אינה מורכבת ביותר. היא מנצלת שיטה
שמטפלת בערכי שדה מונה מבלי לגרוס להפרות כללי מפתח רשומה. תרשים 4.26
מציג את הטבלה כפי שנראית מייד לאחר הפעלה מוצלחת של השיגרה
65660 5. שיס לב כי השדה 8₪12] ברשומה הראשונה מכיל את הערך 2,
ואילו השדה 810" ברשומה הבאה אחריה מכיל ערך גדול בצעד של 2. השדה פ1וח8-
ברשומה השלישית מכיל את הערך 8, ולכן אינו עקבי לערך הצעד. בנוסף, ערך השדה
סזוחג] ברשומות הבאות גדל בצעד של 4 בכל רשומה חדשה. השינוי בערכי ההתחלה
והצעד של שדה המונה נובע מהקריאה ל-060ה₪6560600. מחרוזת טקסט בשדה
ו סות6ואץו! מסמנת את השינוי בערכים אלה.
2 הח 2000 406655
<1ם). | ב חן ה ה וו ה ו :|
8000]7686ע1 | | 6ב%ה80וסק | | כו | | |
2 = 5180 , 918₪ ה050כ אוה 2 גו
הס5טסכ הוחואזו/י 4
5187 .6 513 אופח וח 588 ווח הפו 8
ווח צהסד 12
ווח צוופחם 16
( זט חנו סז
5 01 |++| זו וו | . |4ו 0
תרשים 4.26: הטבלה פסוהּ)זסטוחסוץ!ווח8= לאחר ביצוע השיגרה ז0%60ט5616656)60
()56065610000%67 50
סו חח 8.00 00 עוסא 5 1 החש וחוס
חר 5.00 0 5 601 וחוס
, שוס6 5 502 ,₪6607056%. טכ סכה 5 561 חחוס
זז 5 61חו הזוס
.60006600 61676066 '
הסוח 060.60 ק 606 = 1חחס 56%
60 80!6? 656% 800 8016+ 65ה באס טרס זץ|ורחה= ז6|68 '
6 385 /560. וחספ
"35 1 רחש !ץורח ה !01" סט ה6ק0. הס
סז ד 85חוח56037. וחספ
2 ,2 6560600067
6+ והסזז 65%80!6 חבס רחשו ץ| ור 6 סף 660705 01 6!קטס6 8 00 '
.5 5060 30 +1ה5% |₪8וחו 6+ השועו 816 5זס סוחס זץ!ורתה- '
ש6) = 561 56%
30026066/560 ,1 החש ,"ראזס רח6וזץ! ווח" ה6ק961.0ז
6 00 ,1506 וטק 0660 וה
,הזוס 30006 ,1 החש ,"5זס םס הוח6וזץ!ורח8=" ה902.006ז
6 ,066680 וה
2 0ד1 = 1שחו זס=
00 561
(502)2] 8 " " 8 (502)1] = (561)1ז
חסחך 1 = 61חו ]1
"2 = 5600 ,50910" = ("6!0! סותסואץוא")51ז
0חם
עסו 2
6
1חו )אסא
6 1
פרק 4: טיפול בנתונים באמצעות שאילתות 253
5 6])60ו 1חח= || 56!66% 60 80 וחור 60 660%6א6 0חה 6חו6כ '
.6 סח 60 185% <-- 115% 6ט|פע כ1חחבּ= 656ח0וח הסוצש'
וו 8.00 20 עוסא = 601 56%
1 חס שו/
61 = 66008 ת6/660.
8" 365 רח6זץ!ורחה- הס כ1וח3= 561666" = 6% דחו 60.
"0656 כ1וחה- 8 זססזס"
0% = 06ץ ו 60.
6
ה)%ו 0חם=
.5 שח 60 506 800 5086 656% סש %| ₪56 0חה ,8|06/ זס6חט 60 35%| 686 '
שצשוס)] = 561 56%
ץוח זה ס- 3006 = 6קץ דוספזט6. 561
ץ|הח6800 060 301 = 6כץ 0667 561.1
1 ה561.006ז
(541)0] = 61ח!
6 1
1חו ,1)חו + 1+חן [%6ח₪6566600
6 5זס0 וח6זץ|ורחה-] 66 וחסי 660705 8ַהוחוהוח6 00 '
5 רס ץ| ווה 06 סט
.65 50 300 +5%81 סח 6+ ח6וצו 80!6ז '
3000686560 ,1 החש ,"35 רחש זץ!ווחה-" ה6ק561.0ז
6 00 ,6 ווק 0א6ס וה
"5060 8 531% שוסח ץוח 566" = (561)2ז
3 = 61חו
502.50 טח סס
0 561
(15%2)2 8 " " 8 (502)1] = (5%1)1]
חסחך 3 = 61חו ]1
"5060 .8 503% שוסח ץוח 566" = ("6|0ןסות6 ")51
+ 0חם
עסו 502
1 + %1חו = 1זחו
בו
קסס |
השיגרה ז561665616000%0 כוללת שישה חלקיםס המופרדיס בהערות. החלק הראשון
מקיס חיבור אל מסד הנתוניס הנוכתי. החלק השני מפעיל שאילתת מחיקה שמסירה
את כל השורות מתוך הטבלה פסותּ]זססוחס!אץ!ווחה=, מאפשרת להציג אזהרות מערכת
על ידי קריאה לשיטה פַחוחז9ּ)560, ולאחר מכן מגדירה את ערכי ההתחלה והצעד של
המונה של הטבלה 65ו80ז6טוחס6!אץ!ווחה= על ידי קריאה לשיגרה ז0זחט₪656060.
4 הח 2000 406655
החלק השלישי משתמש בלולאה א86...זס" כדי להעתיק את שתי הרשומות הראשונות
של הטבלה 8זסטוחסוץ!!וחה= אל הטבלה 6סה8אזסטהחסואץוווחא=. מנגנון מסד הנתוניס
+ מקצה אוטומטית ערכי פ1וחג8] לשתי הרשומות הללו באמצעות ערכי ההתחלה
והצעד שהוגדרו בחלק הקודס של השיגרה.
החלק השלישי מפעיל את האובייקט 6ַחא 60 כדי למצוא את השדה פ1ח8" בעל
הערך הגדול ביותר בטבלה פסוַּזסטוחסואץ!וחחא=. כשהפקודה מתבצעת, היא ממיינת
את רשומות הטבלה בסדר יורד לפי השדה כ81=. כתוצאה מכך, הרשומה בעלת הערך
הגדול ביותר בשדה 8010" - המפתח הראשי של הרשומה - מוצבת בראש קבוצת
ההתחזרה. ידיעת ערך גה מאפשרת ליישוס לקבוע ערך התחלה חדש עבור רשומות
נוספות, כזּה שאינו משכפל את ערך המפתח הראשי של רשומה כלשהי בטבלה.
החלק החמישי פותח ערכת רשומות בקבוצת ההחזרה של הפקודה ומאחסן את ערך
השדה פ1ח8] של הרשומה הראשונה בקבוצה. לאחר מכן, חלק זה מפעיל את השיגרה
6560600007 כדי להגדיר ערך התחלה חדש כפול מהערך הגדול ביותר בשדה פ1ח8=
וגס ערך צעד חדש ששווה לערך הצעד הגדול ביותר בשדה פזוח8ּ".
החלק האחרון מוסיף את הרשומות שנותרו בטבלה 5וז6סח6וץוווחה לטבלה
65 0 וח6!ץ!ווחא=. כדי להגדיל את גמישות השליטה בשדות מפתח ראשי מסוג
מונה, העמודה סח6ו] מכילה הודעה המציינת כיצד השיגרה ז56%0606000%6 מטפלת
ללא בעיה בשדה המונה.
תצוגות ושגרות מאוחסנות
0 8066658 כולל תצוגות ושגרות מאוחסנות שהיו פעס ומינות רק במערכות
מתקדמות לניהול מסדי נתונים. 2000 860655 מיישסם תצוגות, שאינן תומכות
בפרמטריס, בתור שאילתות מאוחסנות שמחזירות שורות. 2000 60655 כולל שגרות
מאוחסנות בתור שאילתות פעולה מאוחסנות וגם שאילתות פרמטר הפועלות
כשאילתות פעולה או שאילתות בחירה. כפי שתיווכח לדעת, ניתן להשיג תפקודיות של
שאילתת פרמטר על ידי העברת קבועי מחרוזת לשיגרה שממזגת את הערכים
המועבריס אל משפט 501, וביצוע המשפט.
תצוגות
המשפט שם1/ ם דהםחס יוצר תצוגה על ידי הוספת שאילתת בחירה מאוחסנת לחלון
מסד הנתונים תחת קטגוריית האובייקטים שאילתות (865ט0) (בפרויקט 466658
מסוג 0ְ80.*, התצוגות שמורות תחת קטגוריית האובייקטיס תצוגות (65ו/) של חלון
מסד הנתוניס). תהליך היצירה של שאילתת בחירה שמורה באמצעות ש4ם1/ 685475
ישיר יותר מאשר באמצעות 800, מה שמתייב יצירת אובייקט מסוג 0ח8חח 60
והוספתו לאוסף 5ש6ו/.
השיגרה שלפניך מדגימה את התחביר ואופן הפעולה של משפטי /ו=1ש 68545 בקוד
של 0ג.
פרק 4: טיפול בנתונים באמצעות שאילתות | 255
()ו6768%6/16 ס5
660 ה חה0ס0. 308 5 1חח6 וחוס
.6006600 61676066 '
הסוח ה 0ס0[660.6 66% = 1חחס 56%
.שוסוץ ז0? 501 6006אם '
"608060007165 וחסז- * 507 551 85 שסו/ץ08%6007 סו 076866" 6לטס6אם. 1החס
0חו/8680856כ 607657
.5 ץ680ז|3 636600716 ]1 18115 6חסטסז 6|קחו5 פוחדי
סט 0ח=
השיגרה מפעילה את השיטה ₪6660066 של התיבור ומעבירה אליה משפט
ששםז/ ₪דה=ח6. שס שאילתת הבחירה בא מייד לאחר מילות המפתח /1564/ 5דג=6
ואחריו מילת המפתח 45 ומשפט ז0ם 551. המשפט ז60ם ]55 יכול להיות משפט ד0ם |55
כלשהו מהסוג המקובל. לבסוף, השיגרה קוראת ל-צוס0חו/₪60765028182856 כדי
לעדכן את חלון מסד הנתונים כדי שהמשתמש יוכל להציג את השאילתה החדשה
מבלי שיצטרך לרענן מחדש את החלון.
ל-וו0768%616 יש חיסרון: היא נכשלת אס התצוגה שהיא מנסה ליצור, קיימת כבר.
באפשרותך, כמובן, להסיר בעצמך את השאילתה הישנה, אך ניתן למחוק אותה גס
באמצעות קוד. שתי השגרות שלפניך ממחישות גישה אפשרית לפתרון הבעית:
(8חו567 45 6ב עע10/)/ש0ו/ 0|866 676800 סט5
חסו66 ה 308.00 5 1חח6 וחוס
0 5 6861 וחוסם
צוסו/. 0 5 1צוסע חחוס
צוסוע זס1 006605 61676066 '
הסוח ה 0[660.60זק%ח6 6 = 1חחס 56%
08 שו6ס) = 0801 56%
1חחס = 66000 הה6600עו6ה. 68%1
.5 סרח
5 /. 68+1 ח1 1אוסע ח86ם וס
.חסופזסע שוסח 3 חטושו + 60!366ז 300 צוסוע ס0סחחבּח 6ססוסכ ד
חסחד 6רחהּ\/ע16/ = 6וחהּא. 1/שוסע +[
סוחהּ)/16/ 5.6|6%6/וסו/. 681
16/36 / צוסו/ו6768%6605%0
טפ זוא=
+ 0חם
1וס/ 46%
.ח5078606 וחס"] 676806 ,6ז6ח %סח 15 עוסוע שח זז '
36 ]עסו/ עש6ו/ 6768166050
0חו/8680856כ 60765
סט 0ח=
6 הח 2000 06655
(6החה עסו/ ץש ) צסו/ר6768%6005%0 סט5
,60 חח 08.00 ₪5 1 חהח6 וחוס
6 זס? .5001 666016 80 חס 66 הח 60 61676066 '
הסוח ה 0ס0[600.6 66% = 1חחס 56%
.וע זס+ 0חו507 .501 0768%6 '
"680600765 וחסז- * ז56!60 35 " .86 סשות3ּ\צוסו/ץ] 8 " עסו 076866" = .507501
סו וה60500 6+ 076866 '
1 660%6אם. 1החס
0חו )086980856 67765
50 06ח=
השגרה א6₪ו/670816₪60|366 אינה מבצעת ישירות את המשפט ץץם=זע 5זַמ5ה6; היא
משאירה משימה זו לשיגרה השנליה, 676806005000/6. 6₪ו/00|866 670800
ממספרת את התצוגות כדי להעריך את הצורך למחוק את התצוגה הישנה לפני
שמנסיס ליצור תצוגה חדשה ששמה זהה. לאחר מכן היא קוראת לשיגרה
ש6ו/05000ו0768%60 ומעבירה את שס התצוגה שיש ליצור. 6₪ו/0768%6605000 זוהה
בעיבובה לשיגרה שבדוגמה הקודמת, אך היא מנצלת שרשור מחרוזת עס הארגומנט
המועבר וקבוע מחרוזת, כדי להרכיב משפט 501 עבור השיטה 6ז660אם של החיבור.
יוצריס תצוגה חדשה על ידי הקלדה של פקודה פשוטה בחלון 60|806חחח1, הנה כך:
'ש807600//76//" /ש0013666 668%
שס התצוגה יופיע בין מרכאות כפולות. ניתן לשנות בקלות את 6ו/6768%6₪60!866
כדי לאפשר משפט ז0ם 551 דינמי.
במקוס לעבור בצורה מחזורית על מרכיבי האוסף 5או6ו/, תוכל פשוט לנסות ליצור
תצוגה חדשה וללכוד את השגיאה שנגרמת כתוצאה מתצוגה בעלת שס והה. מספר
השגיאה של תצוגה כפולה הוא 2147467259-. לכוד מספר שגיאה זה ומחק את
התצוגה הישנה בטרס תבצע מחדש את המשפט שוםזע = דה₪חס6. השיגרה או6ו/6!0=
בתקליטור המצורף לספר ממחישה גישה זו.
שגרות מאוחסנות
שיגרה מאוחסנת מפשטת את השימוש החוזר בקוד 501. שגרות מאוחסנות מבצעות
פעולות כלליות, כגוןו שאילתות מחיקה, עדכון או הוספה וקולטות פרמטרים בזמן
ריצה הן עבור פעולות כלליות והן עבור שאילתות התזרת-שורות.
משתמשיס במשפט ₪06ק 60576 כדי ליצור שיגרה מאוחסנת. התחביר הכללי של
משפט זה והה לזה של המשפט /שםז/ םדהםח60. לאחר המילים ₪06ק 65475
מקלידיסם את שס השיגרה המאוחסנת ואת מילת המפתח 5ג, המשמשת עבור סמן
ההתחלה של קוד 501 המגדיר את התנהגות השיגרה המאוחסנת. באפשרותך לעצב
שאילתות פעולה בתצוגת עיצוב השאילתה של 466655, להעתיק את קוד 501 בתצוגת
ולאחר מכן להדביק את הקוד שהעתקת אחרי מילת המפתח 5.
פרק 4: טיפול בנתונים באמצעות שאילתות | 257
שגרות מאוחסנות אינן מופיעות בחלון מסד נתונים (28%80856). לעומת זאת, הן
קיימות בתור פריטיס באוסף 06660765ז של האובייקט 6918104. הקוד :כול
להתייחס לשגרות יחידות באמצעות סכמת אובייקט היררכית זו. לדוגמה, אס היישוס
יוצר שיגרה מאוחסנת שמוחקת רשומות, השיגרה קיימת באוסף 070660065 (יחד
עס שאילתות הפעולה בפרויקט).
השיגרה שלפניך מציגה את התחביר שמיישס את המשפט ₪06ק םדג5ח0. השיגרה
מפעילה את השיטה 56606 של האובייקט ח66000חחס6 ומעבירה משפט 501 בתור
מחרוזת. המשפט 06אק 655475 מנסה ליצור שאילתה שנקראת 6!60610656ש.
השאילתה מוחקת את כל הרשומות של הטבלה 68וח3אזסטוח6וץ!ווחג] שערך השדה
סג שלהן הוא 10 או יותר. אם לא ננקוט אמצעיס מיוחדים, השיגרה תיכשל
במידה שהשאילתה 06!60677856 כבר קיימת. כדי לאפשר להפעיל את השיגרה גס אס
היא כבר קיימת, הקוד ממשיך להתבצע מהשורה הבאה במקרה של שגיאה.
()006|6%6 [0768%60706 5
6% ₪656 זסזום חס
חסוז66חח60. 08 ₪5 1 החש חחוס
8 5 6861 וחום
6זט סק ₪5 61סזכ חזוס
סה 60 5 601 וחוס
.6006600 61676066 '
הסוח ה0ס0[660.6 66% = 1חחס 56%
0 שו6) = 0861 56%
1חחס = חה0 660 ח660ע60. 68%1
חר 60 צוס] = 601 56%
61 = 66000 60/6000 1 0וחס
.00 06 86 60 5001 6ז660אם '
8" 45 656 266067 270660076 076806" 6זט66אם. 1החס
"10<=10חה= 6ז6ח/ 65 באס רחס זץ|ור3- וחסז= 66ו6ס"
.65 ה60!!6600 06600765זק 6זהזסרתטחם ד
660076 30 65 סכ חר 60 56% ,6זטו060סזק 656 66067 זסת '
5] חן 61סכן ה₪86 זס=
חס ד "656 616067" = ס6ההּא. 61סזק זז
6וחה. 061זכן = 6% 87 60. 601
6 = 6כץ חר 601.60
6
+ 50
1זס אסא
סט 0ח=
8 הח 2000 06655
השיגרה 67680607061006!6466 מתחילה בסדרת הצהרות והצבות שתפקידן לתמוך
בלוגיקה ליצירה והפעלה של השיגרה. השיטה 6ַ0600אם של האובייקט ח6600חח0ס6
יוצרת את השיגרה על ידי הפעלת משפט 501. בשלב וּה, אם השיגרה כבר קיימת,
תתרחש שגיאה. השיטה 66006א5 מוסיפה בפועל את השיגרה ₪6|60610656 לאוסף
5 בקטלוג של החיבור.
שגרות שוכנות באוסף, ולכן ניתן למספר את חברי האוסף באמצעות לולאת
חסם...זס=. הדוגמה משתמשת בלולאה כזו כדי לאתר את 6!6%61708656כ. ברגע שמוצאת
את השיגרה, היא מציבה את המאפיין שוחבא (שם) של השיגרה במאפיין
+ וס של האובייקט 6הח0ס6. לאחר מכן היא מגדירה את המאפיין
6 ו 60 של האובייקט 6חאה 60 בתור 706ק60ז05%0ח06א. שתי הצבות אלו
יוצרות את מחרוזת 501 שנקראת 26|606170656 6ז660א5. הפעלת השיטה %6ז660אם של
האובייקט 0ח8 60 מפעילה את השיגרה ב-36 ומסירה את הרשומות מהטבלה
5 רחס ץ| ווח .
באפשרותך ליצור גירסה גמישה ונבונה של הדוגמה הקודמת בכמה דרכים. ראשית,
מנגנון משוכלל יותר ללכידת שגיאות יכול לבודד סוגי שגיאות אחריסם שמקורס
בשיגרה. שנית, באפשרותך לגרוס לשיגרה לקבל פרמטרים עבור השדה פ1ח8=ת.
הדוגמאות שלפניך מנצלות את המשפט ₪06ק ₪ 6057 כדי להגדיר שאילתת פרמטר
שמוחקת את כל הרשומות שבטבלה פסותּא)ז6סוחס!ץ!וחחה= שערך השדה פ1ח8" שלהן
שווה או גדול מערך שהוגדר בזמן ריצה. הקוד מזכיר את שלבי הגדרת ערך פרמטר של
פקודה. שיס לב כי עליך ליצור את הפרמטר, להוסיפו לאוסף פ5זוסזְסוחִהּזְ833 ולאחר מכן
להציב בו ערך. שגרת הדוגמה גס לוכדת שגיאות שמקורן בניסיון ליצור שיגרה ששמה
זהה לשס של שיגרה קיימת.
()006|6%62 [6768%67706 ס5
2 6070 זסזום חס
הסוח 08.60 ₪5 1 חהח6 וחוס
חר 8.60 0 45 601 וחוס
ההק 35 1 וזכ וחוס
הס 660 60 61676006
הסוח ה 0ס0[660.6ז%ח6 6 = 1חחס 56%
5 680 חח זס 65% די
1 ₪8186.זזם | '
6ז סכ 6 86 50 .5001 660%6אם'
8 " 2616060656 06זק 076806" 6ז660אם. 1 החס
8 " 5 (8חס] 1זסזסוחהּזבק)"
8" 65הזס רחש ץ|ורחה- וחסז- 6!6%6כ"
"1 זובזב = <10וחהּ= 6זסח//"
פרק 4: טיפול בנתונים באמצעות שאילתות 259
0 60 0+ 6ו660סזכן החסז .501 559
וו 8.00 20 עוסא = 601 56%
1 חס ושו/
61 = 66008 ח6/660.
"656 26|6067" = 6% הו 60.
6 = 06ץ ו 60.
הז%ו 0ח=
3 765 06600זק 6חז ז56'
,"601 הזהק" )601.00 = 1וחזק 56%
(ז6 060
1חזס 0חהס6קקה.5זסז6רח ה זהק. 601
0 = 6טוה/. 1חזזס
0 60 6 הו %ה500066 .5001 76'5ו660סזכן 06 6אסטחד'
ב
:א 62|
0 6וא=
62
החד 2147217900- = זספוחטא.זזם +1
5 1680 6זט660סזכ זס1 ספזודי
"656 616067 6סזק קסזכ" 66ט66אם. 1 החס
56
56
8 " 608060 חח ח3 000678560 הההזפסזק סד" א0סף5וו
8 " 6זה הסק0656 300 זסטותטח 165 .זסזזס"
= ,|68וזפע , הססק ו 0פסכ.זזם 8 " :" 8 זססותטא.זזם
"2000 266655 1167050 פחוו וחהזטסזק"
+ 0חם
6662 6506
סט 0ח=
בעת ציון פרמטר במשפט ₪06 = ד6₪5, הכלל את הצבת הפרמטר לאחר שס השיגרה,
אך לפני מילת המפתח 5. באפשרותך להצהיר את שמה ואת סוג הנתוניס שלה
בפרמטרים, כפי שניתן לראות בדוגמה. מפניס שנית לפרמטר בפסוקית =מםה/, כדי
להגביל את פעולת השיגרה. התחביר זהה לזה של שאילתות פרמטר שיוצריס בתצוגת
עיצוב.
שיס לב כי אינך צריך בעצס לעבור בלולאה על האוסף 6660765סו₪ כדי להפעיל
שיגרה ספציפית. באפשרותך להתייחס לשמה כל עוד תגדיר את 06ז8060005607600
בתור הערך של מאפיין הפקודה, 6קץד0ה8חוחס6. הדוגמה מציבה את הקבוע 10
בפרמטר (1ַזססוחז8ק) כדי לשמור על עקביות עס הדוגמה הקודמת, אך תוכל
להשתמש במשפט הפונקציה אספזטסח1 או בטופס כדי לקלוט את הערך עבור הפרמטר.
0 ה 2000 406655
הדוגמה גס כוללת מנגנון בסיסי ללכידת שגיאות למצב שקיימת כבר שיגרה בעלת שס
זהה (מספר שגיאה 2147217900-). השיגרה 006!6062 676806061 עושה דבר פשוט:
היא משליכה את השיגרה הישנה במקרה של שגיאה על ידי הפעלת המשפט ססמס
%6. תחביר המשפט הוא '806/סעסססס/ש 6סחק קסמס יי.
הפעלת שאילתות
על מקורות נתונים מרוחקים
עד כה, הדוגמאות שהצגנו בפרק התייחסו למקורות נתוניסם מקומייס, או כאלה
שנמצאיס בקוב 460655 אחר. 2000 466655 מאפשר לעבוד עס גס מקורות נתוניס
מרוחקים, כגון ז%6ז 56 501 11070506 או 866זס. בסעיף וה נעסוק בנושא בצורה
תמציתית; בפרק 12 נתייחס אליו בהרחבה.
הפעלת שאילתות על מקורות 0086 מקושרים
באפשרותך לבצע שאילתה על מקור 0086 מקושר בדיוק כפי שאתה עושה עס מקור
נתוניס של 466655 שנמצא בקובצ אחר. תרשים 4.27 מציג את חלון מסד הנתונים ובו
שלוש טבלאות מקושרות ממסד נתוניס 5פטש שמצורף למוצר ז6/ז 56 501. פעל בהתאס
לשלביס שלהלן כדי לקשר את היישוס לטבלה שנמצאת במסד נתוניס מרוחק:
1. בחר באפשרות קבל נתונים חיצוניים (0813 |8ח₪607 66%) מתפריט קובץ (₪8) של
5 ולאחר מכן לחצ על קישור טבלאות (65!ס8ד אחז )).
2. בתיבת הדו-שיח קישור (חו)), בחר באפשרות 3393505 0086 מהרשימה
הנפתחת קבצים מסוג (6קץד 01 65וו₪).
3. בחר ב-א05 בכרטיסיה 500766 03%3 360186 (באפשרותך ליצור אפס חדש אם
זה הדרוש לך אינו זמין).
4. השלס את הקישור על ידי בחירת טבלה ולחיצה על אס.
מאחר שכמעט כל מקורות הנתוניס תומכים ב-0086, דרך טיפול ו בנתוניס מרוחקיס
מספקת גישה אוניברסלית באמצעות הממשק המוכר של 00055(.
החלון העליון בתרשים 4.28 מציג את שלוש הטבלאות המקושרות שבתרשים 4.27
בתצוגת עיצוב שאילתה. לאחר יצירת הקישור אל טבלה מרוחקת, באפשרותך
להתייחס אליה כאילו היתה טבלה מקומית. טבלאות במקורות נתוניס מרוחקיס
עלולות להיות גדולות מאוד, ולכן יש להתחשב בהן בצורה מיוחדת בעת עיצוב
שאילתות המפנות אליהן. הסעיף הראשון בפרק זה שופך אור על כמה טכניקות
אפשריות. גודל הטבלאות וסוג החיבור הפיסי למקור הנתוניס המרוחק יסייע לקבוע
את עיצוב השאילתה הטוב ביותר. החלון התחתון בתרשים 4.28 מציג את השאילתה
שבחלון העליון בתצוגת גיליון נתונים.
פרק 4: טיפול בנתונים באמצעות שאילתות | 261
<1ם) - | 6 :-: 4זס1קְהּח;) פפנ
5 | > | יאפ 9 פס
... 10/06/1998 = ...10/10/1998 ,5 בד מז 6
... 10/06/1998 = ...10/21/1998 .₪ 1
... 10/06/1998 = ...10/06/1998 ,5 וטקנ ץז
5 בפאחו] + ... 10/06/1998 = ...10/06/1998 בי
5 תו + ... 10/22/1998 = ...10]2211998 55 סקס
5 ופאחו] + ... 10/08/1998 = ...10/09/1998 85 פטס 5 %
5 ופאחו] + ... 10/22/1998 ...10/22/1998 5
5 ופאחו] + ... 10/06/1998 = ...10/06/1998 זל
6 יחו ... 10/08/1998 = ...10/08/1998 5זסזוב טס 8+ ו
06 פאחו] + ... 10/08/1998 = ...10/08/1998 וסוס ספ 9%
ו 1 ... 10/08/1998 = ...10/08/1998
5
בי
5
תרשים 4.27: חלון מסד נתונים זה מציג שלוש טבלאות מקושרות - פ>זסחזטה 000,
זסו06800 000 ו-₪₪65 000. באפשרותך להשתמש במנהלי התקנים של 0086 כדי ליצור
קישור אל טבלאות שנמצאות במקור נתונים כלשהו באמצעות מנהל התקן של 0086
עזסנו 1 : עוטנ 58 6:00 לא
זס0ח)1!630! ספ
| 0
|| שחמח 34| || 6חה 30], 16| :
ָ
וננ הצמצההצמנט נמוצממקונהומחם]
5 עזסט 561601 : עזסט) 65!וו] 0ם שא
|+ | 8הת 80 | תבה שה | | 606 00| |
זט ובו 8 0818088585 8'5שו80₪1א= צפטם סד | +
החפ | 81-73]!5ת21016 | 5ה8ח10ו>] 3308 התהתההואסטם חו פזפפ"ר צחות ₪
ץז הפ ?חפ ז058 ]| | זטם | |
|68ווז זפ טסוו 81 החזנוסכ) פחד| |
בו ס|וו6351 |88 58 סו 23917000 3||8/ר חססווום | |
חח ווטם | חססו|ום 01 5601815 | = |
ןז 3 הזכ 8 08180885 08'5ו60₪1א= צפטם פד | |
ןו זכ זו 60 0 טס | |
5 זס [> :| | + 1 ]| |4ו ג
תרשים 4.28: שאילתה פשוטה המבוססת על שלוש טבלאות ממקור נתונים מרוחק.
החלון העליון מראה כי ניתן ליצור שאילתות אל טבלאות מקושרות מרוחקות כאילו היו
מקומיות. החלון התחתון מציג את השאילתה בתצוגת גיליון נתונים
2 הח 2000 466655
הפעלת שאילתות בפרויקט נתונים של 66655
0 60655 כולל סוג פרויקט חדש שנקרא 0[60זק 460655, אשר עוקף את מנגנון מסד
הנתוניס 360 על ידי יצירת קישור ישיר אל גרסאות 6.5 או 7.0 של זסצז56 .501 וגם אל
6חוחָח= 8ז28 050/6ז6ו1!]. 6חופחם 8ז8כ 50%6סי6ווי] הוא הגירסה החדשה של ז8/ז56 .501
עבור סביבת 95/98 פווס4חו). סביבה גו מאפשרת ליצור קישור ישיר אל מסד נתוניס
מרוחק ולטפל בו כאילו היה מסד נתוניס מקומי.
החלון העליון בתרשיס 4.29 מציג את חלון מסד נתונים של פרויקט 406655. שיס לב
שהוא והה במראהו לחלון מסד נתונים של מסד נתוניס 00חח.*, אך מקור הנתוניס שלו
הוא מסד הנתוניס 5 (באפשרותך להחליף את מסד הנתונים שיהיה מקושר אל
חלון מסד הנתוניס על ידי בחירת התקשרות (ח6000חח60) מתפריט קובצ (₪6)).
החלון התחתון בתרשיס 4.29 הוא תיבת הדו-שיה 65שוסקסזוק אהו| בּז3ם של
הפרויקט. השרת של פרויקט זה הוא 6892200, שס שרת מסד הנתונים 7.0 ז567/6 .501
המקושר. כדי להקיס חיבור פעיל אל שרת, עליך לציין את מידע הכניסה (חספסו).
הדוגמה הנוכחית מנצלת את האבטחה המשולבת של דא פאוססחו/. לאחר שסיימת
להקיס את החיבור, תוכל לפתוח מסד נתוניס כלשהו שנמצא בשרת שמותר לך להיכנס
אליו. לחצ על ה06600הח60 65%ד כדי לוודא את חוקיות הקישור למסד הנתוניס
המבוקש.
|<1ם)- | 6 :-: >פנו] פפנ
8 | % | אש פס הפס
5 88
6סו|קותט 156005 5זסתזום חן 30|6: 6806
אוסו/י חהַופשם סול
2 בובובוםן ו 5חה זחָבום 0330356
וז 506
סז 5זסתפוופטם סוחן פטם
וי
| 5 1 5
בי -2)
₪60
5
5
וויק
פרק 4: טיפול בנתונים באמצעות שאילתות 263
|< | 5ננזפטטו אחו | 313 ₪5
| 8 | 44050066 | חסספחחסכו
:08 זסיז5 501 0 זסשהחסס סז בהווסוום] 06 ע!וססס 5
:3 זס 501 3 זטוחם זם 561601 .1
| הז | 5 2 |
זיז 6 סו חס ס! סז הפווהזסזחו זטזח= .2
50 3)60זטטזח| 47 5טוסבחועש 56| +
355 300 שבח 0567 סו/ו0טק6 8 96 7+
שוחב זפ ו
9ב
עשפה וס סחושםפ שטוו קן בבק > הבו קן
5 סח חס 3630386 6 01סו5 3/6
| - ו |
:בח 03130356 3 35 6 33130356 .501 חב 46308 ,ז. 67
וו
סוחבמפון מ סופ וו
| הפוסש חס 85%
תרשים 4.29: החלון הראשון הוא חלון מסד נתונים של -0[66זק 466655; החלון השני הוא
תיבת הדו-ש'יח %165ז6כסזק אחו| הזה של הפרויקט
תרשים 4.30 מציג את תצוגת העיצוב של שאילתה ב- 66[סזק 866655. רשת עיצוב
השאילתה שלו דומה לזו של מסד נתוניס מסוג 00ח.*, אך היא מהווה חלק מאוסף
כלי העיצוב החזותייס, שחו ₪8 508סזסו1. | באפשרותך ללחוצ לחיצה ימנית כדי
להוסיף טבלאות או שאילתות נוספות בתור מקורות רשומות לעיצוב של שאילתה
חדשה, ותוכל גס לגרור ולשחרר שדות בין טבלאות כדי ליצור קשרי גומלין. לא קיימת
תצוגת .501 מפורשת לעניין זה, אך ניתן להחליף את מצב ההבחנה של חלונית .501
בתצוגת העיצוב באמצעות לחצן בסרגל הכלים מסד נתונים (סִ5הס8ז28). הלתצן
הראשון בסרגל כלים זה עדיין מאפשר להחליף בין התצוגה עיצוב (ח8ו65כ) והתצוגה
גיליון נתונים (066ַ55ז8כ). כיוון רשת עיצוב השאילתה משתנה מאנכי לאופקי, אך
העיצוב נשאר דומה. בוניס תצוגות על ידי הוספת קבועיס וביטוייסם לתאי
הקריטריוניס מימין לשמות השדות ברשת עיצוב השאילתה.
4 הח 2000 406655
|<1ם]- | [אשול : עזסט) 65]ו1] - 466655 ])ס5סזסו4!
|< |פן 5 שו אוסטחוצל. 10065 עזפטט) >זספתן אופוע. פובם 6ום |
₪] | ₪ = ]| מ | ! | ₪ | ₪ מגה ₪ | 5 5 | ₪ |- חן
%וס טוה 88
(5חוחנ!ס= ||ם) *
₪ נה
. שוחבר| שב
| זסת 3 6]וו) 83 שוחהח] ₪
(פחחח!ס = ||מ) * שחסחם ₪
₪ נה
זססץ|ה סז
(5חוחט!ס = |מ) |* |
4 ₪6
סש
שסשעטל
₪ פטס |
5
5זסתזוום
5זסתטב
, סונהמ1 גוהּ. פעסבסגוה ,6151653.01516 0207ע₪
בונ גוףּ . מס סגו
אנסט תפזך 3עסמסגוה זסתץ
סנ תמזתך 16168ס
אס 18 1516ם.תסם05וה51515 = 18 515163.01516 0% עסםסוה15163ס
3 גוףּ. עס0ם05ו515168 = 18 גוהף. כמסםסגוה
תרשים 4.30: תצוגת עיצוב של שאילתה ב- 0[6%ק 866655. שים לב להצגת קוד .501
של שאילתה בחלונית נפרדת ולא בתצוגה נפרדת
תכנות שאילתות עבור מסדי נתונים מרוחקים
מפתחים רבים מעדיפים לעבוד ישירות עם ממשק תכנות ולא עם ממשק משתמש גרפי.
0 8000585 מציע תאימות הדוקה יותר בין שאילתות של מקורות נתוניס מקומייס
ומרוחקיס ברמת הקוד לעומת זו שברמת ממשק המשתמש הגרפי, מכיון שניתן
להשתמש ב-₪00 וב-501 בעבודה עם שני סוגי מקורות הנתוניסם. ההבדל הגדול ביותר
ביו גישה לנתונים מקומיים או מרוחקים, הוא שגישה לנתוניס מרוחקים מחייבת
לציין את פרמטרי ₪08 015 של ספק 08 015 (ופסוטסזק 8 015) בצירוף הנתוניס
שברצונך לתשאל. העברת יישומים ממקור נתוניס מרוחק עלולה להצריך טיפול
בתאימות שפת 501, כיון שמנגנוני מסדי נתוניס מרוחקיס שוניס דורשים לפעמיס
פרמטרי כניסה (ח80סו) שוניס ומשתמשים בהרחבות 501 ייחודיות עבור הרכיביס
המיוחדיס שלהס.
פרק 4: טיפול בנתונים באמצעות שאילתות | 265
כדי להתחבר למקור נתוניס מסוג ז6/ז56 .501 1670506!, תודקק לספק 8 015 מיוחד
שנקרא 508 50101, אשר מותאס במיוחד לעבודה עם ז6אז56 .501 050%ז6ווא, במקוס
מנהל ההתקן הכללי של 086ס0, 504501!, המיועד לעבודה עס מסדי נתוניס 0086.
מנהל ההתקן 504501 ותיק יותר מ-08ם 50101, אך הוא עדיין מנהל התקן רב
תכליתי למצביס בהס לא קייס מנהל התקן ₪8 015 ספציפי. כל אחד משני מנהלי
ההתקנים הללו מקבל פרמטריס שוניס במקצת (בפרק 3 הסברנו כיצד לקבוע את
הפרמטרים עבור 504501!).
הדוגמה שלפניך ממחישה את הישירות של תכנות שאילתה למקור נתוניס מרוחק
מסוג 7 567/08 ]501. שיס לב שהשיגרה משתמשת במנהל ההתקן 8כם |5010.
השאילתה מבוצעת מול מסד הנתוניס 5פט? בשרת 6802200. לאחר פתיחת החיבור
בהתבסס על מנהל ההתקן 508 50101 והגדרות הפרמטרים שלו, השיגרה יוצרת
אובייקט מסוג 0ח8 607 ומגדירה את המאפיינים 6% 6080 ו-6קץ דחו 60
שלו. לאחר מכן היא מבצעת את הפקודה, מציבה את קבוצת ההחזרה באובייקט
ומדפיסה את קבוצת ההחזרה.
(6080060ו0 501 פט5
חסוז66חח60. 08 ₪5 1 חהחס6 חחוסם
חר 8.60 0 45 601 חחוס
5 561 וחוס
.6 6 סל 6600 60 8 ה5ו!5%80ם '
.6 6 85 6808100 0ח3 500706 0818 6+ 85 (6802200) ז507/6 6+ ץ)ו5066 '
הסוח 8.60 ה שא = 1 החס 56%
1חחס שו/
"60!ס|ף5" = זססוטסזס.
= 8 ";500706=6822200 08%8" = 660050780 ה ה 60.
"5סטק= 680800 |108ח58;1 = 0! זספט"
חסקס.
ה)%ו 0חם=
0 6080 3 קט 56% '
וו 8.00 20 עוסא = 601 56%
1 חס ושו/
61 = 66000 ת6/660.
8" ,65.006 ₪607 551" = 6% ההות 0ס6.
₪ " שוח 5.3זסח6טה ,6הההח! ט5.8זסתזטבּ"
= 8 " אזסנ משאא1 פזסחסט3) א1סנ אפאא1 ₪065 אסח-"
8" אס (0ו טב.זסתז 06 = 0! ט5.3זסחזט3 0 זסחזטב6ם"
"ן 006.זסח%ט68 = 6 065.006ם"
0% = 06ץ ו 60.
הזו\ 0חם=
50 ץזסט 60660160 6 חס 08560 66070566 3 זחוזכן 0ח3 חסמס '
6 = 961 56%
0חו06%5). 5%1ז +חוזק. פטטסס
טפ 0ח=
6 הח 2000 406655
שאילתה זו מפיקה תוצאות זהות לאלו של השאילתות המוצגות בתרשימיס 4.28
ו-4.30. לקחתי את קוד 501 שבדוגמה הנוכחית ישירות מתצוגת 501 של השאילתה
שבתרשים 4.28. שים לב שהיא דומה, אך אינה זהה בארגון שלה, לקוד 501 שבתרשיס
0 של ₪70[60 ₪60655. יחד עם ז1את, באפשרותך להמיר את קוד 501 מתרשיס 4.30
לתוך השיגרה שלעיל מבלי לשנות את קבוצת ההחזרה. הדבר מאשר את הדעה שגישת
התכנות המבוססת על 00ח.* וגישת 0[606זק 460655 יכולות להפיק תוצאות שקולות
למרות כמה הבדלי סגנון בייצוג שלהן ב-501 במקריס מסוימיס.
פרק 4: טיפול בנתונים באמצעות שאילתות | 267
5
בניית ממשקן משתמש
באמצעות טפסים
יישומיס משתמשיס בטפסיסם ובדוחות כדי לייצג נתונים. טפסיס מהוויס גם אמצעי
לקליטה ומתן משוב על קלט משתמש. משתמשי מסד הנתונים מתקשרים עס היישוס
בעיקר באמצעות טפסים, ולכן יש חשיבות רבה לעיצוב טפסים ולאופן תפקודס. פרק
זה פותח בהסבר כיצד ליצור רושס ראשוני מלהיב על ידי שימוש בטופס שנקרא מסך
פתיחה (ה66ז56 ה50185). בהמשך הפרק נלמד כיצד לגרוס לטפסיס (במיוחד טפסי
איגוד-נתוניס) לתקשר עס נתוניס. נלמד גס על עיצוב מותנה וביצוע פעולות חיפוש
מידע עס טפסים. לבסוף, נלמד להפנות לטפסים באמצעות קוד, לכבות ולהפעיל
לסירוגין את המצב הגלוי שלהם וגס כיצד לעבוד עס מודולי מחלקת טופס.
הערה:
0 60655 11670506] מציע שני סוגי טפסים, פוחזס-ז056 הזמינים ביישומים
נוספים של 66ו06₪, וטופס מותאם שהוא גירסה עדכנית של טופס מגרסאות מוקדמות
של 160655. 0056707705 אינם משתלבים בסביבת הפיתוח של 60655 בצורה כה
הדוקה כמו טפס' 466655. לדוגמה, 5וזס-567 אינם מאוגדים לטבלאות ולשאילתות
5. בנוסף, אשפי הטפסים ואשפי הפקדים של 806055 אינם מטפלים
ב-0567=07705. מסיבות אלו הפרק עוסק בטפס' 860655 בלבד. תוכל להרחיב את
ידיעותיך על 5זזס-ו056) באמצעות העזרה המקוונת.
פרק 5: בניית ממשק משתמש באמצעות טפסים | 269
ו 1
טופס מסך פתיחה
אחת הדרכיס הקלות להתחיל לעבוד בצורה בסיסית עס טפסים היא על ידי יצירת
מסך פתיחה. מסך פתיחה הוא טופס שמופיע טרס הצגת טופס אחר אינטראקטיבי
יותר. מסכי פתיחה מתאריסם את ייעוד היישוס ומציגים בדרך כלל גס את שס מחברו.
תוכל לקבוע בקלות רבה את משך ההצגה של מסך פתיחה. תרשים 5.1 מציג את מסך
הפתיחה שנמצא בקוב 5.005ז06ק603 בתיקיה 600668005.. שבתקליטור המצורף.
תוכל לאמצ אותו לצרכיך.
[<]1םן- | 5 )זו ]
קובץ עריכה תצוגה הוספה עיצוב רשומות כלים חלון עזֶרה ]
ה 3
- ₪ | מ ם | 9 | * <> | 88| ש ב ל | 52 5 | 6 | | ₪ ₪ | ג ₪ | ₪ |- שן
60055 2000
|| || (| |
תרשים 5.1: מסך פתיחה לדוגמה
יצירת מסך פתיחה
תוכל להתחיל ביצירת מסך הפתיחה על ידי יצירת רקע פרוש. לשס כך עליך להגדיר
שני מאפייניס בוזמן שהטופס פתוח בתצוגת עיצוב. ראשית, הגדר למאפיין תמונה
(6זנוזסוק) (בכרטיסיה תבנית טפוחזס=) של גיליון המאפיינים) את הנתיב ושם קובצ
התמונה. קוב זה יכול להיות מפת סיביות בתבנית קוחם.*, ססו.*, 1ו8.*, זחאו.* או
]וח *. 460655 יכול גס להשתמש בתבניות קוב אחרות שעבורס התקנת את המסנניס
הגרפיים הדרושים (תוכל להתקין את המסננים החסריס באמצעות תוכנית ההתקנה).
תמונות המכילות גווני אפור או צבעים מעוממיס אחריס מתאימות ביותר כתמונות
רקע, מכיון שהן מבליטות את הרכיביס שבקידמתן - תמונות וטקסט. שנית, תן
למאפיין הטופס ריצוף תמונה (פַחוווד שזנשסוק) את הערך כן (ערך ברירת המחדל שלו
הוא לא) אס ברצונך שהתמונה תחצור על עצמה (לא בוצע בתרשים 5.1).
בשלב הבא, תוכל להוסיף תמונה בקידמה על ידי בחירה באפשרות תמונה (6זנסס6!ק)
מתפריט הוספה (5670ח1). תוכל גס להוסיף פקד ציור (10806) לטופס. אס תנהג כך או
0 הח 2000 466655
אחרת, תוצג תיבת הדו-שיח הוספת תמונה (שזוש6וק 56%ח1) שממנה תוכל לבחור
תמונה להוספה. לחיצה על אישור מגדירה אוטומטית את המאפיין תמונה. 460655
מאפשר להגדיר מאפיין זה באמצעות קוד %84 המאפשר לבנות את מראה הטופס
בצורה דינמית בתגובה לקלט המשתמש (כגון קלט תיבת טקסט), או גורמיס
סביבתיים (כגון קוד האבטחה של המשתמש). תוכל למקס את התמונה, לשנות את
גודלה ולהפעיל את האפקטיס המיוחדים באמצעות הגדרות המאפיין מצב שינוי גודל
(1006] 26ו5). המאפיין יכול לקבל שלושה ערכיסם: גזור (כו|0), מתח (506000) ושנה
מרחק מתצוגה (חס0ס?).
נשליס את מסך הפתיחה על ידי הוספת פקד תווית (|1806) אחד או יותר. תוכל
להשתמש ב-88/ כדי להגדיר מאפייניס עבור פקדי תווית בומן ריצה. הדבר מאפשר
לעצב את טקסט מסך הפתיחה בצורה דינמית.
תוכל להגדיר את מסך הפתיחה כך שייפתח אוטומטית על ידי בחירת האפשרות
הפעלה (ק₪0שז509) מהתפריט כלים (100|5) ובחירה בשס הטופס של מסך הפתיחה מתוך
הרשימה הנפתחת הצג טופס/עמוד (8896/וחזס= ץ8!קפום) שבתיבת הדו-שיח הפעלה.
באפשרותך גס להסתיר את חלון מסד הנתוניסם בעת פתיחת יישום, על ידי ביטול
בחירת תיבת הסימון הצג חלון מסד נתונים (אוססחו) 86808956 צְ!ספוכ) בתיבת
הדו-שיח הפעלה. לחי על אישור כדי לשמור את הבחירות.
בקרה על משך התצוגה
זוג שגרות האירוע שלפניך מציג מסך פתיחה במשך 10 שניות (כדי להציג את קוד 84
שעליו מבוסס הטופס, לח לחיצה ימנית על הטופס, בחר באפשרות אירוע בנייה
(טחס/= 6ווטם) מתפריט הקיצור, לאחר מכן בחר באפשרות בונה קוד 8106 6006)
בתיבת הדו-שיח בחירת בונה (06!ו80 600056) ולח על אישור). שגרת האירוע
ח6ק0 וחזס] נותנת למאפיין הטופס, |8אזססח1וסוחוד, את הערך 10000 (שווה ל-10
שניות; מרווח הזמן מבוטא ביחידות מידה של אלפית השנייה). שגרת האירוע
ה6קס חזס] סוגרת את הטופס. שיס לב כי שגרת האירוע ח6ק0 חחס] משתמשת
במילת המפתח 6 כדי לציין את הטופס. באפשרותך להחליף את *'ז6 וח דח35|ק5וחיזי
בערך 6וחפּא.6] בשיגרה זסחוד חזס]; מוסכמת השס 16 עמידה יותר, מכיון שהיא
מאפשרת לשנות את שס הטופס מבלי לשנות את הקוד.
(%6067ח1 45 |08066)ח6כ0 ה זס- 500 6זהטוזק
0 = |עז%0ח1ז6וחו ד. 16
סט 0ח=
()ז6וחו ד וח'זס= 500 6זטוזק
"זרחו 7ה85!ק5ח" , וח'וס-6 6|056. 6וח6ספ
טפ 0ח=
פרק 5: בניית ממשק משתמש באמצעות טפסים 271
טופס מסך ניווט
טופסי מסך ניווט הס דרך מקובלת לאפשר ניווט ביישוס. טפסיס אלה יכוליס להכיל
לחצני פקודה אחדיס שהמשתמש יכול ללחוץ עליהם כדי לפתוח טופס נוסף. בסעיף וה
נציג שתי גישות לשימוש בטופסי מסך ניווט: האחת בעזרת היפר-קישורים והשנייה
מבוססת על שגרות ב8/.
ניווט בעזרת היפר-קישורים
קל מאוד ליצור ניווט באמצעות היפר-קישוריס, מכיוןו שהדבר איו מחייב כתיבת קוד
כלשהו (למרות שניתן לנהל היפר-קישור באמצעות 88/). היפר-קישורים יכוליס
לתפקד בתור קיצורי דרך אל אובייקטים של מסד נתוניס ביישוס, מסמכים בכונן
הקשיח, קבציס ברשת או דפי 65) באינטרנט או דפיס ברשת האינטרא-נט הארגונית.
5 מאפשר להשתמש בהיפר-קישורים עם תוויות, לחצניס ותמונות.
באפשרותך להגדיר ולערוך מאפייני היפר-קישור מתוך תצוגת העיצוב של טופס, או
באמצעות קוד 88/. קל יותר להגדיר ולערוך היפר-קישוריס באמצעות שגרות ידניות
(המאפשרות גס להפיק טפסיס הנטענים במהירות רבה יותר), מכיון שטפסיס בעלי
היפר-קישוריס שנוצרו בתצוגת עיצוב אינס מחייבים שמודול יכיל קוד 84/. כדי לנצל
יתרון זה, צריך מאפיין הטופס יש מודול (6גו0ס1! 0₪5) להיות מוגדר בתור לא.
הערה:
סוג הנתונים היפר-קישור מאפשר ליישום 60655 להפעיל היפר-קישור מתוך
שדות טבלה או שאילתה. שדות מסוג היפר-קישור דומים במובנים רבים למאפייני
היפר-קישור, אך משתמשים בהם בצורה שונה. עיין בפרק 13 לקבלת מידע נוסף
אודות שימוש בהיפר-קישורים לפיתוח בסביבת 60/ו.
תרשים 5.2 מציג ארבעה טפסים המשתמשים במערכת ניווט פשוטה. טופס מסך
הניווט הראשי שבצד שמאל מעביר את המוקד אל אחד משלושת הטפסים האחרים
כשהמשתמש לוחץ על חיפר-קישור בטופס הראשי. ברגע שהמוקד עובר לטופס אחר,
יכול המשתמש להחזיר את המוקד אל מסך הניווט על ידי לחיצה על ההיפר-קישור
המפנה אל הטופס הראשי.
באפשרותך להגדיל את מספר הרמות של היררכיית מערכת הניווט, בצורה קלה
ופשוטה. באופן טיפוסי, כל מסך בן יכול להתזיר את המיקוד למסך האס שלו. מסכים
ראשיים כולליס לעיתיס קרובות דרך יציאה מהיישוס או מ-00655(.
2 הח 2000 406655
[<זם)-) זז 1
וס אוסנחו 0סד 660705 6בחחזםת >חספתן אוסוצ ₪5 ₪6 |
תפ ו -
| | = == | וי | - [
*| >
| ום). | בו ד ון- |
. : וספ חש 5 הו[וסקץו עו
0 הסם ח0פוצצ5 6 הוהסקץר] ץוי] סם הוטפס
6 סב
89 00 6
סד 0
הס ח0פוצט5 א הוההשכער)| עוי] סם הנס
זה / זה 6 סכ)
[<1) - | 6וסח/ש זפחו0 הז 0 3
הסט ח0ועצ5 6 הוהשכער)] עו] סז הגטס
תרשים 5.2: מערכת ניווט פשוטה בעזרת היפר-קישורים
כדי ליצור היפר-קישור באמצעות פקד תווית (|806 )6, פעל כך:
1. לחץ על לחצן בניה (0וום) שליד המאפיין כתובת היפר-קישור שחווזספעץהח
5) או ליד המאפיין כתובת משנה של היפר-קישור (חוחססץה
5 בגיליון המאפייניס של התווית.
2. בתיבת הדו-שיח הוספת היפר-קישור (אחווזססץ 56ח1), בחר את סוג האובייקט
לקישור מתוך הרשימה קישור אל (סד >חו)).
3. הקלד את המידע עבור סוג האובייקט.
לחץ על אישוד.
<
הערה:
כברירת מחדל, היפר-קישורים שלא לחצו עליהם בהפעלת 466655 מוצגים
בכחול, וכאלה שלחצו עליהם - בצבע המכונה סיגלית. באפשרותך לשנות צבעים אלה
על ידי בחירה באפשרויות (5חסטקס) מתפריט כלים (פ|ססד), בחירה בכרטיסיה כללי
(|8ז6ח66) ולחיצה על אפשרויות אינטרנט (פ5חסטקס 60/). השתמש בשתי תיבות
הרשימה שבתיבת הדו-שיח אפשרויות אינטרנט כדי לקבוע את הצבעים הרצויים.
תרשיס 5.3 מציג את תיבת הדו-שיח הוספת היפר-קישור בטופס 176070616 במסד
הנתוניס המדגמי של פרק זה. ההיפר-קישור מעביר את המיקוד בחזרה אל טופס מסך
הניווט.
פרק 5: בניית ממשק משתמש באמצעות טפסים 273
<|? אחו!זסקעץ!] זזס5ח!
| ...50766710 זב ספת66ו5 אחווזסקעיר זיז סט הז ] :15013 50 +אפד
:3330356 815 חו זספ[טס חב 58|666
חול 3 וס =|3 חסופוטחס-)חחיו
זס 6|=₪ בַחו50וא=
6 ספא
פוחץ חו לשוכ
8
5
וכ
בי
זו זה35 ופוח ב
5 ו!ה-=
₪ | 0 |
תרשים 5.3: תיבת הדו-שיח הוספת היפר-קישור עבור התווית בטופס 6זפ6חססוחז?
קטאסס1550671-חחיו]
5 זט 1500-)חזז'
תס -סו = הזז
זו סז
חח הזז
6זס סםוחז]
בזה ספח-6ועש5חו!זסק ווח
הזוס = 1/5 רת
הזב חס56/י1י הח
ב
קזב ווח
₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪
ניווט באמצעות קוד
דרך מקובלת נוספת למימוש ניווט באמצעות טופס מסך היא באמצעות קוד %8
מאחורי אירועי לחיצה של לחצן פקודה. גישה וו מאפשרת חשיפה עשירה יותר
לרכיביס התפקודיים של 466655 לעומת ניווט שמבוסס על היפר-קישורים, מכיון שכך
ניתן לשלב פונקציות ניווט עס אירועיס נוספים, כגון סגירת טופס (היפר-קישור
מאפשר פתיחת טופס מתוך טופס אחר, אך החזרה אל מסך הניווט מותירה את הטופס
הבן פתוח; ניווט מבוסס-84/ מאפשר ליישוס לסגור את טופס הבן כשהמשתמש סוגר
את הטופס הראשי). שגרת אירוע מאפשרת גם להגדיל את השליטה באובייקטיס רביס
של מסד נתונים. ניווט המבוסס על היפר-קישוריס פשוט מעביר את המיקוד לאובייקט
אחר, כגון טופס.
תרשים 5.4 מציג זוג טפסים המממשים ניווט בגישת 8/. דוגמה זו מבוססת על
אירועי לחיצת לחצן. כשהמשתמש לוחץ על אחד מלחצני מסך הניווט, קוד אירוע
לחיצת הלחצן פותח את טופס היעד וסוגר את מסך הניווט הראשי. לחיצה על לחצן
חו3ּ1) סד ₪608 בטופס היעד סוגרת את הטופס ופותחת את טופס הניווט הראשי
(הדוגמה מבוססת על לחצני פקודה, אך באפשרותך להשתמש בבקרה מסוג אחר
כלשהו שמאפשרת למשתמש ליצור אירועים).
4 הח 2000 466655
| ום)=. ו ו
536 6זבּסם ח6ושצ5 הספזט₪ עו
6זסח/ זפחלכ 06 סט
| 6 זז סט
<1ם)-. ב ו ו ו -
תרשים 5.4: טפסים אלה משתמשים בקוד מאחורי אירועי לחיצת הלחצנים, כדי לנווט
זוג שגרות האירוע שלפניך מציג את קוד אירועי הלחיצה של שני הלחצניס שבתרשיס
4. השיגרה הראשונה מעבירה את השליטה ממסך הניווט הראשי אל המסך השני.
היא גם סוגרת את הטופס הראשי. השיגרה השנייה מעבירה את השליטה חזרה אל
מסך הניווט הראשי ולאחר מכן סוגרת את הטופס השני. השתמשתי באשף לחצני
הפקודה כדי ליצור את הגירסה הראשונית של כל אחת מהשגרות; לאחר מכן הוספתי
שורת קוד לכל שיגרה כדי לסגור את המסך המתאים.
()6|166 60071676 500 6זפטוזק
6000676 זז 6070 זסזזם הס
0חו50 5 55006836 הזוס
"6 00 הסא טוח" = שוחה \6סכ5
520636 וס ה6ק0. וחספ
"5600 חס וז" ,וחזס-36 6|056. חספ
:6% 6000676 6וא=
טפ זואם
:6% 6600676 זזם
חסוססוז2656.זזז= אס8 15
6 6000676 6וא= 6506
סט 0ח=
פרק 5: בניית ממשק משתמש באמצעות טפסים 275
ו 1
()א6ו61 חו3!ס דח 6 0ח6 500 ס6אהעווק
6% חס הט 60 זזם 6070 זסזום חס
0חו5 5 55006836 חחוס
59 5 בחססוזאחו 50 חחוס
"56000 חס םות" = 6וחהּ\6סכ5%
520636 וחזס- ה6ק0. 60ספ
"6 00 חס6 םוח" = 6וחהּ\6סכ)5
650 ,5%006136 ,וחזס-86 6|056. חספ
:ו ובס דחה טס 6 6ואם
סטפ זואם
:6% ןס זט וח זזם=
חסוסס1ז2656.זזז= אס8 15
הס ד הט 60 16א= 656
טפ 0ח=
קישור טפסים לנתונים
מאז ומתמיד איפשר 460655 לאגד טפסים עס נתוניס בצורה קלה ופשוטה. זו אחת
הסיבות העיקריות להיותו סביבת פיתוח מהירה.
שימוש באשף הטפסים האוטומטיים
כדי לאגד טופס עס נתונים, ניתן להפעיל את אשף הטפסים האוטומטיים (וחזסססטה
6 )). בחר טבלה או שאילתה בחלון מסד הנתוניס ולח על הלחצן אובייקט חדש:
טופס אוטומטי (חזס-סזטה:00[60 שסא) בסרגל הכליסם מסד נתונים (ספהּטהַּז).
האשף יפתח טופס חדש שמאוגד ישירות למקור הנתוניס שנבחר. תרשיס 5.5 מציג
טופס דוגמה המבוסס על הטבלה 06198 ז06זס במסד הנתוניס המדגמי שבפרק זה.
באפשרותך לנצל טופס זה לעיון, עריכה, הוספה או מחיקה של רשומות בטבלה
5 ז06זס.
<1םן- | בוו ם-
18 סן וסוס
5 0650 סז
0+ 6שוזק וח( ו
שפומְחבּנל)
לחס0ספום
5 0 |++| זו שת ]| 4 [4ו 0
תרשים 5.5: טופס שנוצר באמצעות אשף הטפסים האוטומטיים
206
66655 2000 8
מקור הנתוניסם של השדה 7700065 בטופס הוא שדה בדיקת מידע בטבלת הרקע 07067
5מזסם, ולכן השדה 0806%ז0 מוצג אוטומטית בתור תיבה משולבת המציגה את שמות
המוצרים, במקוס את ערכי הרקע פשסטטסזק. כל הרכיביס התפקודיים הללו סופקו
אוטומטית על ידי האשף.
עיצוב מותנה
0 0068585 מאפשר לעצב בצורה מותנית את הנתוניס המוצגיס באמצעות פקד תיבת
טקסט או תיבה משולבת ללא תכנות. באפשרותך להחיל עיצוב מותנה על פקדי טופס,
בשדות מאוגדים או בלתי מאוגדים כאחד.
תרשים 5.6 מציג שלושה מופעיס של השדות %חט560ו ו- 766 060ַח66אם. השדה
ספוש בטופס העליון הפך ללא ומין. הטופס האמצעי מבליט את הערך בשדה
6 0000060 באמצעות עיצוב של הטיה והדגשה. הטופס התחתון הופך את השדה
01500 לזמין ומבליט את הערך שבשדה 6סוזק 060ח66אם.
השדה 6סקק 0ַ06ַח66א₪ מחושב; ערכו אינו נגזר ישירות מהטבלה שברקע.
המאפיין מקור פקד (6ט50 |סשח0ס6) של תיבת הטקסט מכיל ביטוי
(([%חט0ס56וכ]-1)*[/ וס הה66[*]0קטוח0]) באמצעותו הוא מחשב את הערך בעת
שהמשתמש עובר לרשומה חדשה, או מעדכן את השדות 6סחקטסוחש, שסההטס או
+ סוס ברשומה הנוכחית (המונחיס בסוגרייס המרובעיםס מתייחסיס לפקדים ואינס
שמות של שדות עבור מקור הנתוניסם שברקע).
|<1ם]ן-. ההזי ודו ו ו ו ו -|
הזוס 6|כןח58 הרוה ותחוס= |החהסםוטחס
:וז 60ח6לא=
0+ 8 ו :0 פטס
5 זםה = 850נוכ)| :לסטסזק
0+ סז וח
12 שולחבנור)
% | :)הטסו
5 0 [+*| ]| | 1 4 | 4ו 0
פרק 5: בניית ממשק משתמש באמצעות טפסים | 277
|<1ם] = | ה |
החוס= 587216 בַרוח8 ו וס= |ההסםוסחס
8 60ח0אם
0 | מש ] :10 וסוס
[- 6סקה הפוזם סטחחו(ח13י] :לסנוסזק
2.40 | : ססוזק מוח
0 | וי
חווס6פו
5 "0 |++| תו 5% ]| 4 ]ו ]ו
|<1ם] = | ה
החוס= 6!כח58 הרוה ווס= |ההסםוסחס
חא
11460 ן [250 ו | זסטזס
] * 6|ססה בפוזום סטחזןח13י] :סק
2.10+ | : ססוזם מוח
להנו
:חוס0ספום
5 0 |+*| תו שו ]| 4 ]4 ]ו
תרשים 5.6: עיצוב מותנה שולט במראה השדות 66וק 0060060 ו-)חטס6פום בטופס
שלפניך
הערה:
מפתחים לא מנוסים נותנים לעיתים שמות זהים לשדות ולפקדים. הרגל זה
עלול לבלבל ולגרום לשגיאות (אשף הטפסים האוטומטיים לוקה אף הוא בחיסרון זה).
מומלץ להוסיף תחיליות לשמות פקדים כדי להבדילם משמות השדות ברקע שלהם.
לדוגמה, שמו של פקד תיבת טקסט שמאוגד עם שדה ששמו ש6שסחקאחע יהיה
66וזלס וח אס.
8 הח 2000 406655
כדי להחיל עיצוב מותנה על פקד, בחר את הפקד ובחר באפשרות עיצוב מותנה
(0חו8 וח זס=] |ההסטו0חס6) מתפריט עיצוב (ח0ו65כ), כדי לפתותח את תיבת הדו-שית
עיצוב מותנה, המוצגת בתרשים 5.7. לכל פקד בעל עיצוב מותנה יש שני עיצוביס
לפחות - עיצוב ברירת מחדל ועיצוב מיוחד שחל כאשר מתקיים תנאי מוגדר.
באפשרותך לעצב את הפקד בהתאס לערך השדה של הפקד, לערך הביטוי או לעיתוי
קבלת המיקוד. בעת טיפול בערך השדה של פקד, באפשרותך לבחור מתוך רשימת
אופרטוריס של השוואה, כגון שווה ל (=), גדול מ (<) וקטן מ (>). התנאי של השדה
סוס שבתרשים 5.7 הוא ערך שדה הינו שווה ל 0 (0 0ז |60₪8 15 6טופע 60ות).
אפשרות העיצוב שנבחרה לתנאי זה מבטלת את זמינות הפקד כאשר ערך ההנחה
טחט500ו0) הוא 0.
|<]?) טחו!זבּחוזס-] |הּחסוווטחס:)
בַחול 6 חחזזס=] ]08 -ן
| | 2 סח זו 56 56 ||או )החחזס] פוחד
=|-1|8.|4 5 5
== 1 סוחס
₪ |+ סל 5] 5 שטווב/ ב|סו-
6 0 )החחזס] ]0 ושושישוק
5! הסוחס6 השח
| 68 | וכ | << 800
תרשים 5.7: תיבת הדו-שיח עיצוב מותנה
אס תחיל עיצוב מותנה על שדה מחושב, כגון ₪66 060ח66, עליך לכתוב ביטוי
באמצעות אופרטורים תקנייס של %88/. התנאי עבור השדה 066ק 060ח₪606 הוא
(04./8]06<500א6? 15 חסו655זקאם) (4)אד הוא הפקד שמציג את הערך המחושב). כשערך
השדה גדול מ-500, התוכן שבתיבת הטקסט יובלט בעזרת הדגשה והטיה.
באפשרותך להחיל על פקד תנאי נוסף ועיצוב מיוחד. כל שעליך לעשות לשס כך הוא
ללחו על לחצן הוסף (400) בתיבת הדו-שיח עיצוב מותנה (0חו8זס= |החס ו ה ס6)
ולציין את התנאי החדש ואת נתוני העיצוב שלו.
טפסי משנה
טופס משנה (50010), המספק את אחת הדרכיס המקובלות ביותר להצגת נתוניס
ב-460655, הוא טופס המוטבע בטופס ראשי. הטופס הראשי מכיל מידע כללי אודות
אובייקט (כגון האגמנה או שס של מטופל). פרט היררכי קשור אחד או יותר (כגון שורות
פריט בהזמנה או ביקורי המטופל) מופיע בטופס משנה אחד או יותר של הטופס
הראשי. שדה משותף אחד לפחות חייב לקשור יחדיו את מקור הרשומות של הטופס
הראשי וכל אחד מטפסי המשנה. השדה המשותף מאפשר לטופס המשנה להציג רק את
הרשומות שתואמות לרשומה הנוכחית בטופס הראשי. כשהמשתמש עובר לרשומה
חדשה בטופס הראשי, טופס המשנה מציג קבוצת רשומות חדשה שקשורה בצורה
ייחודית לרשומה החדשה בטופס הראשי.
פרק 5: בניית ממשק משתמש באמצעות טפסים 279
תרשיס 5.8 מציג מסך ראשי, 065זסץ, המכיל טופס משנה מוטבע ששמו
5 וסזסעוא. הטופס 0675זסץא מקשר את השאילתה 0675זסץא אל השאילתה
5 בהתאס לשדה המשותף 0706710160 (שאילתות אלו וטבלאות הרקע
שלהן לקוחות ממסד הנתוניס 6חואוחז+זסא). בעת יצירת הטופס הראשי וטופס המשנה,
לא יצרתי קשרי גומלין בין שתי השאילתות בחלון קשרי גומלין (5קוח5חסט8ּ|₪6) או על
ידי שימוש בגליונות נתוניס משנייסם (עיין בפרק 4 לקבלת מידע נוסף על גליונות נתוניס
משניים).
<1ם)] - | יו
17 סז וסוס
[ = 670601 הסח = 360050866 ה] 5001
06-18-98 ] 6 זסזס
0000007 ,6066 חסעחב6 6בח5ס!30ח] פוחבו! קוח
ה תקסןףי] 2617 פפשזטטמ קוחב
| פטזשטסטפוה] שו קוח5
07 וא חסוחָפת קוחפ
10 1 6 |00558 קוחפ
8 ץזחטוס= קותפ
חזס50 6815 זשםזכיעוי]
0
מטזץ5 5880וחה 11077
חוח56350 חטן63 5'חסזח3 81ת) 11077
5 0 |+?| | | ]| 4 | 0
0 ז [++| זו 30 ]| 4 ]4 0
תרשים 5.8: טופס המכיל טופס משנה
כדי ליצור טופס משנה, פתח את הטופס הראשי בתצוגת עיצוב, ודא שהלחצן אשפי
בקרה (28705) |סשח60) שבארגז הכלים (אסטוססד) לחוצ, ולאחר מכן גרור טבלה,
שאילתה או טופס מתוך חלון מסד הנתוניס ושחרר אותו בטופס הראשי. טופס המשנה
יוצג בתור פקד בטופס הראשי. כדי לסנכרן את הטופס הראשי עס טופס המשנה, עליך
להקצות שדה משותף אחד לפחות. בחר את מכולת טופס המשנה והגדר את
המאפייניס קישור שדות צאצא (0וח6 אחו1) וקישור שדות מראשי (ז0ז135/ %חו1) בתור
השדה המשותף. בשאילתות 0675ז1/0! ו-5ו689ז6וסץו, השדה המשותף הוא
סזזסוס.
טופס ראשי יכול להכיל טפסי משנה רביס. הדרישה היחידה היא שמקור הרשומות של
כל טופס משנה יחלוק שדה משותף אחד לפחות עס מקור הרשומות של הטופס
הראשי. לדוגמה, אס המסך הראשי שבתרשים 5.8 היה מכיל את השדה סזספץסוקוחם,
הטופס היה יכול לכלול טופס משנה נוסף המבוסס על הטבלה 665ץסומוחש.
0 א 2000 06055
אס אתה מגדיר קשרי גומלין בין טבלאות ושאילתות בחלון קשרי הגומלין, או על ידי
שימוש במאפייני גיליון משני, באפשרותך ליצור מסך ראשי עם טופס משנה מוטבע
באותה קלות בה תיצור טופס מאוגד פשוט. בחלון מסד נתונים, בחר את הטבלה או
את השאילתה שעליה יתבסס הטופס הראשי, ולאחר מכן לח על הלחצן אובייקט
חדש: טופס אוטומטלי (זס-סזט:00[600 צוסא). אשף הטפסיס האוטומטיים יבנה
טופס ראשי ובו טופס משנה מוטבע. טופס המשנה מנצל את המידע שבחלונות קשרי
הגומלין או בגיליון הנתוניס המשני. באפשרותך לגרור טבלאות, שאילתות או טפסיס
נוספים באופןו ידני אל הטופס הראשי בתצוגת העיצוב כדי ליצור טפסי משנה נוספים.
בדיקת מידע והצגת נתונים
טופס בדיקת מידע דומה לשאילתת פרמטר בעלת ממשק קדמי מותאם אישית; הטופס
אוסף קלט שמפעיל שאילתה. בעת שימוש בטפסים וב-84/, באפשרותך לפעול בצורה
גמישה בכל הנוגע לאופן איסוף המידע וגם באשר לסוג המידע שתוכל להתזיר
למשתמשי חיישום.
יצירת טופס בדיקת מידע
הדרך הקלה ביותר למימוש טופס שמבצע בדיקת מידע היא לתת למשתמש להקליד
את פרטי בדיקת המידע בתיבת טקסט וללחוץ על לחצן כדי להתחיל בחיפוש. תיבת
הטקסט חייבת להיות בלתי מאוגדת, מכיון שהיא אינה מכניסה מידע למסד הנתונים;
כל שהיא עושה הוא לקבל נתוני חיפוש מהמשתמש. המידע שבתיבת הטקסט ינוצל על
ידי שאילתה למציאת המידע המבוקש.
תרשים 5.9 מציג טופס שפותח את השאילתה א680א6 זוחסזץזסספוהזכף כשהמשתמש
מקליד קוד זיהוי בתיבת הטקסט ולוחי על הלחצן קט 16 100%. השאילתה מוצאת את
הכמות הכוללת שהוזמנה מכל מוצר שקנה הלקותח.
<ן) = ה ד ה ו רו ו ם-
ץרו ו |בסכס שרט רו סט כ( 1% 00% | 66% סחה ]1 זר 0ס5 6 3 זבסה=
רס ו שרט עים לרוס וסט 65 זכ 680 01 60 וסוס
5 זפ :10 6560067
| סט לו 1.00%
פרק 5: בניית ממשק משתמש באמצעות טפסים 281
5 אמטה | מאלטעמאקחקה --|-
]35 ו ₪ |+
6308 ה ו ו
מז 8880וח 530060 פבחטוטזפם ||
פָחוח58850 הטן[03 5'ח0זח3/ 681 סטבחטומזפם | = |
זט 530087 5בחטואָזפם ||
> 530087 פבחטואָזפם ||
וד 530087 פבחטואָזפם ₪
סע 530087 פבחטואָזפם ||
חסזוטו סו[ 530087 פבחטואזפם
7 0 [+:1ו] משות ]| . ₪ 0
תרשים 5.9: טופס שמבצע בדיקת מידע פשוטה
תרשים 5.10 מציג את השאילתה א80א8 זוחסזוץזסזפוהזוכף בתצוגת עיצוב. שים לב כי
מדובר בשאילתה פשוטה שמסכמת את השדות 08008 בטבלה 2619158 ז06זס עבור כל
אחד מהמוצריס שהלקוח רכש (הפסוקית =אפח/ בעמודה האחרונה מגבילה את
השאילתה לשורות שהשדה 60וח0ס5%ט6 שלהן מתאיס לערך שבתיבת הטקסט של
הטופס).
|<1ם)- | עזסט 0 561601 : א80)א6 ז[חוסזועז0ו15]זק בק
01061 5
הבוחה וס > 500
06 0/6610!קוחם
= 053007066 [= 6ובסוסטזס
50 חבט :עסחה סד טסו בוחה הס = | +
55 וסוס 5 זסטזס | 5 | 1
8 סז
תרשים 5.10: השאילתה א680 דוחסזץזס9%והזקס בתצוגת עיצוב
האלמנט האחרון בטופס הוא שגרת אירוע %88 המופעלת כשהמשתמש לוחצ
על לחצן 05 1 1006. השיגרה כוללת שורה יחידה הפותחת את השאילתה
60% רחס ס15%רוקט :
()66ו61 קטאסס 601 50 ס6אהּעוזוק
"600% סז סוכ" סט הסקס. וחספ
סט5 0ח=
2 הא 2000 06055
שימוש בתיבה משולבת עבור קלט משתמש
הטופס שבתרשיס 5.11 מעוצב טוב יותר מזה שתרשיס 5.9. במקוס לאלצ את
המשתמש לנחש את קוד זיהוי הלקוח, הוא מאפשר לו לבחור את הלקוח מתוך תיבה
משולבת. שגרת האירוע 00866 6 של התיבה המשולבת פותחת את השאילתה
80%זא6 דוחסז/ז560וזקם שמשתמשת בנתוני הלקוח שבחר המשתמש. לכן, לחצן
הפקודה אינו נחוצ יותר.
|<וםן-. ו ו
זכ 686 01 60 וס טרפו |בסכס שר סח כ ז6רחכס05 61 8 506661
רחס וס שר עים סרוסוסם
: 6החב1] ששחב קוחס-)
6 45|
5 עץ 603005 זבקוח= כוווןטוז בחה
טסה ד סתפזפוי] סוחסלחגה
חזסו] 6ח: טחנוסזם
80א300ח5 5בחשוהַזס₪
ח2]|>360556 588 זסטבום
5 66 6זסכ |הבחסום
5 35בוחחס > 61030
תרשים 5.11: עיצוב משופר של טופס בדיקת מידע
הערה:
טפסי בדיקת מידע המכילים תיבה משולבת עלולים לפגוע בביצועים ככל
שעולה מספר פריטי בדיקת המידע. במצב זה עומדות לרשותך שתי אפשרויות.
הראשונה, לחזור אל טופס בדיקת המידע בעל תיבת הטקסט שתואר לעיל. לחילופין,
תוכל ליצור מערכת מרובדת שתאפשר למשתמשים לבחור אפשרויות שיגבילו את
טווח הפריטים הזמינים בתיבה המשולבת.
כדי להעניק תפקודיות זו לפקד תיבה משולבת, פעל כך:
1. הגדר את המאפיין סוג מקור שורה (6קץד 66זט50 עוסם) של הפקד בתור
טבלה/שאילתה (ץז6ט0/וטגּד) (ברירת המחדל).
2. הגדר את המאפיין מקור שורה (ש6זט0ס5 ווסף) של הפקד בתור מחרוות .501
שמחוירה את השדות המבוקשים (מחרוות 501 של הדוגמה היא ז60ם|55
וס ד605 |ואסח סזמשויס ד605).
פרק 5: בניית ממשק משתמש באמצעות טפסים | 283
3. תן למאפיין מונה עמודות חטס6 חוחט!ס0) של הפקד את הערך 2.
4. הגדר את רוחבי העמודות והפרד אותן בפסיקיס (הערך הראשון חייב לחיות 0).
אס תעדיף, אשף התיבות המשולבות יכול ליצור את הפקד עבורך. כל שעליך לעשות
הוא לוודא שלחצן אשפי בקרה (05ז28ו/ |סשח60) שבארגז הכלים (אסטוססז), במצב
לחוץ, ולאחר מכן הוסף את התיבה המשולבת לטופס. עקוב אחר הוראות האשף.
הצגת תוצאות בתיבת הודעה
הדוגמאות שהיצגנו לוקות בשתי חולשות. ראשית, הן מעבירות ערכיס לשאילתות וגס
חושפות ערכיס הלקוחיס משאילתות. משמעות הדבר, שמשתמשים עלולים לשבש
בשוגג את עיצוב השאילתה. שנית, משתמש יכול גס לשנות את הנתוניס שברקע
השאילתה.
הטופס המדגמי לבדיקת מידע שבחלקו העליון של תרשים 5.12 מתגבר על שני
החסרונות הללו על ידי שימוש ב-84/ וב- 001606 08% א6ע860 (ססם). טופס הקלט
דומה במראהו ובתפקודו לטופס שבתרשיס 5.11. קבוצות ההחזרה של השאילתות
שפותחיסם שני הטפסים זהות, אך הן מוצגות בדרכיס שונות. הדוגמה שבתרשים 5.12
מציגה את קבוצת ההחזרה בתיבות הודעה במקוס בחלון שאילתה בתצוגת גיליון
נתונים (הדוגמה עושה שימוש במספר תיבות הודעה הדרוש כדי להציג את קבוצת
ההתחזרה שלה). באופן וה נתוני הרקע מוגניס מפני שיבוש שלא במתכוון על ידי
המשתמש.
<1ם) -. ד ו יבד ו ו ו -
וסוכ ר!6860 )0 60זס טרופ ו ובס שר שחו כ ז6רחכס5 61 8 56/66
זסרחו 500 ₪ שר עפ זרוסטוספ
311 | :ורחב ]רוב חח >
4 הח 2000 466655
וול
0 , קטוזע 5 וחב , קספ 3ח5 5טחטופזס ם
5 ,4631 0730 ה0ז₪05 , קספ 3ח5 5בחגווטזס ם
5 ,וטו +זטפות6וחב-) , קס א 53 5תוו!םזס ם
5 ,31 ,ק50300%0 הגוז ם
1 ,300 , שס0אפ3ח5 5בחווםזס ם
6 ,615 486ו6זוז13]- , 5030080 5חגוםזס ם
2 ,חוח56350 חן 5'הסזחב. ]= , קסאפפ3ח5 פבתגווםזס ם
5 ,36| 06 616 , ק300%0ח5 הגוז ם
5 ,א ס!ו= , 5360 פבתוווםזס ם
2 ,9081ע680ז8|=] ,ק30%0ח5 גוז ם
8 ,35103:חב "] ב חבזבגוב) , סאפ 3ח5 5טחוווםזס ם
5 ,43|3003/ ב|גו3 , ספ 3ח5 5טחטוחזסם
0 ,הזב פורחחחו ב זה פוחגוג) , קספ פ3ח5 5בחגווסזס ם
2 , בזגו6] , 50300 5בחוגווזס ם
0 ,01!]86כ) סכ[ , קספ 53 5בחגוחזס ם
0 ,זפטוסת-) הח3!- בהובופח= 6% 5'אסב 1 , םס אפפ 3ח5 5טתגווםזס ם
5 ,גוסחס.א , 53000 5בחו|םז6 ם
1 ,וזססא!!3 366 ] ,503000 גוז ם
0 ,סוסב ] 8הסקז3 4350 , 53 פתוווםזס ם
5 ,36!וא3 4 , סא 53 5טחגווםזס ם
0 ,חוז6 365 4 +05ו-בזס1 , ספ 53 פבתוגווםזס ם
0 ,8וסחוחס 316 , קס30%0ח5 הגוז ם
2 ,/ס|שיב , ק3060ח5 פבתו!םזס ם
0 ,חסזוו4] ססו|ם. ,קס>פפבת5 0105 ₪ (1 |
אס 855306 זס!!סחב חן פזסוח 566 סז 08 אסוום)
0 %*20065 ]/050זו₪1 [ חוחוחוהּ זטסז
5 ,]וב הזוס 06ו6וסב , קספ 3ח5 5בתגווטזס ם
1 , זטופזפ)03| גובזסחסר!4 , קספ 3ח5 5בחגווטזס ם
5 ,זבועיב. בס , מס אפפ 53 5חוווסזט ם
0 ,זוה זזטוב 5 055|6 , קספב ח5 5טחוטזט ם
8 ,306!בחזזב | 5'עפהטס! זו5 ,סאפ 3ח5 פבתגווםזס ם
8 ,51006 51661606 , קסאפפ3 5 5בחוגווםזס ם
5 ,219010055 0]316סם]- 6חזוזה6 [ , קספ 53 הגוז ם
0 ,זוואה זם1051 זסטהוזגוח ד , אפפ 53 5טחוםזס ם
6 ,וס 1 , םס 3ח5 5חווחזס ם
6 ,שזסו!זוס 1 , סאפ 3ח5 5טחוווםזס ם
8 ,6016-501680/ , פס 30 ח5 5בחוווםזס ם
1 ,6066 233056 , מס אפפ 53 5טחוטזס ם
2 ,351185 /] 76 , 503000 5ב הוגוםזס ם (. |
תרשים 5.12: הטופס הראשון מציג את קבוצת התוצאות שלו בתיבות הודעה כך
שהמשתמשים יכולים להציג את קבוצת התוצאות, אך לא לשנות נתוני הרקע שלה
פרק 5: בניית ממשק משתמש באמצעות טפסים | 285
השיגרה שלפניך מופעלת בתגובה לאירוע 00806 01 של התיבה המשולבת בתרשים
2. השיגרה מבצעת פקודה בהתבסס על שאילתה, כדי לפתח קבוצת החזרה. לאחר
מכן היא מקצה את קבוצת ההתזרה מהפקודה אל ערכת רשומות ומציגה את ערכת
הרשומות באמצעות תיבת הודעה אחת או יותר.
()67(008%6א1ה קטאסס 6001 500 ס6אהּעווק
|סח0ס6 ₪5 601 חחוס
סח וח 60 5 601 וחוס
59 5 571 ,06070560 ₪5 561 חזוס
.(6000 600710080 0+ 61676006] 66% '
("קטאסס ₪6.00007015)"6001] = 601 560
.חר 60 6ח061 80 076876 '
.60 ז0ס? ח501 .5001 חו 6ט|אצ אספסטו 60 56
בוו 5.60 סכ ג צוס = 601 56%
01 הסו\
660 חח 66060.6 = 6600 תה 666
8" ,36 ו 5.00 050 56|666" = 6% הו 60.
8 " ,6ח63ו0סזק.0665סזק"
₪ " ש חט0!סס ד 35 (שסתהטס.[5!ו6%9כ ז06זס])וחט5"
6 " 00675 חוס? ז6חח1 0675 0ש5ט6)) הוס? זסחח1 665טססזק וחסז-"
8 " (10ז06ל070675.605 = 6₪5%065.005006710 צזס"
= 8 " אס [88ו9ז6 ז0706] חהוסנ זסהחז"
8 " (6%915[.070610כ ז06זס] = 06770ז5.0זססזס"
= 6 " סשס6טססזק.[5וו6%9כ ז0706] = סטס6טססזק.66טססזק אס"
8 "" 8 61./8]06 8 "' = 06710 560675.005%0ט6 6זסח/"
";6 0 סזק. 0065 ,6הוהאץ חקו .6050065 ץצ קנוסחס"
0% = 06ץ ו 60.
6
הז%ו 0חם=
.5018 .5001 וחסז] 56% חזס6ז חס 28560 760070566 076866 '
שא = 561 56%
6 000 301 66560 30006 , ,601 ה561.006ז
(65)א20 7655806 ח! /0150|8 %0 56% חזס6ז חסטסזח+ קססן'
.5 "0 87800075ו!6 925 01 10665 חו'
501.50 וטח ספ
(6]05)2. 561 8 " ," 86 (16105)1-.75%1 8 " ," 8 (5%1.₪16!05)0] 8 5071 = 501
]זט 8 5771 = 5071
6 הח 2000 406655
חסחד 925 < (571)ח6 | +1
"00% 655806 ז6ח0%חה חן סרח 566 0 06 6166" 8 1 הסטע 8 501 = 5071
"2000 66655 1670508 הרותה זפסזק" ,הסוסהוחזס)חה1פט ,501 15400
1
+ 0חם
+אס םסוא 561
קסס |
= ,הסהוזס)ח1פט ,5071 א00 150
"2000 266655 11670500 חוווחהוטסזק"
סט 0ח=
בשיגרה זו, לא יכולתי לנצל את קוד 501 מחלון שאילתה בתצוגת עיצוב, מכיון
שמחרוזת 501 של אובייקט מסוג חַחאחוח0ס6 אינה תומכת בשדות בדיקת מידע. לכן,
הוספתי את הטבלה 66ט00זק לעיצוב השאילתה כך שיכולתי לדווח על כל שס של
מוצר בקבוצת ההתחזרה במקוס על קוד המוצר בלבד, כפי שהגיע מהטבלה ]0706
65. הטבלה הנוספת מסבכת את לוגיקת הצירוף של השאילתה (עיין בפרק 4
במבוא לתחביר של משפטי 501).
לולאת 00 עוברת בצורה סדרתית על ערכת הרשומות וכותבת את תכניה במחרוזת.
בסוף כל רשומה, היא מכניסה תו החזרת גררה (0₪) והזנת שורה ₪)6. אס אורך
המחרוזת עולה על 925 תווים, השיגרה מכניסה שורה ריקה והוראה להצגת המשך
היסטוריית המכירות של הלקוח בקטע ההודעה הבא. תיבת הודעה יכולה להכיל קצת
יותר מ-1,000 תוויס (השיגרה א%65/055900 במסד הנתוניס המדגמי בפרק זה מסייעת
לקבוע את מספר התוויס המקסימלי שתיבת הודעה יכולה להכיל; כל אחת מ-19
השורות העליונות כוללת שני תוויס שאינס מודפסים). הגבלת הוספת תוויס לתיבת
ההודעה הנוכחית ל-925 תוויס, מאפשרת לתיבה להתמלא מבלי לקצצ תו כלשהו.
הצגת מידע דינמית
באפשרותך להציג נתונים, כגון רשומה, בטופס, ואף לעצב טופס שיאפשר למשתמשים
להציג את הרשומה, אך לא לערוך אותה. תרשים 5.13 מציג זוג טפסים שמאפשריס
יחד למשתמש לעיין ברשומת לקות. המשתמש בוחר לקות מתוך הטופס
קטאסס | וח0ס5%ותז? ולוחץ על הלחצן וחזס ה1 ז6וה560ט6 שוסח5 כדי לפתוח את הטופס
5 ס, אשר מציג את רשומת הלקוח שנבחר (המאפיינים אפשר עריכה (וסו|ג
65), אפשר מחיקות (5ח6!600כ צוסו|ה) ואפשר תוספות (5ח00ו₪00 צוסו|ה) מקבליס
את הערך לא, ולכן המשתמש מנוע מלשנות את הנתוניס). המשתמש יכול ללחוצ על
הלתצן ה זס"] קטסס ] זו 0ש605 סד חז₪6 כדי להעביר את השליטה חזרה אל טופס
בדיקת המידע ההתחלתי. באפשרותו גם להפעיל בדיקת מידע נוספת, או לצאת
מהיישוס דרך הטופס הנוכתי.
פרק 5: בניית ממשק משתמש באמצעות טפסים | 287
חזזס-] : קטטאסס |זסהוסז5נו-)חוז]
אסם ססח 60 ₪6 חן זת 60550 8 +56|66
]8 חזזס] 8 הסקס 0 ה זס-] ח] זסח 61500 אוסח5 >6ו61 סח
6500 [56!66100 6 זס) 6זס66ז ₪6 1501855
| - 5 65 שזסם (06חסו] הברה קחזס >
| חזס=] כ סט 1 0550067 056|)
<1) = וסוט 83
החסה ז6ר00ל9ו ץ| הס-₪680
בו 0 56061
0000000007 ₪ שק שנחסם] 6ב עההקוחס-)
ו 0000 אשם6 6 6ף6060ז=ן שבי 60536
77 הבחב! הַחמשאומו] 08
ה 000000000 66שם695 566וק ,24] 5
0זנו0פ5₪35] וס
חסוטשת
0 8 |058ק
0 הסשת
קטאסס.] 087ס:5-) 66חבז=] חס
הת 0 6חסחם
2 אב
תרשים 5.13: טפסים אלה מאפשרים למשתמש לבחור ולהציג רשומה של הלקוח
שגרת האירוע הפשוטה והאלגנטית שלפניך היא הקוד שמאחורי הלחצן
הס חן 605% עשסח5.
()6|166 ז6וח5%0 50/0 60 50 6זהטוזק
קז דר 50/6500 0 ד60 זסזזם הס
509 5 501150 ,8חו50 5 6ט|50/3 חזוס
002.86 16.007] = 50/8|06
= ,"605600675וח1" וחזס- ה0.06ה6ספ
"" 8 8507/8106 "' = 10ז6וח65%0", ,|הוחזסוסהּ
אק ד 500 סח
סטפ זואם
8 הח 2000 406655
:קז ד 500 סח
חסחד 94 = זססוחטא.זזם +[
= 8 " אסם 0000 06 חן 6500067 3 561666" 150%
,".החזס? ז6ר6₪5%0 6+ השקס 50 חַחוקח306 76וסו6ס"
"2000 66655 0500זסו1] פחורחרח הטסוק" , הסוטהוחה !סא סע
6
8 " 680560" .8 זססוחטא.זזם 8 " :זססרתטח זסזזם" = 50750
הססק 656כ.זום 8 + !טע 8 ":5! הססק 06567 165 .6זטווב?"
"2000 66655( 0506זסו] פחורחחחה סק" , הסוטהוחה !סא פע ,507150 אס 15
+ 0חם
זא רת 505% 6הה65
50 06ח=
יצירת תרשים מקבוצות משנה של נתונים
האובייקט 60871 של 2000 ח80ז6 670506 מאפשר ליצור תרשימיס בעלי מראה
מקצועי, בצורה קלה ופשוטה. האובייקט, המשולב בטופס כפקד אובייקט בלתי
מאוגד, יכול להיות מאוגד לטבלאות ושאילתות של 866655. באפשרותך לבחור מתוך
מיגוון רחב של סוגי תרשימים ואפשרויות עיצוב (לחצ לחיצה כפולה על האובייקט
בטופס בתצוגת העיצוב כדי לחשוף את התפריט המותאס אישית של האובייקט.
כשתסייס להשתמש בתפריט האובייקט זַּהּח6, לח על הטופס מחוץ לאובייקט כדי
לשחזר את תפריט עיצוב הטפסים הרגיל של 160655).
יצירת תרשים באמצעות אשף הטפסים
באפשרותך להוסיף אובייקט א8ח6 באופן ידני, אך קל יותר לעשות ואת בעזרת אשף
התרשימים. כל שעליך לעשות הוא לפעול כך:
1. לח על האובייקט טפסים (פוחזס") בחלון מסד נתונים (89856ז08) ולאחר מכן
לח על חדש (שוסא).
2. בחר את אשף התרשימים (2870!/ +ו8ח6) ואת הטבלה או השאילתה עליה ברצונך
לבסס את התרשים. לאחר מכן לחצ על אישוד.
בחר את השדות שיופיעו בגיליון נתוני התרשים ולאחר מכן לחץ על הבא (0א6א).
בחר את סוג התרשים ולח על הבא.
גרור ושחרר את לחצני השדה המבוקשיס אל התרשים ולת על הבא.
₪ = ₪ ש
בחר באפשרות לשנות עיצוב של טופס או של תרשלם (פחד 01 6518 שד עוסו₪
+ 6חד זז וחזס=) ולת על סיוס(ח5וחות).
פרק 5: בניית ממשק משתמש באמצעות טפסים 289
באפשרותך להוסיף פונקציות צבירה ועיצוב על ידי שינוי מחרוזת 501 במאפיין מקור
שורה (66זט50 צוסם) של פקד האובייקט הבלתי מאוגד המכיל את האובייקט 608%
(האשף יוצר עבורך משפט זה).
הצגת התרשים באמצעות קוד
תרשים 5.14 מציג שני טפסיס המאפשריס למשתמש להתוות את המכירות בחודש
שנבחר. הטופס העליון מאפשר למשתמש לבחור שנה כלשהי מתוך הטבלה 5ז08ז0.
האירוע 0806ק 801 של התיבה המשולבת פותח את הטופס התחתון המנצל את
האובייקט 6087 של 2000 חק8זס 11070504 כדי להציג את סך כל המכירות לפי
חודשיס בשנה שנבחרה.
|<11) - | הזז -] : זב63 והוז 83
חוחסחז עכ 58!65 +זהח6 0) וחהצו וסץ ה6וחצו זס] זה68ץ שר <6ו
|<11) - | הזז ] : זזבּת:)חוז) 83
רחסו עֶ 98|65
0
7" וו
7 זקת
7 הו
70 2500 2000 1500 1000 500
עו
זפחלסחה או
זב
תרשים 5.14: טפסים אלה מאפשרים למשתמש להציג נתוני מכירות חודשיים בשנה
שנבחרה
0 הח 2000 406655
התרשיס שבתרשיסם 5.14 מבוסס על שאילתה שמאחזרת את כל ההזמנות של השנה
שצוינה. השאילתה מתרגמת כל תאריך הזמנה לאחד בחודש (מבלי לשנות את נתוני
הרקע). פעולה זו מאפשרת לצבור את כמות המכירות לפי חודש בצורה קלה ופשוטה,
ועל ידי כך מאפשרת גס להתוות את המכירות לפי חודש (אשף התרשימים מסכס
אוטומטית את כמות המכירות לפי חודש במקור רשומות כמו זה הנוכתי).
שלוש שגרות האירוע שלפניך שולטות באינטראקציה בין שני טפסים. השיגרה
6 זז 60016 טוענת את הטופס עס ציור התרשים וממזערת את הטופס
שהמשתמש בוחר בו את השנה (עליך למזער את הטופס ולא לסגור אותו, מכיון
ששאילתת התרשיס קובעת את השנה שבחר המשתמש באמצעות התיבה המשולבת
של הטופס הראשון).
()67(008%6א הס ץא6וק 600 500 ס6אהעוזוק
6ורחוחו. וחספ
"+זה הוח" וחזס- ה0.06ה6סכ
סט 0ח=
()6|166 600!056 500 סזהטוזק
"זה /א6וק וז" ,רחזס-36 6|056. ספ
סכ
50 06ח=
()6|166 ]63 א6וק 6 0 50 6זפטוזק
"זה א6וקוחז?" וחזס- ה60.06סכ
"+והחה6חז)" ,וחזס-86 6|056. ספ
סט5 0חם
טיפול בקבצים באמצעות 84
בסעיף וה נתאר טכניקות אחדות למיכון השימוש בטפסים. נמחיש כיצד ממספריס
טפסיס ופקדים, כיצד מציגיס ומסתירים טפסיס באמצעות קוד וגסם שיטות להצגת
טופס בפרויקט אחר.
מספור טפסים ופקדים
האוסף פחזס=||, ששייך לאובייקט 6[סזקזח6זוט6, מכיל פריט לכל טופס בפרויקט.
יישוס יכול למספר את האובייקטיס מסוג 46665500[66 באוסף פוחזס=!| כדי למצוא
את כל הטפסים בפרויקט. המאפייניס 86 ו-15|08060 של האובייקט 0665500[1606
נוחיסם במיוחד לשימוש: המאפיין 86 מייצג את השס של כל טופס בפרויקט,
והמאפיין 15108060 מציין אס הטופס פתות.
פרק 5: בניית ממשק משתמש באמצעות טפסים 291
ו 1
השיגרה שלפניך מנצלת את המאפיין +חטס6 של האוסף פוחזס=!|א כדי לקבוע את מספר
הטפסיס שבפרויקט הנוכחי. לאחר מכן היא מדפיסה את השס ואת מצב הטעינה של
כל טופס בפרויקט (האוסף פוחזס=!| מאורגן כך שאינדקס החבר הראשון שלו הוא 0;
לכן, הלולאה זס=] עוברת על טפסי הפרויקט החל ב-0 ועד אחד לפני אחרון).
()פוחזס=|!|56! 1 5
זז 5 61חו וחוס
זז 06 חן 5זזס? +0 זססההטח 6חש %חוזק '
%חטס5.6וחזס= || .66%[סזקח6זט6 זחוזק. פטטסס
+חוזק. פטטסס
6ח+ חן וחזס1 6868 866 זסרתטחם '
1 - %הט60.פוזס-]||.66%[סזק+חה6זזט6 סד 0 = 1שחו זס=
6ח ה . ( 61| )156 פרתזס= ||/.66%[סזק%ה6טוש זחוזק. פטטסס
0 ]. ( 61| )166 5רחזס= ||/.66%[סזק%ה6זטוש זחוזק. פטטסס
+חוזק. פטטסס
1צחו )אסא
סט5 0חם
האוסף פוחזס=ת!|4 מכיל את קבוצת כל הטפסים הפתותחיסם בפרויקט והאוסף 5!|סשחס6
מכיל את קבוצת פקדי הטופס. היישומים שתיצור יכוליס לנצל אוספים אלה כדי
למצוא טופס מוגדר ופקד בודד בטופס זה.
השיגרה שלפניך ממספרת את כל הטפסים הפתוחים בפרויקט. היא מציגה את
הפקדים של כל טופס פתוח לפי שם ולפי סוג. המאפיין 6מץדוסחס6 של האובייקט
(₪0חס6 מציין את סוג הפקד. באפשרותך להשתמש במילת המפתח )60סץד בדרך
דומה.
()5חזס- 06 1500701500 1 50
[0ח60 ₪5 601 ,וחזס- 5 1חז? חחוס
.5ז0? ה6כס ||8 866זסרתטחם ד
5זס- ח1 1וחז1 ה86ם זס=
ס6וחהּ). 1 רז חוזק. פטס
.וחזס+ ה6קס 5060116 8 חס |ס 60 680 806 סוחס '
1.5 ה[ 601 ₪86 זס=
8 "," א 6ה3א.601 8 "|" סחוזק.פטטסס
("!306! %סח" ,"]806!" ,100 = 6סץדוס%חה60₪1.60)זז
1 אסא
1חז 6%
50 0ח=
שיס לב שהשיגרה מפענחת את ערך המאפין 6סץזוסזחס6. כשערך וה הוא 100, הפקד
הוא תווית. בתהליך הפענוח המעשי סביר יותר שתשתמש במשפט 6856 566% במקום
בפונקציה )1 11601866 שבדוגמה הקודמת. הפונקציה 1 806ו60וחוח1, לעומת ואת,
פועלת היטב בפענוח ערך יחיד (באפשרותך לנצל את +56ש0ז8 02[160% (סורק
האובייקטיס) כדי למצוא את ערכי 6סץדוסשחס6).
2 הח 2000 406655
הסתרה והצגה של טפסים
באפשרותך להשתמש ב-84/ ובאוסף פחחס=!|| יחד עס אובייקטיס נוספים כדי
להסתיר את הטפסים בחלון מסד הנתוניס. אס תהפוך את הטופס לבלתי נראה גס
ביישוס, המשתמש עלול לחשוב שסילקת את הטופס לחלוטין. טפסים מוסתרים
יכולים עדיין לחשוף ערכיס לשימוש באמצעות אובייקטיס אחרים ביישוס.
זוג השגרות שלפניך מסתיר ומבטל את הסתרת טופס של 66055 :
(8חו7ז5 5 6ההּוחז1)וחזס- 3106 50
.1006 26 ח08ס %| %8% 50 הסשקס 5! שו ₪1 הזזס? 01056 '
הסח ד 6ט ד = 03060 |15. (6רחהּרחז+)5רחזס= || 66%[סק+חה6זוט6 +[
6ח הוחו ,וח'זס-36 6|056. חספ
+ 0
הווח וסח5 0% 60 6חה ע+וסקסז ה006ו 5'חזס 56% '
.וססחוש 28580856 חן 6005[טס '
6טז ד ,6רחה ות ,והזס-30 6זטס 6 566100. הס 8סו!כ סה
6 ,"001600 ה11006 צוסח5" ח5600000. הסספסוומסה
סט5 0חם
(8ח571 5 6וחהּ )וס 6 0והח 50
.הז0ס+ ה6כס 0חה 8|56= 0+ ע+וסקסזכן הוח 5'וחזס 56% ,ה06סוח 15 החזס+ זך '
הסח ד 6טזד = (6וה ות , והזס-86 )76 ה0661006. הסספסו!ססה +
6 ,רהוז ,והזס-36 6לטס ו 6 566100. הס הסוסה
6ח האר וחזס- ה6כ0. 0ח6סכ
+ 0חם
סט5 0ח=
השיטה 066ט0ו4077ח56011006 מסמנת או מנקה את המאפיין (ח41006) מחלון מסד
הנתונים, של אובייקטי מסד נתונים, כגון טפסיס, דוחות ושאילתות. שיטה זו קולטת
שני ארגומנטים, אובייקט מסוג 86065500[606 וארגומנט בוליאני שמציין אס יש
להסתיר את האובייקט. קריאה לשיטה באמצעות אובייקט ובצירוף הערך שטזד והה
לקביעת המאפיין מוסתר (ח006ו) של האובייקט בחלון מסד הנתוניס.
השיטה 00066ח560711006 לבדה רק מעמעמת את האובייקט; המשתמשים יכוליס
עדייו לבחור אותו ולהשתמש בו. כדי להציג שאובייקטיס מוסתרים יהיו בלתי נראיס
למשתמשים, בחר את אפשרולות (5חסטקס) מתפריט כלים (100!5), לחצ על אובייקטים
מוסתרים (00[6609 ח006ו3) ולאחר מכן לת על אישוד.
בטרס תפעיל את השיטה 6זטפו07ח006ו5617, עליך לבדוק את המאפיין 15108060 של
האובייקט 46665500[60. אס האובייקט טעון, עליך לסגור אותו בטרס תנסה להפעיל
את 06טפ00771ח006ו5617 ; קריאה לשיטה כשהאובייקט פתוח גורמת לשגיאה.
פרק 5: בניית ממשק משתמש באמצעות טפסים 293
ו 1
מספור טפסים בפרויקט אחר
8 אינו מגביל לטיפול באובייקטיס של מסד נתוניס בפרויקט הנוכחי בלבד. לדוגמה,
באפשרותך לבדוק קיוס של טפסיס ביישוס אחר של 860655. אחד השלבים התיונייס
בתהליך וה הוא להשוות את המאפיין 6וחּא (שס) של כל חברי האוסף פחזס;ו|ה לשס
טופס היעד. קיימת תחבולה נוספת שעליך ללמוד: פותחים מופע חדש של טופס
חסטהסו!כק של 860655 כשהוא כולל את מסד נתוני היעד ולאחר מכן משתמשיס
בפרויקט הנוכחי של מופע וה בתור המקור עבור האוסף פוחחזס=!|4. שיפור עדין וה
מאפשר לטפל באובייקטי מסד נתוניס השייכיס לקובצ מסד נתוניס אחר.
שתי השגרות שלפניך מממשות את הרעיון באמצעות 84/. השיגרה זס]אסס | דוחזוס=
מגדירה את נתיב מסד הנתוניסם אל קוב מסד הנתוניס האחר וקולטת את השס של
טופס היעד. השיגרה השנייה, 08ח01פואשוחזס", מחפשת טופס יעד. באפשרותך לקרוא
לטופס השני מתוך הטופס הראשון.
()זס אסס !0 דוחזס= 5
9חו5₪ 5 50708 חזוס
58 5 6והּ\וזוס-507 וחזוס
.6 סחוחוצשולזס! 6 חן 5וחזס+ זס+ 56876 '
"סח ו חוצח+ז סא 65| 58 7166 10166 16050 65!ו= ותהזפסזק:6" = 508
₪56 6 סז זס ה56876 60 הזס] 6ח% 01 6החהח %6 06% '
= ," :107 568700 60 וחזס? 6ח% 01 6וחהח 6+ זס+ח=")א0סס+טקח1 = שאו וס- 50
("2000 60655/ 1670508 חור ותהזטסזק"
.5 והחז0? 6+ ז6ה6%ח/צ 666% 0 08 ח5051ואם ו זס= ||08 '
6וחהּ ו זס- 507 ,5008 8כח5%51ואם ותיוס-
50 6ח=
(0חוז50 5 ס6וחהּאותזס- 507 ,8חו50 45 08 08)507ח501ואםותזס= סט5
זז 5 61חו , הס 63!|קק .66655 5 60055/מק3 הזוס
ח0ו680ו!ק 406655 167050 60 61676006 חזטסק '
חס ה6ו|ק .66655 /וס] = 600055כק3 56%
ח680ו!0ק3 ז06ז0 06 חן 08%80856 8 חסמס '
58 608680856 חק 66655.0 קסבּ
.5 10 6ץ זסת6% הצ 066% '
(1 - +הטוס6.פוחזס=]|.0[66%ס קזח 6 66655 קקה) סד 0 = 1טחו זס=
| 86 . (%1חו)רח166. 5רחזס= || 0[66% קת 66 . 66655 כקבּ) +
הסח ד (סההּ\ותזס- 50 =
= 8 570 8 " 6 חו 681565 ".8 6ההּ\וזס- 50 .8 " הזס-" ₪150
"2000 06655( 5016סז6ו!] פחווחותהּזססזק" ,הסטאוזס+חה1סע ".0850356 "
ואםותזס=] 3070
+ 0חם
1חו %אס)]
4 ה 2000 406655
0% 6065 חס 8% +זס0ק6ק ד
= " 6 ח! 615% 0%ח 0065 ".8 6חזהאוזס- 50 8 " הזזסת" א0סף5!₪
".08580856 " .8 5028 8
.ח0ו630ו1קק8 460655 ז06ז0 0|056 '
:א 155אם תוס
6 66655.0056 קה
ָחוחזס] = 66655כק4 56%
סט 0ח=
השיגרה הראשונה נותנת ל-508 ערך טיפוסי של נתיב אל מסד הנתוניס סחושוחזזסו.
אס קייס עותק של 6חואוחזזסא במקוס אחר כלשהו, עליך לעדכן את הנתיב. פונקציה
מסוג אספזטוקח1 מנחה את המשתמש להזין את שס הטופס שיש לחפש, ולאחר מכן
השיגרה הראשונה קוראת לשיגרה השנייה.
השיגרה השנייה קובעת ופותחת הפניה אל המופע החדש של היישוס של 460655 ולאחר
מכן מגיעה ללולאה שבודקת אס טופס כלשהו במסד הנתונים החדש תואס לשס טופס
היעד. השיגרה מדווחת אס מצאה את טופס היעד ומשחררת את המשאביס שהוקצו
למסד הנתונים החדש לפני חזרתה.
שימוש במחלקות טופס
טופס כלשהו של 2000 866655 בעל מודול מאחוריו הוא מחלקת טופס; באפשרותך
ליצור מופעיס חדשיס של המחלקה בעזרת מילת המפתח צוסא בדיוק כפי שהיית נוהג
עס מחלקה כללית (גנרית) כלשהי של 466655. אחד היתרונות של מחלקות טופס הוא
שהן כוללות את כל השיטות ומאפייני הטופס התקניים וגס את התוספות המותאמות
אישית שַהמְפַתח מוסיף להן.
הצגת מאפיינים ושיטות של מחלקת טופס
באפשרותך להציג את המאפייניס והשיטות של מחלקות טופס באמצעות 0016
ז56ש0ז₪ (סורק האובייקטים). בחר בשס הפרויקט בתיבת הרשימה הנפתחת
ץְזהזס! 60%/1[סזק (פרויקט/ספריה) ובחר שס של מחלקת טופס כדי להציג את
המאפיינים והשיטות שלו.
סורק האובייקטיס שבתרשים 5.15 מציג קבוצת משנה של חברים במחלקה
0ז ופ חהססלטם תז) וחזסת. כזכור, טופס זה מנווט אל שלושה טפסיס אחריםס
באמצעות שגרות אירוע. שגרות האירוע הן שיטות מחלקה, כגון 616% 60060676.
הלחצנים, כגון 670607616, הס מאפייני מחלקה.
פרק 5: בניית ממשק משתמש באמצעות טפסים | 295
<1ם)- | זז )ס6ןפ 0 םש
|?+ | | | , | 4 |- 5
| |א [- ו
ז סח 6זואים ה סחטום רז הזז ז' זט זט טרפו 5 |
| סז סם ופ |= <0|5וָ> 9
₪ חסו31 ₪5 הסוב31 ד 5-015+0ווווה סוחס הזוס ₪
00 058! ₪9 הסה 15+0- קוו סוחס החזזסז ג
68 ₪5 ות החזס] ₪
4 זוע 0 60 הצוח הוזסז ₪
רפח 60 ₪5 06 )םוז הזזסז 4
וו וד סו | וול ₪
8 6 ₪5 +והו)ודז הזס] 4
ו 6זו 0/0071 %>: נקנואסס ואססטווס)וז1 זט 4%
|[ אסם|פז1ח0 = ₪5 ₪ וס וסטווס)ו הזז 44
וז ץע הס+ום 1 החזזס] 61355 6זבּוזק
5 01 זסמחוטו/]
תרשים 5.15: שיטות ומאפיינים של מחלקת טופס
טיפול במחלקות טופס
השיגרה שלפניך מפנה למודולי מחלקה ב- 2000 8466655. השיגרה כוללת כמה מקטעי
קוד שמטפלים במחלקת הטופס הבסיסית בדרכים מתוחכמות ומתקדמות יותר.
הטיפול במחלקות טופס ובמופעיס שלהן דומה לטיפול בעוגיות באמצעות חותך
עוגיות. מכשיר החיתוך הוא מחלקת הטופס והעוגיות הן מופעים שלו. שינוי בעוגיה
אינו משפיע על מכשיר החיתוך. לעומת זאת, שינוייס במכשיר החיתוך משפיעים על כל
העוגיות לאחר ביצוע השינוי.
()6500776|355+ 5
וחזזס=] 45 1וח וחוס
56% 6006 ל5זו= '
.1חז חון 6|855 וחזס 8 01 66ח5%8ח! 0+ 66ח6/676] 5865 '
.6 67676006 זס 61355 616061 )וש 66676066 ח08 '
5 לחז וס = 1ותז1 56%
"סס)" = הסוזק63. 1 וחז1
5.68 ס5% רדווס 50% 150
סו 63. 1 וז 80% 50
סח 1 וח ,וחזס-36 6|056. ספ
6 הח 2000 466655
560 6006 560000 '
.חח וחזס+ %|06180 5ח026 8006 3|6675 ץ||68וסה הרחהזטסזק '
.56| %0 60676006 56% 0% 0065 ד
.6 0 151016/ !560 0 06ח5%8ח! 5ז0|68 '
"סס)" = 615.682%07ו65607ח וחזס=]
6זך = 0!6ן15/. 65 65%0רח) וח'זוס-
סו 5.68 ס5%רחז וזס= אס 150
= ,0650 ,"?58066חו וחזס1 61056 60 לחפעט טסץ סס")א80 פוא זז
חס ך 65פץ = ("2000 266655 167050 הווה וחהזטסזק"
6 = 1510!6/. 65 5%0חח הזוס
+ 0
560 6006 6זוחד '
.וז 6855 1001 60 וסוט חףו65כ חו הזזס+ השס '
.6 עשסוע חף!65 01 ז86קחו 566 0+ צוסוע החזס= חו הסקס '
00ו86065 ,"ות 0ס5%ט6ותז)" וחזס- ה6קס0. 6וח6סס
"00" = ה0וז680. ("5זס ו 0ל65וחזז" )פרחזס=]
סו 65.08 5% טרח הזוס 50% 150
5 ,"61050016" ,רח'זס-36 6|056. ספ
6זך = 0!6ן15/. 65 65%0רח) וח'זוס-
סו 5.68 ס5% רהוס 150%
560 6006 ת+וטס- '
.סז ח0ו680 6|855 65%076ק ד
ו36065 ,"רת 0ס5%טוחז)" וחזסת ה6קס0. וחספ
5 לוח וחזס-] = 1ותז1 56%
"656005" = חה0 1.68 וח
5 ,6. 1 הח , רח'וס-36 6|056. חספ
6זך = 15106 65 65%0ח וח'וס=
הס 505.68 6+ וחזס=] אס 150
50 06ח=
מקטע הקוד הראשון מקצה מחלקת טופס להפניה. הוא יוצר מופע של המחלקה
5 60500ח וחזס= ומקצה אותו ל-₪1. באפשרותך לטפל במופע באמצעות שס
המחלקה או שסם ההפניה; התוצאות הוהות שמתקבלות משתי תיבות ההודעה
מאשרות זאת. שינוי המופע של מחלקת טופס אינו משנה את המחלקה עצמה.
אין צורך בהפניות כדי לציין או לשנות את המאפייניסם של מופעי מחלקת הטופס.
המקטע השני מבצע משימה וזהה למשימה הראשונה מבלי ליצור מצביע אל מחלקת
הטופס. מקטע וה כולל גם הנחיה ששואלת את המשתמש אם ברצונו לסגור את מופע
הטופס (מופע מתקייס לאורך חיי השיגרה שיוצרת אותו, אלא אס הקוד מסייס אותו
קודם לכן).
פרק 5: בניית ממשק משתמש באמצעות טפסים | 297
מקטע הקוד השלישי פותח את הטופס בתצוגת העיצוב ומטפל במאפייניו. בניגוד
למקרה בו משניס את מאפייני הטופס באמצעות קוד בתצוגת טופס (וחזסם), שינויי
מאפייניס שנערכו בתצוגת העיצוב ממשיכיס להתקייס גם לאחר שמירת הטופס. שתי
השורות האחרונות של המקטע השלישי פותחות מופע של מחלקת הטופס בתצוגת
טופס. בפעס הראשונה בשיגרה, הטופס נפתח עס הכיתוב ססז.
מקטע הקוד הרביעי מחזיר את כיתוב מחלקת הטופס לערכו המקורי, "5ז6וס56ט6'י.
הפניות למופעי מחלקת טופס
דוגמת מחלקת הטופס שלפניך יורדת לעומקן של מחלקות טופס. באפשרותך לבדוק
בקלות את התנהגות השיגרה על ידי שימוש בטופס 5|סשחס6חשו/9זו= וח1, הכולל לתחצן
שמפעיל את השיגרה 0560706|8552?. שיגרה זו מטפלת במופעים רבים של מחלקת
טופס.
()%65%107016|3552+ 505
80 %6500|35521 0 601 זסזום חס
וחזס-] 5 1 חז? חחוס
5 150 וחזס=] צו6] 5 2חז? וחוס
זז 5 61חו וחוס
. ץ+זס6קסזק 06 601000 061016 2וחז )0 הסק08 צוסחפ '
> ,2.0800 8 " 15 הס 63 ]061930 2וחז=" 80% ₪50
"2000 66655( 0500זסו] פחורחרת סק" , הסטפווס+חה1סצ
.5 00500007*5וחז) 60 61676006 8 85 1ותז] 66% '
5 05 וחזס-] = 1ותז1 56%
"5%66ח 1 ההסז? ה0 68" = הסק1.63 חח
.חן 2ז? זס? הס0וק68 656% '
"5%66ח! 2 והסז? הס0ק68" = ה00ק2.68חחז
.2 800 11 ץ2 616760660 5580665ח! 6|855 6 +0 680005 66 שוסחס '
5. 1 וח
5". 2 רז
"2000 66655 167050 ₪ הררה זט סזק" , הסוהותזס+ח1ש , הסו63. 1 זז אס 150
"2000 66655 1167050 ₪ הררה זט סזק" , הסוטהו ?1 , הסוס 63. 2חזז אס 150
.5 6+ עס 5%80665ח1 וחזס1 01056 '
5. 1 וח
6-כ
5. 2 וח
6-כ
:א 65%50|3552+
0 6+ואם=
8 הח 2000 406655
:קז %05%0|35527
הפחד 2467 = זססוחטא.זזם +[
.החזס? 6!0560 זס+ הס0 630 לחוז 0 306% קפוד '
,"0+ 60560 01 הסוס 68 6חוזכן 086%" אס8 ₪150
"2000 466655 16705016 שחווחותהוססזק" , הסו8ווס+ה1ס
+ 0506
6
הססק6567כ.זז= ,זספותטא. זחם זחוזק. פטטסס
1650613552 6506
+ 0חם
50 06ח=
נוח מאוד להשתמש בהפניות אל מופעי מחלקת טופס בעת שמטפלים ביותר ממופע
אחד. הדוגמה לעיל מנצלת את המופעים 1101 ו-112. לאחר ההצהרה על 11 בתור
מחלקת טופס כללית, הקוד מקצה לו בהמשך הפניה אל מופע של המחלקה חזס-
5 50ז). משפט ההצהרה על ₪02 יוצר הפניה אל מופע של אותה מחלקת טופס,
ולכן 1חז1 ו-2וחז1 הס שני מופעים נפרדים של מחלקת טופס זהה.
משפט חחופ השני יוצר מופע המבוסס על מחלקת טופס, באמצעות מילת המפתח 6
(עליך להתייחס אל מחלקת טופס בעלת התחילית חחזס" בעת שימוש במילת המפתח
6 ליצירת מופע). לאחר יצירת ההפניות תוכל להפעיל שיטות ומאפייני טופס רגיליס
של אובייקטיס שאליהס מתייחסיס המשתנים. לדוגמה, השיגרה מגדירה את המאפיין
ח00ק68 של 112 ולאחר מכן מעבירה את המיקוד ראשית אל ₪1 ולאחר מכן אל
2ז. על ידי כך נפתחיס שני הטפסים וה על גבי זה במסך של 06655.
באפשרותך לסגור מופע של טופס על ידי העברת המיקוד אליו ולאחר מכן להפעיל את
השיטה 01056 של האובייקט 6חסספ.
פרק 5: בניית ממשק משתמש באמצעות טפסים 299
6
יצירת דוחות
הידע שרכשת בפרק הקודס בנושא טפסים, יהיה לך לעזר רב כשתרצה לשלב דוחות
ביישומיס שתיצור. למרות שדוחות אינס תומכיס בפקדים אינטראקטיביים, תוכל
לאכלס דוחות בפקדים שמציגיס נתונים, כגוו תיבות טקסט ותיבות סימון. דוחות
יכולים להכיל גם תמונות גרפיות מאוגדות ובלתי מאוגדות ופקדי 606% לתצוגות
מיוחדות, כגון תרשימים. ב- 2000 466655 667050 היכולת ליצור תרשיםס בדות
פועלת בצורה דומה מאוד ליכולת המקבילה בטפסים.
בפרק זה נעסוק בהיבטים מעשיים של עיצוב ותצוגה בדוח. נעסוק בתכנות להצגת
תוכן דינמי, וגס במספור ובטיפול בדוחות ובפקדים. הפרק מציג מקרה לדוגמה של
ספר אורחים ב-806קזחסזק המיועד לעסק קטן שלו צרכים מחלקתיים שבדרך כלל
ניתניס לטיפול ב-860655. שני סעיפים בפרק דניס בעיצוב דוחות. סעיף אחר עוסק
בהצגת דוחות באמצעות תבנית קוב תמונה טסח5קְ8ח5) של 866655. תבנית זו
מאפשרת לשתף דוחות 460655 באמצעות דואר אלקטרוני באינטרנט, גס בתחנות
עבודה שאין בהן 8668655. שלושת הסעיפים האחרונים מציגיס דוגמאות בנושאי תכנות
ספציפיים. שני הסעיפים הראשוניס עוסקיס בתוכן דינמי בדותח. הסעיף האחרון
מתעמק בטיפול באמצעות קוד בדוחות ובפקדים. סעיף זה מציג טכניקות לטיפול
בסוגים רבים של האובייקט 26005500[66, כגון חבריס באוספים 5זוסק6או|ה
ו-8וחזזסח||.
פרק 6: יצירת דוחות 301
כיצד ליצור דוח
תוכל ליצור דוח בשלוש דרכים:
> שימוש באשף הדוחות האוטומטייס (0ז28) אסקפחססטה). וו הדרך הפשוטה
ביותר, שאינה דורשת יותר מלחיצות אחדות בעכבר.
> שימוש באשפיס אחרים. אשף הדוחות (0ז28ו) +זסס6ח) חוסך זמן ואילו אשף
התוויות (2870/ |6)8868) ואשף התרשימיס (0ז28ו/ 60814) מסייעים להתמודד עס
בעיות עיצוב מיוחדות.
> שימוש בתצוגת עיצוב (חַ/65). יצירת דוחות ידנית בתצוגת עיצוב מאפשרת
גמישות מירבית בכל הנוגע לפריסה, עיצוב, מיון וקיבוץ.
שימוש באשף הדוחות האוטומטיים
דוח אוטומטי המופעל מסרגל הכליס שבחלון מסד הנתוניס, הוא דוח ערוך בטוריס.
שדות טקסט ושדות מספריים מוצגיס בתיבות טקסט, נתוניס מסוג כן/לא (0א/65ץ)
מוצגיס בתיבות סימון ונתוניס מסוג אובייקט 01 051600 = 01) (כגון תמונות מסוג
קחחם.*) מוצגיס במסגרות אובייקטים מאוגדים. הרשומות מוצגות בוו אחר זו בתבנית
זורמת, החל ברשומה הראשונה וכלה באחרונה.
תוכל גס לבחור דוח טבלאי בתיבת הדו-שיח דוח חדש (זסק₪6 אוסא). משיקולי
מהירות ונוחיות, מפתחים מתקדמים וכאלה בעלי ניסיון ממוצע יעדיפו ליצור דוח
משנה באופן זה.
שימוש באשפים נוספים
5 כולל אשף דוחות כללי וגס אשפים מיוחדיס ליצירת תוויות ותרשימיס.
האשפיס מאפשרים ליצור דוחות וסוגי אובייקטיס נוספיס של מסד נתוניס. אשפים
מסוגליס להאיץ את תהליך הפיתוח ולהנהיג סטנדרטיזציה שמפשטת את התחזוקה.
אשף הדוחות (2870ו/ +וסק6ח) מאפשר להגדיר דוח בצורה דומה מאוד לזו שבה אשף
השאילתות הפשוטות מסייע בעיצוב שאילתה (ראה פרק 4). האשף חוסך את הזמן
והמאמצ בעיצוב השאילתה כשלב מקדמי להכנת דוח. בנוסף, הוא מפשט פעולות כגון
קביעת סדר מיון, קיבוצ ועיצוב דוחות מותאמים אישית. אשף התוויות ואשף
התרשימים מבצעים פעולות מיוחדות. המקרה לדוגמה של ספר האורחים שיוצג
בהמשך הפרק, מציג דוגמת פלט של אשף התוויות. אשף התרשימיס של דוחות דומה
בפעולתו לאשף התרשימים של טפסים. תרשיס 6.1 מציג דוח תרשיס במצב הצג לפני
הדפסה (כדי לרענן את זיכרונך בנושא אובייקט 0081 של 2000 חק8ז6 ס6סיסווא, עייו
בפרק 5 בקטע העוסק בהעברת קבוצת משנה של נתוניס לתרשים).
2 הח 2000 406655
חן 0
] סח טכ ופ אש 6 |
.4-0 -א ₪9|: 95| ₪ ₪ ₪כ|₪8.או
ו | ה | ₪ | -שאו 6 ₪ | | > >|
רחוס +87 2) 6!קרח68 עו
0 608955 0011 זו הו ההרחזססזק
7 חו ח+חסו עס 53|65
07
7' וטנ
7' זקה
7' 43
2000 2000 2000 0 00 1500
חס 58105
[4 [מ] ו ]|4 ]4 סב
/ | ו ה 0 ב
תרשים 6.1: תרשים זה הוכן באמצעות אשף התרשימים של דוחות
יצירה ידנית של דוח בתצוגת עיצוב
תוכל ליצור דוח בצורה ידנית על ידי לחיצה כפולה על האפשרות יצירת דוח בתצוגת
עיצוב (שסו/ חטו65כ ח1 זוסק6ח 6076806) בחלון מסד הנתוניס (תחילה בחר את דוחות
(%5ז0ק₪6) מהאוסף אובייקטים). ייפתח דוח ריק שמאפייני הבסיס שלו משקפים את
הערך שבתיבת הטקסט תבנית דוח (שזה|קוחפד +וסק56) בכרטיסיה טפסים/דוחות
(0115ק5/6וזס-]) של תיבת הדו-שיח אפשרויות (פ5חסטקס) (פותחים את תיבת הדו-שיח
באמצעות הפקודה כלים (1005), אפשרויות). ברירת המחדל היא רגלל (|חחזסא), והיא
מציגה דף לבן פשוט ללא צבעיס או גופניס מיוחדיס. אס יש לך דוח שברצונך לנצל את
הגדרות המאפייניס שלו כתבנית לכל שאר הדוחות בפרויקט 06655, תוכל להכניס את
שס הדוח לתיבת הטקסט תבנית דוח. הגדרות דוח ה תהיינה הגדרות ברירת המחדל
של כל הדוחות החדשים. דוחות קיימים יישארו ללא שינוי. תוכל לנצל את התבנית
כדי לקבוע את מספר המקטעים שיוצגו בהתחלה בדות וגם את הגדרות ברירת המחדל
של מאפייני מקטע והפקדים.
הערה:
תיבת הטקסט תבנית טופס (80!קח6ד וחזס?) משמשת ליצירת טפסים
חדשים כפי שתבנית דוח משמשת ליצירת דוחות.
פרק 6: יצירת דוחות 303
לאחר שתפתח מופע דוח חדש המבוסס על תבנית, תוכל לאכלס אותו בפקדים. חשוב
להבין כי דוחות 406655 ערוכיס במקטעים. בתבנית הרגילה למשל, המקטע פירוט
((ו2603) מוצג בין אוג מקטעי העמוד. כל תוכן הכלול במקטע העליון והמקטע התחתון
מופיע בחלק העליון והתחתון בכל עמוד בדוח. המקטע פירוט חוזר על עצמו אחת לכל
רשומה בעמוד, וגוזר ערכיס עוקביס מתוך מקור הרשומות של הדוח.
זוג מקטעיס נוסף שיכול לתחוס מקטע פירוט בדוח הס המקטעים כותרת עליונה של
דוח (ז16806 +וס0ס56) וכותרת תחתונה של דוח (ז6זסס= +01ק₪6). מקטעים אלה מופיעים
פע אחת בלבד בתחילת הדות ובסופו. מפעיליםס ומכביס את המקטעים דוח ועמוד
התוחמיס את המקטע המרכזי פירוט, באמצעות תפריט תצוגה (צוסו/).
באפשרותך לשנות את גודלו של מקטע דוח כלשהו על ידי גרירה של גבולותיו. לדוגמה,
כדי להציג מקטע כותרת עליונה של דוח מבלי להציג את מקטע הכותרת התחתונה
שלו, צמצס את המקטע לאפס, על ידי גרירת את הגבול התחתון של מקטע הכותרת
התחתונה עד שיישק לגבול העליון שלו.
הדוח שבתרשיס 6.1 מכיל את המקטע כותרת עליונה של עמוד (7ז6806 806ק) ואת
המקטע פירוט. המקטע כותרת עליונה של עמוד מכיל שתי כותרות : +68 53006 עו
וחסז) ו- 2000 60655( ₪15 פחוהזות8זפַסזק. מסגרת האובייקט הבלתי מאוגד מוצגת מתוך
המקטע פירוט של הדות. פקד המסגרת אינו מאוגד למקור הרשומות, ולכן הוא מופיע
פעס אחת בלבד.
פקדי דוח
דוחות של 4660055 מכילים באופן טיפוסי תמהיל של תיבות טקסט ותוויות. תיבות
הטקסט משקפות את ערכי השדות של מקור הרשומות שברקע, והתוויות מזהות את
השמות של תיבות הטקסט ושל פקדים נוספים. פקדים נוספים שמציגים ערכי שדות
בדוח כולליס תיבות סימון ומסגרות אובייקטיס מאוגדים. המסגרות הן אמצעי הולס
לשמירת תמונות גרפיות בטבלה. פקדי תמונה משמשיס לשמירת תמונות בלתי
מאוגדות שאינןו ערכי שדות בטבלה.
דוח ראשי יכול לשמש גס בתור מארח של דוח משנה אחד או יותר שמופיעים כפקדים
בדוח הראשי. הדוח 6806001 8 58!65 במסד הנתונים 6חוצווזזסא (תרשיס 6.2) מכיל
דוח משנה שמציג מכירות לפי מוצר. הדוח הראשי מציג נתוניס והיס אך בצורה
גרפית. דוח המשנה מופיע לשמאלו בצורת טבלה. התרשים מנצל את האובייקט +68
של 2000 ח80ז 167050 במסגרת בלתי מאוגדת. דוח המשנה והתרשיס מופיעיס
שניהס במקטע הכותרת העליונה 6007/%8₪6ז68, מה שגורס לדוח המשנה ולתרשיס
לבחור את המוצריס השייכיס לשס הקטגוריה המופיע בכותרת המקטע בכל דף. כל
דוח יכול להכיל מקטעי קבוצה מקוננים, כגון מחוזות במדינות או סוגי מוצריס
בחטיבות של חברה.
4 הח 2000 466655
[<1ם)-| 58 )4:00 ב
| אס ו אטח סד אפ 36 ו |
.| ₪]-א 69| 9% ₪ ₪ 28 8.-אן
0
7
ספ 0
ו
25
דה
0 1505 060 3605
סא
076-021
ו
1 078 הסזפסם
בי
8 סזוסם 08 90370015
8%
8
ווום בס3וחו
סח 013 מח3ופח אופ] 80168
טס
318509100 ₪ 061)-זסו!
זו 6
90808 6
טפט
וא 64
6 פה
8
ו450 4000 3500 3000 2500 2000 1500 1000 5000 0
[+ [₪] 8 ]|4|4 שס
תרשים 6.2: דוח משנה ותרשים בדף הדוח /07ף68%6 /8 58!65. המוצרים משתנים בכל
בכל כותרת של קטגוריה.
קוד ברקע של דוחות
יישומיס מותאמיס אישית דורשיס בדרך כלל דוחות ידנייס המעוצביס באופן שהולס
תכנים מוגדרים. 866855 מציע מיגווו רחב של אפשרויות עיצוב באמצעות קוד, אך
קרוב לוודאי שתנצל רק חלק קטן מהן:
4 הדפסה או הצגה מקדימה אוטומטית של דוח על ידי הפעלת השיטה 600סם
+וסס6 הסקס, או יצירת היפר-קישור לדוח (סעיף ייטופס מסך ניווטיי בפרק 5 מציג
דוגמאות שניתן לאמצ בדוחות).
4 הפיכת הדוח לדינמי. ניתן לעדכן מאפיין אחד או יותר של האובייקט +וסק6ח.
לדוגמה, באפשרותך לשנות את מאפיין מקור הרשומות של דוח ואת הכיתוב של
תווית בדות.
> מספור חברי האוסף 600115ח!||ג כדי לקבוע אס דוח קייס ואס הוא פתוח.
> יצירת מופעיס רבים של דוחות (דוחות בעלי מודולים הס מודולי מחלקה).
מפתחיס מנוסיס וכאלה בעלי ניסיון ממוצע עובדיס לעיתיס קרובות עס אירועי דוח,
הרגל שתוכל לאמצ כדי לשלוט בצורה דינמית בתוכן הדוח ובעיצובו. השתמש באירועי
הדות המותאמים אישית ח6ק0, 60/8%6, 0|056 ו-6ז686008ס במקוס באירועיס
פרק 6: יצירת דוחות | 305
6 ו-6זח!וחז6 ד לכל מופע חדש של מודול המחלקה שקשור אל דוח. בעת הדפסה
או הצגה לפני הדפסה של דוח, מתרחשים האירועים )אוחזסת ו-)חוזס כנגד המקטעיס
העוקביס שבדוח. שני האירועיס הללו שימושייס לשינוי דינמי של תוכן הדות ועיצובו.
הגדרת המאפיין ז086006ד ק66א בתור 6טזד עלולה לגרוס לאירוע ₪6₪68% להתרחש
בצורה סלקטיבית. מקטעי דוח מפצליסם רצועות דוח למרכיביס תואמים אך נבדליס
זה מזה. לדוגמה, המקטע כותרת עליונה של דות (6806 סק6ם) הוא המקטע
הראשון כשהוא מוצג בדוח, והמקטע כותרת תחתונה של דוח (ז0ז00= +וסק6ה) הוא
המקטע האחרון כשמקטע זה כלול בדוח.
מקרה לדוגמה:
ספר האורחים של פִאַ3ּק+חס-
6פפחסז מאפשר ליצור בקלות ספר אורחיס המרכז מידע על מבקרים (כגון שס
ופרטי יצירת קשר) בדף 60/ בתבנית ||אזח. גישה זו אינה מחייבת ידע כלשהו במסדי
נתוניס או בחיבורי קישוריות מסד נתוניס פתוחה (0086). מבקרי האתר רואים טופס
בעל חזות מקצועית שאליו הס יכולים להוסיף פרטי איש קשר, ומשתמשי 66ַפקסחסז=
יכולים ליצור ספר אורחיסם ולהציגו בצורה קלה ופשוטה. השיטה מתפקדת היטב כל
עוד מספר המבקריס באתר אינו רב מדי.
אס כמות המבקרים באתר גדלה משמעותית, ניתן להעביר את כל נתוני אנשי הקשר
לקוב מסד נתונים. גס אס האתר מעביר את הנתוניס להפקדה במסד נתונים, עדיין
נותרה הבעיה לשחזר את המידע המקורי המעוצב ב- |ואזח. מקרה זה מדגים גישה
אחת לשחזור נתוני טקסט ישניס ומתאר כיצד להפיק תוויות מען וטפסיס המכיליס
את המידע לאחר המרתו לתבנית המתאימה.
ייבוא נתונים
ניתן לנצל את אשף יבוא טקסט כדי להעתיק את קוב ספר האורחיםס הגולמי אל
טבלה של 860655. תרשים 6.3 מציג חלקיס ובהם שתי רשומות מתוך קובצ אדו
הגולמי (עבור האורחיס 0061 |זהּא ו- 2062 חהּפסם). שים לב למספר העצוס של תגי
]|אדה. הסייר הפנימי של 6סְ8ק)חסזת מנצל תגיס אלה כדי לעצב את תצוגת ספר
האורחים, אך התגים אינס מאפשרים ייבוא נתונים ישירות לטבלה של 4600655 להכנת
תוויות מען. כל מידע אנשי הקשר מופיע בעמודה ארוכה יחידה. יש שורות שמכילות
נתוני קשר, אך שורות אחרות מכילות תוויות תיאוריות או תווי עיצוב כלליים. כללי
העיבוד של מסדי נתוניס יחסיים מחייבים להקצות שורה נפרדת לכל אורח שנרשס
בספר האורחים. הדבר מחייב לפוּר את המידע של אורח אחד הרשוס בעמודה יחידה,
על פני כמה עמודות.
66 הח 2000 406655
ות ו
1 1
<|> <>
<8<>/01/> :81813008זו-] הסו3/081/ 119<ם><81> <8<>/01/> :8הח18זו=] חסוזפט|5/8 5118<פ><01>
<80<0280>/00> <00<]487|>/00>
<01/><ם/> :35108708 | ח0ו3]081/ 5119<ם><81> <8<>/06/> :35114308 | חסוז8ט|8/= 5118<ם><01>
<08<0082>/00> <60/> 0081 <00>
<)8<>/0/> :1880128100 חסו81ט|9= 5118<פ><01> <0<>/06/> :ח0ו281ח3מָזכ) חסוז8ט|8/ 5119<ם><01>
/> ,8.001 85|3ך 8|סאו1;4סטף.8 500 |108ח88<780> <3>/00חוחזו/ 1 6 00<71>
<2<>/01/> :517881/4007888 ח0סו31081/ 5119<ם><81> <8<>/01/> :517881/4007885 חסוז8ט|8/ 5119 <ם><01>
<9/10>/00 6879|[3 308068 00<7> <0>/00/ ז18פוזז3ם 00<6221>
<8<>/01/> :40678882/ חסו81ט|₪9 118 <ם><01> <)8<>/0/> :40078882/ חסו81ט|5/8 5118<ם><01>
<08/>,מ8.006 <80> <00/> ,8.005 <00>
<0<>/01/> :0117 חסו1ַ8ט]8ש₪ 5118<ם><01> <2<>/06/> :0117 חסו81ט|5116₪/8<פ><01>
<00/> 37880 702 <> <00<6-0851808]0>/00>
<)2<>/0/> :51818 ח0ו3/081/ 5119<ם><81> <8<>/01/> :51818 חסו81ט|5/8 5118<ם><01>
<00<581018>/00> <00208>/00>
<0<>/01/> :2100008 חסו1ַ8]08ע₪ 5118<ם><01> <8<>/06/> :2100008 חסו81ט|116₪/8<פ><01>
<88<12000>/00> <80<23032>/00>
<8<>/01/> :ץז1חט0 חסו1ַ8ט|8ש01<>2<5118₪> <0<>/01/> :צז1ח0 חסו1ַ8ט|5118₪/3<פ><01>
>00/>בּ8פַ0ַחָ) <> <00<)/5>/08>
<8<>/01/> -4%/=] חסו3/081/ 5169<ם><81> <8<>/06/> :4%/=] חסו81ט|8/ 5118<ם><01>
<40/> ₪0<2345678901> <00/> ,]8.008 <80>
|= <8<>/01/> :|ו03ח= 3/0810 19ו5<ם><81> = <8<>/01/> :[ו8חח= ח0ו8ט|3/ 5118<ם> <01>
5 וס |%ץ| ו<] + 7749 ]|14|4 ספת 5 )םס |5%| וע | = ל ]| 4 |14 :הספת
תרשים 6.3: קטעים מקובץ ספר האורחים של סַחָק)חסז=, שיובא אל טבלה של 06655
בין אם נתקלת בדרישת המרת נתוניס מדויקת זו ובין אם לאו, פיתוח ב-866655 מחייב
באופן טיפוסי לטפל בזרימת טקסט. עסקים גדולים נדרשיס לעיתיס קרובות להמיר
נתוניס מחלקתייס ישניס לתבנית של מסד נתוניס יחסי באמצעות תהליך דומה.
המיגוון העשיר של פונקציות עיבוד מחרוזת והשילוב של פחסטפסו|קכה זס1 8856 |8טפו
(88/) ב-860655 מאפשריסם להפוך משימה זו לאוטומטית.
המרת מבנה הנתונים
המטרה של עיבוד מחרוזת היא להפוך את הנתוניס שבטבלה כגון 1קוח6ד שבתרשיס
3 לטבלת אנשי קשר מקובלת, כגון ו שבתרשיס 6.4. אסטרטגיית הפעולה כוללת
שתי ערכות רשומות: אחת עבור טבלת המקור ואחת עבור טבלת היעד. השיגרה עוברת
לאורך שורות טבלת המקור כדי לחלץ את נתוני אנשי הקשר ולאחסן את הנתוניס
שעברו ניתוח במשתניס. לאחר שסיימה לעבד את כל הנתוניס של איש קשר, השיגרה
מוסיפה אותס לשורה חדשה בטבלת היעד. מכיון שלשדות השוניס של איש קשר יש
דרישות ייחודיות, חוקי העיבוד משתניס לעיתיס משדה לשדה. השינוי בחוקיס עשוי
לנבוע מכך שנתונים גולמיים בשדה גורמיס לבעיות ייחודיות שלא קורות בשדות
אחרים.
קטע השיגרה הבא הופך את תבנית נתוני הטבלה שבתרשיס 6.3 לתבנית נתוני הטבלה
בתרשיס 6.4. הנוסח המלא של השיגרה מופיע בתקליטור המצורף לספר. הגירסה
המקוצרת שבפרק מציגה את הקוד שמבצע את המרת שלושת השדות הראשוניס
המיוצגיס באמצעות המשתנים 6וַפַח-507, 6וח8ח5071 ו-06ח8ח506. תדפיס הקוד ארוך
והנוסח המלא שלו ארוך עוד יותר, אך המרת נתונים היא השלב הראשון הקריטי של
פרויקטיס של מסדי נתוניס של 460655. אס לא תצליח לטפל בנושא קריטי זה, פרויקט
5 שלך לא יפעל.
פרק 6: יצירת דוחות | 307
4 זפזפוזזם 6221 הוחוחָזו/ זט 6 ור וו |2
סי 0 ]69798 730808 85|3ך 3|סאו14 ₪00 |8סוחתספך חהפסם 3
ופ ץז .1 אוט!וו/ 22 חסו801 הח 88םז8זח= ו 4
0ף8סוח) שור 8ח8ו₪ח| .ב 3823 הסזטח 3118 = סו|910ס הפו 5
ב זם ז%8י9510// ₪62 סח| ח| חזטת 2359811 6
:]וח החטב | ₪ 30053 8ו/* ם-2214 8מ60!8 הט חס 800|6080% 8 7
8 9 צאיח .5 2240 8 81חז8]ה| 0088 ח380- 0
חססוזחת 601 ז8%9 2201 ו 8ַחוז5! | |הזומום ופפ
8 חפ 11/1 05 חונ 71 ₪ 54 סו31 זטאיסי חס 10
- 7 זםםת זט 36 277 שה וא 11
+
4 1 וס [+*| ?| + 1 ]ן | 14 :ספת
תרשים 6.4: נתוני ספר האורחים של סָאַק)חסז=] לאחר המרה מתבנית 6דח. ההמרה
מסירה את תגי העיצוב ומציבה כל רשומת איש קשר בשורה נפרדת.
108
()0600 פט5
חס חח 8.00 0 עוסא 5 1 החש וחוס
5 501 חזוס
הַחוז50 5 6הההח 5071 ,חַחו7ז5 5 6הההּח- 50 הזוס
58 5 50511 ,0חו567 5 506806 וחוס
9חוזז5 45 50701 ,0חו507 ₪5 507562 וחוס
ו 5 |005%9 50 ,0ח71ז5 5 505% וחוס
ח8 !00 5ב כוא5ופ ,8חו50 5 ץטהט0ס506 חחוס
צוס) 5 502 חזוס
.וח6ץ 0+ 616760665 56% 300 6607056065 סט חסכס '
660 ה 66160.0 = 1החס
% צוס) = 91 56%
הסוח .660160 = חהסו66 ה ה0ס66ע6ה. 561
3% = 6קץ דס5זט6. 561
6 וק 0600 801 = 6קץ 0607 961.1ז
.1וח6 8016 ח! 15 הסוזהוחזס)חו %86%חה60 עשוה '
"1קוח6" ח5%1.076ז
הסוח .0160 זל 66 = הס 66 ה 6660 562
= 6קץדזס5זט902.6ז
6 וק 0600 801 = 6קץ 0667 902.1ז
.6 156 885601 62/ 6 חן 0זחו +600%86 560זהק 550765 הסחסהּסו!קקהּ סחד '
"15% 08560 60/" ח5%2.006ז
.סו ז0?ח! %86%ה60 עה ]0 66070561 6חז הפטסזח% קסס| 8 פופ '
561.50 וטח ספ
6 = כןו5!ם
ו טסץ הסחצו 66070 %86%ח60 צוסח 3 +זבּסס '
": 36 זו הסוהט|הע51065" שבח |ססבּ| ב'
החד 0 <> (":6ר8ס5ז1=] הססהט|ע 5106" (16!05)1=. 561 ,1 )ספת +
6% טס 561
החד "<050;>/00ה >00<8 " <> (16|05)1-.561ז +
66655 2000 8
זס טח 66 15 160 6חחהּח זו 6ח% 01 ה9%ח6! סחד '
.סל וחו|06 ">" ה "<" ה6066כ 60870005 '
1 + ("<" ,(561.=16!05)1ז ,1)ז5ח1 = 6פזוחסחו
+זו הו - (">" ,(16|05)1-.5%1ז ,5₪)6ח1 = ח6 סחו
(ח6 סח ,5%זו- סח , (16!05)1=. 10)75%1 = 6ההח- 50
.0 סח 35%| 006655 0+ 660705 סצאט סטסון '
2 6עס]. 561
6
.0 ס6וסחשו 6+ ק591 0+ 130 ה200!68 3 566 ,אחהו0 15 סוחהּח זו שא זך '
סד = קו56!ופ
0חם
.1 סרחה 85%| 6655ס0שק '
1 + ("<" ,(16|05)1ת.5%1ז ,1)פח1 = 6פזו-סחו
%פזו הו - (">" ,(16|05)1-.561ז ,50)6ח1 = חס סחו
(ח6 שחו 56זו- סח , (605)1ות. 5%1ז)110] = 6הַבּח 501
.0 6 ץח8קוח60 6655סזק '
2 6עס]. 5%1
החד "<050;>/00ח >00<8 " <> (16|05)1-.561ז +
1 + ("<" ,(561.16!05)1 ,1)ז5ח1 = 6פזוסחו
+זו הו - (">" ,(16|05)1-.5%1ז ,5₪)6ח1 = ח6 סחו
,0 6 וח ץח8קר 60 66 חו 36| 8חו680! 8 15 סותא זז '
.86| 6+ 307 סהבּח 66 0חו1 ח68 טסץ ]ו 566 '
החד 0 <> (";קפ5פחא" ,(5%1.16105)1 ,2)שח1ז +1
%פזו שחו - (";קפסח.8" ,(16|05)1-.561ז ,5₪6ח1 = ח6 סחו
1 0חם
סח 6+ הזוצ וס חהס6 610 6חהח ץ ההקר 60 6 זסז סוט פחופזהק סחד '
. ץה32050700 6וחַחו5 3 ס%ח! ;800% 5'|ח6ח הססס6חט) 601866 הפצ '
("" ,"שסטף8" , (ח6 שחו ,5%זוה סח , (605)1ות. 1100551 )6366 = 50686
6
.1 6 סז ץח סח 15 676ח+ ז פחהו50 ה0%ח6|-2670 0+ 6חהח ץההקוחסס 56% '
"" = 8006ח5070
0חם
הסו ו זס+חו +%86ח 60 6660 ח60 60 ,8156= 15 030 קו59 ההס|ססם + '
.06 15% 285601 60/ 107 66ה6)676ז 15 ה6וחצו ,502 60 '
חס ד 8156 = קןואפום +1
2 תו
0
6ח 50 = ("6 3 5זו ")05 |סו=.
שוח 5071 = ("306 350% 05)"1|סו=.
56 = ("6וה ץח הק 60" )05ו6ו=.
1 = ("05)"0076551|סו=.
פרק 6: יצירת דוחות 309
2 = ("6!05)"0076552ו=.
5 = ("605)"6ו₪.
5% = ("66חוטסזק 558060" )6|05ו=.
|50770569 = ("0500|0006ק")05|סו=.
ץ טס 5 = ("ץחהטס6")פסוסוח.
6
הזו 0ח=
0חם
+ 0חם
ה ז5% 300 80!6? 61 חו 66070 +א6ח 60 סטסטן '
.חח 5% זס? |806! פחוסט|סחו 0ז600ז 8 זסז'
]טסו 501
קסס |
50 06ח=
כל אחד משלושת השדות המומרים מתבסס על לוגיקת ניתוח שונה במקצת. שאר
השדות מטופלים בצורה יותר עקבית. יחד עם זאת, קיימיס כמה הבדלים ברוריס
בחוקי הניתוח בין שדות חלופייס. באפשרותך לקרוא את ההערות ולחקור את הקוד
כדי להבין טוב יותר פונקציות %88 שימושיות שמעבדות מחרוזות. בתוס תהליך
ההמרה, הקוד בודק ומוודא שלא היתה המרת שדה כלשהי שקבעה את דגל הדילוג
בתור 6טזד. ערך 89/56 של הדגל מאפשר לשיגרה להוסיף רשומה חדשה לטבלת הקשר
היחסית בתבנית המוצגת בתרשיס 6.4. לאחר מכן השיגרה עוברת לרשומה חדשה
בטבלת המקור (עותק ספר האורחים של 6ִחַָ88קחסז=). כשטבלת המקור מחזירה את
משתנה 50 בתור פטזד, מסתיימת לולאת 00 החיצונית והשיגרה נעצרת.
יצירת תוויות מען
תרשיס 6.5 מציג את תצוגת העיצוב של דוח תוויות מען וגס קטע מהתצוגה הצג לפני
הדפסה (שוסוע6זק) של תוויות המען. התצוגות מבוססות על נתוני אנשי הקשר מהטבלה
שבתרשים 6.4.
5 כולל אשף תוויות מען גרפיות שמתאימות למדבקות בשלל גדלים עבור מיגוון
דגמי מדפסות לייוזר ואחרות. האשף מאפשר גס להגדיר גדליס חדשים של תבנית
תווית. הוא מבטל את הצורך לכתוב ביטוייס לטיפול במחרוזות כדי ליצור את מבנה
התוויות. החלון העליון בתרשיס 6.5 מציג את שדות התווית בצורה מוגדלת מהרגיל
שמאפשרת להבחין בביטוייס שהס מכילים. האשף מתאים אוטומטית את גודל תיבות
הטקסט המכילות את ביטויי המחרוזת שלו, כך שהתוויות מתאימות לטופס.
0 ףח 2000 406655
|<]ם] - | ]וק : 51 35601 6 / 615פה 1 =|
([851/08709/] 8 "" 8
([6חז8ו
[0076551/])חווז ד =
מ ו
|<11) ב | : 05% 35601 60 / 80615 1 =|
3 פפוווגוב 2 חס 1 וזא
חסו6החס6 16156ח = !68 ד 8סוו' 500 סוחתסט ד הוחוטזו זט 16
5 !1 22 0 0918 303088 ד ז6ו5וזהם 6221
3 ל 156 0 55013 , טפס זה2סק 2 !651610
86 5 4 חעסו
6 ץז וחו תח 6 80% 50060 סח! טח] חזוו=] ₪855 הסזגוה = 3 = סווססקם.
= 80058 8ו/ פ-2214. ץז 6306 ₪62 6ב 8ח8וח] .5 3823
010380 | 3 285568 , 4, 5 1 9008 5, 0 3
כ | | ]| | של
תרשים 6.5: החלון העליון מציג את דוח תוויות המען בתצוגת עיצוב; החלון התחתון מציג
קטע מדף התוויות במצב תצוגה לפני הדפסה.
יצירת מכתב אחיד
שימוש טיפוסי נוסף בטבלת אנשי קשר הוא במכתב אחיד. שילוב של פקדים, קבועים
ומשתניס של מחרוזת ופונקציות 8 מותאמות אישית מאפשר ליצור מכתב אחיד,
כגון ה שמוצג בתרשים 6.6. המכתב מפגין כמה תכונות ראויות לציון אופייניות לדותח
של 160655 :
בראש המכתב מופיע לוגו.
פרטי מען לשיגור מענה מופיעים בגופן שונה מזה של גוף המכתב.
תאריך המכתב מציג את שס החודש.
כתובת הדואר היוצא והברכה משתנות מרשומה לרשומה.
הפיסקה האחרונה במכתב משתנה אף היא לכל רשומה.
/ / / / 4 .א
דברי הסיוס מלוויס בחתימה.
המרת מספר חודש לשמו (כגון המרת הערך 1 לייינואריי) לא היתה מעולס בעיה
מיוחדת בתכנות, אך ב- 2000 60655( וב - 6 88/ הדבר פשוט עוד יותר. תיבת הטקסט
המציגה את התאריך מגלה את החידוש ודרך אפשרית לניצולו. היא מכילה את
מחרוזת הביטוי הבאה:
((28660 )68 ץ 86 " ," 8 (()23%6)ץ3 8 " " .6 ()6הבּתחסופות ד=
פרק 6: יצירת דוחות 311
[<1ם); | [4ז0ק6 : ז9וו6 !זט ]ע14ק]] - 460655 !]ס5סזסווו בז
|א פ|= אוססחשע. וססד אפוע 06 ₪6 08|
-א אש]|- 9% ₪ ₪ ₪כ 8.או
לב
עפש סחזסטוחו\ 8700
1 סוטטס
2 6%א ,6!!וטפוטוס |
6 . שכר
208 זסס תוסייט
1 |
אוחוטזו/ טס 6 ות
א ווה 6221
2 ,0651078600
| ₪68
] זכ 2!6856] .שח סח ומבּס/עיפאתי 1 ]= | 516'5 מפוי זגוס 131 [₪608 .5116 ספוי סח 6 106 פחוזופ אי זסז ופץ אח8ח1 53 510 6467 וד
טחוחזווזסז סחה 516 176 טחוזו/י י||8ו1וחו זסז 5ה6350 זח6ו|6כא6 /ח3חז 6זהּ שזסה ד .635 + 0+ הזווזסז ח08 גוסץ כם 151] 65+מסיה = זוגופץץ חו
. ח500 חוטב 45 10 חסוז8]היחו והחספ סכ זגוסץ 35 פזסו] סז 3 !| סש . הסט
|< |8|=. פג] אוסטחוו פד אפוע 06 ₪6 |
.| -א|₪|. ₪9 ₪2 |
80 יי עס 0ז5 . סקוק 818016 סוס סח 50196 חאיי 0+ 15ח3 50517 6!טבח6 1081 פהסוזסתזסיזכן הסופהככיס פחווז 5116 שח , הזוחד
(5010//%6 01) זפחחואי 8 גוס 8%6חו 51ון טוטוס יחה הסט
זט 0!6856 . פ)השהטחזס0 211(06) 0106 16!+ סח 202655 10 55פגו 6זסחו 6056 ||וי 181 5166 6|סהגוופ/ 8 סו 561 0 פחועם 6זה שער 8
.516 16 1 5ח0ו655זסחזו זגוסץי 115 טחושוט |והחז6 68/6 | . טחוס 876 ששי ששיסח 566 ח8 ח06 אס
ב[
.סח החספטסם וה
זססו11 0 הסוח 60 ד 161
[4 |א] 1 ]| 34| ומב
ו
תרשים 6.6: קטע ממכתב אחיד
הביטוי מכיל זוג פונקציות מקוננות מוכללות עבור היוס והשנה, אך פונקציה מותאמת
אישית (סוחּ תשחסופוחד) מחזירה את שס החודש. לפניך פונקציה מותאמת אישית ב-
6 88/, 6ה8 חזחסו5וח ד, שממירה את מספר החודש בשם המתאים. הפונקציה פוטרת
אותך מהצורך לכתוב את המשפט 6856 56/66 בשגרת פונקציה, או להפעיל פונקציה
מסוג 670056 כדי לגרוס להצגת שס חודש בדוח.
( )רה ה%חסו5וח ד הסטסחט= ס6וופוק
((28%6 )סו )6 3 חס = 6וחבּא תש הסוחד
חססס6חט= 6ח5
2 ₪;ח,/ 2000 466655
ייתכן שתהית מדוע לא ניתן ליישס את הפונקציה 6וחגּאוטחסוא ישירות בתיבת הטקסט
בדות. לו עשית זאת, היית גורס לשגיאה מכיון ש-6וחהּאושחסו אינה פונקציה של
5. עליך לקרוא לה בשיגרה ולהחזיר את התוצאה לאובייקט של 655ס6ס, כגון
תיבת טקסט בדוח.
תרשים 6.7 מציג את תצוגת העיצוב של דוח המכתב האחיד המכיל שילוב של פקדי
תווית ותיבת טקסט. אס גוף המכתב אינו מכיל רכיבי התאמה לכל רשומה בנפרד,
ניתן להציג את כל הטקסט באמצעות תווית פשוטה. לעומת זאת, מאחר שהפיסקה
האחרונה מתחילה בשס הקשר הראשון, הדוח וקוק לדרך לשתזור ערך השדה
86 5זו=. קל לעשות זאת בעזרת ביטוי מחרוזת בתיבת טקסט. החלק התחתון משלב
ביו ערך השדה וקבוע המחרוזת. ניתן לראות כי יש לנסות להציב את תיבת הטקסט
ביחס לפקד התווית שלפניו. כדי לשפר את ורימת הטקסט בתצוגה המקדימה, עליך
לקיים חפיפה בין פקדים בתצוגת העיצוב. ייתכן שיהיה צורך בכמה ניסיונות עד קבלת
עיצוב נאות.
|<1ם) = [וז0ק6 : ז6וו6 |הזזס ]ע14ק]] - 266658 ))ס5סזסו4ו בז
| |5)- ופ טחוש 5!ססך |החזס > ספת ושוע ₪48 ₪6 5
.א ₪ > ₪ 9|6| 9 6 0 5 ₪ -ם
: ו
-2 | = = =| ] ; 5|. - - קת
101 11865 6זסחז 056כןא6 |ווצ
".56 106 01 5חסו855זמחזו זגוס/י 45 פחויוט |וחזס 6
תרשים 6.7: חלקו התחתון של המכתב מתרשים 6.6, והפעם בתצוגת עיצוב
שיס לב לשימוש בגופן 50876 בפקד תווית שנועד לדמות חתימה. זוהי אפשרות
בת-קיימא למקריס בהס לא נדרשת חתימה בפועל - לדוגמה, לדואר בתפוצה גדולה,
כגון מכתבים אחידים.
פרק 6: יצירת דוחות 313
מיון, קיבוץ וחישוב
אחד הייתרונות הגדוליס של תצוגת העיצוב הוא יכולתה לקבצ ולמיין רשומות להצגה
בדוח. יכולת זו מושתת על שני גורמיס: מקטעי פירוט של הדוח ותיבת הדו-שיח מיון
וקיבוץ (פָחוקְטסז6 6חג פַח0ז50). אפשרות הקיבוצ מפשטת את חישוב סכומי הבינייס
לפי קבוצה וגס מחשבת את הסכומים הכוללים.
תרשיס 6.8 מציג דוח פשוט שמדגים רכיבי מיון, קיבוצ וחישוב בסיסיים בדוח. הדות
בן שני העמודים מציג את כותרת הדוח בראש העמוד הראשון בלבד. פקד התווית של
כותרת הדוח ממוקס על-כן במקטע כותרת עליונה של דוח (68060 +וסק56). לעומת
זאת, שתי כותרות העמודות מופיעות במקטע כותרת עליונה של עמוד (ז6806 6חָ088)
מכיון שהן מופיעות בראש העמודות בשני עמודי הדוח. המקטע פירוט (|ו6₪) מכיל
זוג תיבות טקסט מאוגדות לשדות של מקור הרשומות של הדוח. שתי תיבות הטקסט
בדוח מוצגות פעם אחת לכל רשומה במקור הרשומות שברקע. סדר המיון של שורות
אלו יכול להיות בלתי תלוי בסדר הרשומות במקור הרשומות שברקע. יכולת זו
משפרת את השימושיות הכוללת במקורות רשומות בעבודה עס דוחות רבים.
סופ טוסטחשצ. 5וססד שופוצ מב ₪6 3 סופ טוסטחשצ. סד שוסוע. 386 ₪6 5
|< |5|=. |< |5]=.
-.]₪%% ₪055 .]| |9 ₪).
ו הו
7-ו
.א
7
7
וי ורוב ורוו
22 6
:6+ זס? 5365 25 86|
8 1-7 23 6
34 117
0 :++צשטף זסן 9465
8 7 566 6
:₪ +והט זס1 565 5 106
55 8 31 6
4 8
2 :+1צשטף זסן 9%65
43 8 33 7
:ו זס1 5365 29 7
34 1-8 30 7
14 8
2 :4+צטף זסז 9465
8 :ש+צטף זס 53465 1 עו
2 7
30 7
3 :14ף זסז 53465
31 א ]| 150 פסה
ן ==] |
-
ה
/ ן | |
תרשים 6.8: דוח שמציג קיבוץ לפי תאריך
4 ח,/ 2000 466655
השורות שבתרשים 6.8 מקובציס לפי רבעון. תיבת הדו-שיח מיון וקיבוץ בתצוגת
העיצוב משמשת לבחירת שדה אחד או יותר שלפיו מקבצים שורות. קיבוץ לפי שדה
מוסיף לדוח את המקטעיסם כותרת עליונה וכותרת תחתונה של דות, לכל קבוצה
חדשה. יכולת הקיבוצ המוכללת מתאימה אוטומטית לסוג נתוני השדה שלפיו מקבציס
את הדוח. במקרה של שדות תאריך, 866655 תומך בקיבוצ לפי שנה, רבעון, חודש,
שבוע, יוס, שעה ודקה. שדות מסוג מספור אוטומטל (זסטוהטאססטה), מטבע (ששח6זזט6)
או מספר (זספוחטא) מאפשריס לקבא שורות לפי טווח מותאס אישית. באפשרותך
לקבץ מחירי יחידת מוצר בהפרשיס של 55 בדוח אחד, ובהפרשים של 510 בדוח אחר.
באפשרותך גס לקבצ שדות טקסט 0א16) בהתאס לתווים המוביליס שלהס. הדבר
מאפשר ליצור דוח בסגנון מילון שכל המוצריס מקובצים בו לפי שמס: ראשית
מוצריס שמתחיליס באות א', אחריהס מוצרים שמתחילים באות בי וכן הלאה.
יכולות הקיבוץ תומכות בחישוב סכומי ביניים. שיס לב שהדוח בתרשים 6.8 מסכס
הומנות מכירה לפי חודש ולפי רבעון. ניתן להפעיל פונקציית צבירה, כגון 50%₪,
במקטע כותרת תחתונה של קבוצה כדי לחשב את פריטי הקבוצה. קיימות פונקציות
צבירה נוספות שיכולות להוסיף ערך לדות: 4/6, דא60, אגא ו-אזא. פונקציית
הצבירה של סכוס הבינייס בתרשיס 6.8 מופיעה בתיבת הטקסט במקטע כותרת
עליונה של 6ז8 (זסזסס- 6ז8כ). ביטוי מקור פקד (66זטס5 |סשחס6) של תיבת הטקסט
הוא
([10ו0+0706+הט60])וח50=
ארגומנט הפונקציה מצביע על שדה ברקע של הפקד במקטע פירוט. שימוש ב-
0זז00706ה60ט בתור ארגומנט שמצביע ישירות על פקד תיבת הטקסט גורס
לשגיאה.
הערה:
כללי החישוב של סכומי ביניים נבדלים מאלה של שדות מחושבים אחרים
בדוח. שדה מחושב רגיל, כגון כזה שבו מחשבים את הסכום לשורת פריט בהזמנה,
מאפשר להפנות לערכי הפקד המסוימים ברשומה הנוכחית. הביטויים שתכתוב יכולים
גם להפנות לשדות הרקע של פקדים. בעת חישוב סכומי ביניים, עליך להפנות לערך
שדה הרקע.
יצירת דוחות מרובי עמודות
הדוגמאות שהוצגו עד כה בפרק אינן מציגות דוחות מסד נתוניסם קלאסיים בעלי
עמודות רבות שמקורן בטבלת רקע אחת או יותר. באפשרותך ליצור דוח מסוג וה
בשתי דרכיס לפחות: באמצעות אשף הדוחות ובטכניקות עיצוב ידניות.
פרק 6: יצירת דוחות | 315
שימוש באשף הדוחות
אשף הדוחות (0ז28ו) 5זזסק6ם), שהממשק שלו דומה לזאה של אשף השאילתות
הפשוטות, מאפשר ליצור דוח מרובה עמודות. תרשים 6.9 מציג דוח שהוכן באמצעות
אשף הדוחות. כפי שניתן לראות, האשף מספק אמצעי חישוב רבים. מקור הרשומות
שברקע הדוח מונה את מספר המכירות ומסכם את מחירי הסהייכ לפריט בחתך של
לקוח. הדוח מסכס גס את כמויות המכירה והמחיריס לפי לקוח ולכלל הלקוחות.
לאחר מכן הוא מנצל את התוצאות שהתקבלו כדי לחשב את החלק היחסי מסך
המכירות הכולל ואת מחיר הסה'יכ ללקוח. הוא מסכס גס את מספר הרשומות לכל
לקוח ומדפיס הודעה בת שורה אחת ובה שס הלקוח ומספר הרשומות שלו.
אשף הדוחות יכול להוסיף לדוח מיגוון מצודד של מאפייני עיצוב. תרשים 6.9 מציג
אוסף בחירות אפשרי. השימוש בריווח ובקוויס אופקיים מאפשר להבדיל את כותרת
הדוח משאר חלקיו. באפשרותך גם לבחור את אפשרות פריסת השדות הרצויה מבין
אפשרויות אחדות. פריסת הדות שבתרשיס ממקמת את משתנה הקבוצ,
6וחהּאץחהק וח ס6, בקצה השמאלי-קיצוני של עמודי הדוח. שיס לב כי פריסה זו אינה
דורשת כתיבת קוד כלשהו.
| |5|=. יוסח טסופו 06 ₪6 ₪ |
.3-0 -א ₪|. 95 ₪₪ כ 8.או
115400" 6 חום!11או 100164 ₪ 53105
ודוא | >שז0 ו הזה ו10: סז חזה! חב קחזט-)
בו מו
00 1 דוע 1 מנונ 5 19800ו1.
24 1 בו זה 6 וענמו[
3 1 הו זג שודק סקענוסת 6 9088018
120 1 ד ]ב וכ
0 1 ד 1 סנ 5 זרנסמ ונספל 20 ₪ המזרנמ)
20 1 1
1 1 6 ט6וננתנק 16ננה[ונמנן [מונקתכ)
5 1 ינוס ?) 16116 סמ
04 2
8[ 1
8 1
וטנו 5 09816
טנ
פס קט זר
(5018 [0%81 11) 4467/0546 -] 1765 = סרוה עו קדהוס<)" זס+ עוהההדחו5
הטפ
]0
שו[ זו 5 16080הקטוניד 1110 [נרניך מ
6
ו
₪ [א), השש הו וי
|
תרשים 6.9: קטע הדוח שלפניך מציג חלק מאפשרויות החישוב והעיצוב של אשף
הדוחות
6 הח 2000 466655
יצירת דוח מותאם אישית
כשיש צורך בסידור מיוחד של פקדיס ושל חישובים ייחודייסם בדוח, יש לעצב את הדות
בצורה ידנית. תרשיס 6.10 מציג קטעיס מדוח מותאס אישית שרכיביו התפקודייס
דומיס לאלה של הדוח שבתרשים 6.9. דוח מותאם אישית וזה מעוצב בצורה פשוטה
יותר כדי שיהיה קל יותר להבין את מרכיביו. החלון העליון מציג את המכירות לפי
מוצר עבור לקוח יחד עס סכומי הכמויות של ההזמנה, מחיר סהייכ לפריט והאחוזיס
מסך כל ההזמנות עבור שני סוגי החישובים. החלון התחתון מציג את המשך הדוח, בו
מתחיל הלקוח השני. מקטע הכותרת התחתונה של הדף מציג את תאריך הדוח, עמוד
הדוח הנוכחי ומספר העמודיסם הכולל.
| ₪]ב. ופט אוסטחו 5ססך אשצ 08ם ₪6 18|
.| ]|-א >ש|- 9% ₪₪ כ .א
01164 523165 0 ) 115100
מו 10006 -] סחזה 101-ו
1106 4117008 יז 105
][נומ/יוננוס?) 1818 טג
מנונ5 119660
קר
]ו פנו3 5 58916
56 6וננונק 161ננרונמצ'] [מונגקַבכ)
31100611 1
מ 5 רוטקס 8 ונמנ
וג פומ
שונקסקננוסם 66 90818019
6 6פנוסנ1נמו)
1
5 ₪6 )גי 4/7045
71 1 ג ) 0 תס
| | ]41 |3 פצל
6
|<1ם); | [3163 6121000015 הוס51ט:)עזף] - 400655 ]]ס50סזס:וו []
| || וסט ואוסנחו/ | 055 אס 48 ₪6 |
.0 -א ₪8|. 9% ₪ ₪ כ 8.שן
1610000 ץ 0003)שזטוק מ 1110ן4דל1 40 זס] וני
נומונס1
3 ]366 8 , 21 ינש נ(וזנ6 טס)1 ,3 13וצוה 53 :ונס 3160 קטונק דנ 0 קסיג פט ד
/" | [4 |ואן ות ]|4|4 סב
7 ו המש המשר מ ה ב =
תרשים 6.10: קטעים מדוח מותאם אישית מרובה עמודות
פרק 6: יצירת דוחות
227
תרשיסם 6.11 מציג את תצוגת העיצוב של הדוח מתרשיס 6.10. כמעט כל פקדי הדוח
הס תוויות או תיבות טקסט. עליך להקצות קבועי מחרוזת לתוויות ולהגדיר את
מאפיין הכיתוב שלהס בתור קבוע המחרוזת. הטקסט במקטע כותרת הדוח העליונה
נמצא בתווית.
פקדים שמציגיס שדות מספרייסם או ביטויי מחרוזת לעולס יהיו תיבות טקסט. ביטוי
המחרוזת הראשון מופיע במקטע כותרת עליונה של 6וחהּעחבּקוח ס6. הוא נוצר על
ידי שרשור של קבוע מחרוזת והשדה 6וחהּאץח8קוח60 במקור הרשומות של הדות.
אחריו מופיע המקטע פירוט. כל אחת משלוש תיבות הטקסט שלו מפנה לשדה אחד.
פקדיס אלה אינס משלביס את השדה בתוך ביטוי, ולכן אין בורך לקדס אותס בסימון
שוויון (=), או להציב את שס השדה בסוגריים מרובעים.
|= |8|=. קפ טחוש 105 זט > זספתך שוסוע ₪38 ₪6 שן
|-9- ₪990 | ₪ אפ 6 95| ₪ 0 | ב 5 ₪|-ם
2-4 | = = == ק 7 מן: - בב |
630 וסקס 4
ז15106-) ל 53164 700161
63 סַהָבק 4
תרשים 6.11: תצוגת עיצוב של הדוח מתרשים 6.10
ארבעת הפקדים בצד ימין של המקטע כותרת תחתונה של 6וחבּאץה הקוח 60 מכיליס
ביטוייס לחישוב סכוס הזמנות המכירות והסה'יכ ללקוח, יחד עס חלקו היחסי של
כל לקוח בסהייכ מספר היחידות והמחיר של הפריטיס. הטבלה שלפניך מציגה את
שמות הפקדים והביטוייס שהס מכילים. ביטויי חישוב האחוזיס מבוססים על שני
06055 2000 ₪ 8
פקדיס שמופיעים במקטעי הכותרת התתתונה של הדות, 007065ה06078 ן-
6 ט. פקדים אלה מחשבים את סהייכ כמות המכירות וסהייכ מחירי
הפריטיס של כל הלקוחות.
ביטויים לחישוב סכומים ואחוזים של תרשים 6.11
|| שפפקד | | 0 בש 00|
)אס [66וק+א 0 ח%78א0] /[ 106ק+א+%015א] =
הא [00706175] )5 =
אחא [166זק+אם ] )וח 5 =
הסכומיס של לקוחות יחידיס והסכוס הכולל מתייחסים ישירות לערכי שדות הרקע,
5 |ו-06סןק)אם. חישובי האחוזיס של לקוחות בודדיס מתייחסיס לשמות הפקדיס
אשר תלוייס בערכי השדות.
הערה:
כברירת מחדל, 460655 נותן לפקד תיבת טקסט שם הזהה לזה של השדה
שאליו הוא מאוגד. כדי להימנע מבלבול, תוכל לתת לשדות שמות שונים. לדוגמה, אם
שם השדה הוא 5ז0706, באפשרותך לשנות את שם פקד תיבת הטקסט שמפנה אליו
ל-65ז0ט. הדבר יקל עליך לקרוא ביטויים ולקבוע אם הם מתייחסים לערך של שדה
או לפקד.
שיס לב בתרשיס 6.10 כי תאריך הדוח מודפס בתחתית הדף, אך לפניו בא קבוע
מחרוזת. אס ברצונך להחיל עליו תבנית, כגון התבנית ס6ז08 פַח10 (תאריך ארוך), עליך
לבודד את הפונקציה שסא בתיבת טקסט ללא רכיביס נוספים. תרשיס 6.11 מציג שתי
תיבות טקסט צמודות המכילות את מחרוזת הטקסט המובילה ואת הערך המעוצב של
הפונקציה אוסא הבא אחריה.
צידו הימני של הדוח המוצג בתרשיס 6.11 מנצל שתי מילות מפתח, 806 וְ-פסחָ08,
שמזהות את מספר דף הדות הנוכחי ואת מספר הדפים הכולל בדות (מילות המפתח
אינן מופיעות בתרשים). שיס לב כי באפשרותך לכלול מילות מפתח אלו בביטויי
מחרוזת.
פרק 6: יצירת דוחות 319
הפצת דוחות באמצעות תמונות
ניתן להפוך דוחות של 466655 לזמיניס למשתמשים אחרים ב-ו\צש או בדואר
אלקטרוני באמצעות קבצי תמונה (65!₪ 80500%ח5). כדי שתחנת עבודה תוכל להציג
תמונה של דוח של 60655, יש להתקין בה מציג תמונות, אותו ניתן לקבל ללא תשלוס
בתור יישוס נפרד, וגס פקד 466% לשימוש בדפדפן 65/ש. תוכנת המציג מאפשרת
לחוג משתמשיס רחב לנצל את הדוחות שלך, כאלה ש-460655 לא הותקן במחשביס
שלהם, וגם כאלה שאינס מחובריס לרשת המקומית שלך. הדפדפן 6050806 אינו
תומך בפקדי 6%שו86, אך יש באפשרותו לטעון קבצי תמונה דרך חיבור כ₪ח. משתמשי
6 יכוליס להשתמש בגירסה העצמאית של מציג התמונות כדי להציג את קוב
התמונה השמור בכונן הקשיח שלהם.
יצירת תמונה
באפשרותך ליצור תמונה 805000ח5) של דוח על ידי בחירת הדוח בחלון מסד הנתוניס
ובחירה באפשרות יצא זסקאם) מתפריט קוב (6!ו=). הדבר מכניס את שס הדוח בתור
שס קוב התמונה בתיבת הדו-שיח יצא קוב 6₪!ו זוססאם) (תרשיס 6.12). בתיבת
הרשימה הנפתחת שמור כסוג (45 6ש58), בחר +הוחזס-] +0חַ5כְ3ח5. בתיבת הרשימה
הנפתחת שמור ב (ח] 58%6), הקצה מיקוס עבור קובצ התמונה. תרשיס 6.12 שומר את
הדות מתרשים 6.9 בספריה וירטואלית (שנקראת 2000 0/6006 688) ברשת
אינטרא-נט ארגונית. לחיצה על שמול (58/8) בתיבת הדו-שיח שבתרשים 6.12 פותחת
תיבת דו-שיח התקדמות ופותחת את הקוב לאחר שמירתו, במציג התמונות (הכלול
ב-406055). הקובצ מאוחסן בשרת, והתבנית שלו סח5.*.
הצגת תמונה (יַסחַ5כְִ3ח5)
תחנת עבודה שמותקניס בה הדפדפן זפזסו|קאם 6%ח67ח1 מגירסה 3 ואילך ומציג תמונות
(6שו16/ 80500%ח5), יכולה לפתוח קוב תמונה. תרשים 6.13 מציג את הדות ב-
4 ז6זס|קא= %6706%ח1. המציג נראה כאילו הוא חלק מהדפדפן, אך לאמיתו של דבר, הוא
משתלט עליו. פקדי ניווט מיוחדיסם בשורה התחתונה של פקד 606% מאפשרים לנווט
בין דפי הדוח. שורת הניווט כוללת גס לחצן הדפסה (מכיון שהפקד מבטל את רכיב
ההדפסה המקומי של הדפדפן).
שיס לב להתאמה הקרובה בין תמונת הדפדפן שבתרשים 6.13 לבין תמונת הדות
המקורי בתרשיס 6.9. רמת התאמה זו אינה מתקיימת כשמייצאיס את הדוח למסמך
בתבנית 1אז4. בנוסף, ייצוא ל- |ואז אינו מספק את תפקודיות הניווט המוכללת
שמציע פקד מציג התמונות.
0 הח 2000 406655
8 ))050זס:4! ב]
וס טחוש 1005 ספת אופוע 48 ₪ |
|- 3 | | ₪ | - ₪ | - מ )| כ | ₪ םר ₪ | > 3 ₪ | ₪ ש סן
|< |ום)=. 6 :-: 1616ק3ח:) פא
8-ב | ל | 8 פס שופ
אושוי חהָופסכ חו ז'וסקטז 6808 5 =
בזבקוו סחופט צם זססטז 76866 2 -
5 "זסחזס)5טו-) חוח]ואי וסטוסז?] עפ 53!65' וזסק6 וזסקא=] 56 5 א
* 1006 ₪ = % 6 ₪ ₪ :חן 586 זזס ויז 3
זזס קז סקסה 7
בו כ |
וט
5
ו
[ מבייין
ץזספו . בו
:58|950זקז
ו קז בו
ונטב -1]
מביי:
5לחטוחוסס עהי]
ח0ס5נושסקז
₪ ] עס 58/65
פס
₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪
|
בוו
0 זט 55 ₪] [+ 01550 הותפוואי 6טוסזם עים 58165 :הח שו
ן
| |66ח > - וס 50| :6קעש 35 58/6
| || ב | | | ב | ||
תרשים 6.12: יצירת קובץ תמונה באופן ידני
פקד מציג התמונות מאפשר להטביע דוח של 406055 בדף ס6/ המכיל תוכן נוסף. קטע
קוד |ואז שלפניך מציג גוף דף 69/ ובו תגי ₪3 ו-44 לפני הפניית האובייקט לפקד
מציג התמונות. קטעי הטקסט הבאים לפני הפקד מסבירים כיצד לטעון את המציג אס
הדוח אינו מופיע ומציגים היפר-קישור לאתר אינטרנט ממנו יכול המשתמש לטעון את
הפקד. ההוראות מסבירות גם כיצד להציג את הדוח באמצעות זסטְהּחָוה8! 06156806.
באופן טיפוסי תרצה לעדכן את הגדרת הערך החפזבּק, ה40500%28ח5, לפי כתובת ה- !אש
בה נמצא קוב התמונה שברצונך להציג.
<ץ000>
<0806>/3 58016 80500%ח3<5ר]ן>
,שס|6 +וסק6 6+ 566 0%חחה63 6טכ זספאוסזם +3 15 חב שטבּח טסץ )[<4>
6 ||5%3ח1 0ח3 סבסוחץוסם
< ".| 8 ח5/ 0+חו0 0 86665506 / רוח 501.60 סזסורח. שצצשצו/ :קש ת"=61וח 8>
חס ך .<ה/> ז6/וסו/ 82500%ח5 066655 506סחסווו
+ 6+ 566 ה6ע6 ססח ||ואו 565 6056826 .0806 6+ ה61705ז
סקז %6 הסקס ח68 ץ6 זט ,5ז50שסז זופח% חו ופחהוה)חסס
ו חח זסעסוע 530500 5876 606 פחופט זספשסזט זו6ח+ 6סופ6טס
רחס 1116 0%ח05הח5 6+ 080!הצוס0 630 5675 6056806] .סטססבּ
<4]/>. חס ו5%9א'וסע זו6ח% ס+ |6060סזק קה זפטס זס/507 טטצ ה
0 5167 640=ר דפ1/ "זס הפקה ה5"=כ1 ז56נ089>
<"510:=0542060-3686-1100-4081-004009006809 ו6"= 551 61
פרק 6: יצירת דוחות 321
<"16722"=ם! | "אסח66אם "=םוה ההק>
<"11774"=ם! |/ "חס6אם "=םוג ההק>
<"65536"=ם! |ה/ "חסופז6/ "=םוהא₪ אהחהק>
"ח0%78%ח5קה ח5"=ם\ןה | הק>
<"סח5. 66| 2000/58 07806 6302200/680//:קאח"=םט |
<"0"=ם! |ה/ "ההסס2"=םוזה וזההק>
<"1-"=ם() | "טחס1א66חס0עטסו|ה"=ם וזה ואההק>
<"1-"=ם! |ה/ "הסט הסוס השועה'וסת5"= םוה וזהחהק>
<ז08150/>
<ץ000/>
...16 10705011 - קח01.5הו510ו-/20 7000152010 %20ע3165%200 2000/5 ₪06 ם6302200/63//:קווח 4
צו 6 1005 פפאסופת | 50 אשצ 0 6ם |
ח86ז50!ות | 8!ססד
ל ₪ 6 די 5
בת | עזסופו] | 65סצב] | 56800 סוחס ₪5וש ה קסופ ווק מ
.201-0810001 ₪ חור]ו20 %+0גו00ז%20ע365%200 20005 שסוווס 6302200/630//:קוות [6 חן
= 101 1510?) ת1111 א 001064 2 516%
8- 0608 זו 50 זה 018 סז ווה ץח קז 0+
[ - >המשטת פסהם]
0 1 ד זה נומיל 9668
24 1 דזע זג 6 6פנופנ1צמו[)
3 1 דוח ןת שונפסקננוסם ₪65 818019נפ
10 1 דות ןת 1
0 1 ו פנקן 5 זרננסמונ ספודכו12 5 צנמ )
20 1 כ 111001 1
1+ 1 ןג 6 ט6ונונק ע16נגו[נמנן [ונגְקַתכ)
5 1 ד ןג ]ופ /יאנוננוס?) 618[סמת
04 2 ד זג ]וטנו 5 [8פסת
8 1 דח זה 8
8 1 1 ב פנספ-6816 זר
(6:075/ |16481 11) 4546 זט4א-] 1516ה = רחוב ועו קקרחוס:%* זט עובההדהונו%
3 12 וחט5
. 1% 1% 6
שה ₪ 4 | [א] 5 ]ןי |
/ פס הזחו וסס.! שת | | 802ס//:ק!! סַחַבק טהוחסקט 45|
תרשים 6.13: הצגת הדוח בדפדפן 4 זסזס|קא= 6חז%6ח1
שימושים נוספים בתמונות
קבצי תמונה בדוחות של 66655 משמשיס למטרות נוספות לאלו שהוצגו. לדוגמה,
ניתן לשגר תמונה בדואר אלקטרוני בתור מסמך מצורף טחסוחח886ז8) להודעת דואר
אלקטרוני על ידי לחיצה ימנית על הדוח בחלון מסד נתונים (80856ז8כ) ובחירת
2 הח 2000 466655
שלח אל (סד 0ח56) ולאחר מכן בחירה בנמען דואר (0ח6וכ₪66 |ו8) מתפריט הקיצור.
זכור לכלול בהודעת הדואר שלך קישור אל אתר האינטרנט ממנו ניתן להוריד את
מציג התמונות, עבור נמעניס שעדיין לא התקינו את המציג במחשב שלהם.
באפשרותך לנצל גס את השיטות סחטטססטס 600סכ ו-000[60ח56 כדי למכן את
ההמרה וההעתקה של קבצי תמונה לאתר שרת ס6/ ברשת אינטרא-נט ארגונית או
לנמעני דואר אלקטרוני. הסעיף האחרון בפרק כולל דוגמה שמנצלת קוד כדי לשגר
קבציס רביס בדואר אלקטרוני אל נמען אחד או יותר. המשפט שלפניך מפרסם דוח
מתוך מסד הנתוניס סחוצוח+סא באתר מקומי ברשת האינטרא-נט שלי:
,"5ז06סזק +0 115% |06068החכ|ה" ,+וסק6זטק3600% ס הטססטס. וחספ
= ,"ז8וחזסת 80500%ח5"
ד ,"850.5 ח5ץו 2000 00666 680פט60חו68022006\"
הפיכת דוח לדינמי
שלושה אירועי מקטע של דות - )א זסת, ₪6768% ו-זחוזק - מאפשרים לבנות עיצוב
ותוכן דינמייס לתוך דותח. 6אָ8ק, 08ססא, 0|056 ו-ח06ק0 הס אירועי דות נוספיס
שיכולים לסייע בבניית דוחות נבוניס. אירועיס אלה יכולים גס לסייע לנהל את תפקוד
היישוס לפני פתיחת הדוח, במהלכה ואחריה. באפשרותך להשתמש בצירופים של
אירועי דוח כדי ליצור עיצוב דוחות ואפקטים מיוחדים.
האירוע ח76ק0 משמש להגדרת מאפייני דוחות ופקדיהס באמצעות קוד. וה האירוע
הראשון של דוח. אס היישום יכול לקיים יותר מדוח פתוח אחד בו-זמנית, באפשרותך
לנצל את האירועיס 4600/8066 (-8%6/ו06860 כדי לנטר את העברת המיקוד אל הדות
וממנו. השתמש באירוע 61056 כדי לבצע פעולות מיוחדות סמוך לסגירת דוח, כגון
פתיחת טופס או הצגת תיבת הודעה.
האירוע הפסא משמש לזיהוי דוח שמקור הרשומות שלו אינו מכיל נתוניס כלשהס.
אירוע זה מתרחש לאחר ש-400055 מעצב דוח לצורך הדפסה. היישוס יכול לנצל ואת
כדי לבטל דוח העומד לפני הדפסה ואינו מכיל נתוניס. באפשרותך גם לתכנת שגרות
אירוע שמנחות את המשתמש לספק נתונים על ידי הזנת רשומות או באמצעות מעבר
למקור רשומות אחר עבור הדוח.
עיצוב והוספת תוכן
דוגמאות הקוד שלפניך מעצבות ומוסיפות תוכן לדות באופן דינמי באמצעות
האירועים +חוזק ו-זאוחזס=. תרשים 6.14 מציג דוח שמנצל את האירוע זחוזק בשלושה
מקטעיס כדי להוסיף מלבנים אדומיס סביב מקטעי כותרת הדוח העליונה וכותרת
העמוד התחתונה. שיס לב להבדלי עובי הגבולות בין המלבניס. המקטע פירוט (|ו9ז6ס)
מציג אליפסה סביב כל הסכומיס הכולליס החודשיים הגדוליסם או שוויס ל-30.
פרק 6: יצירת דוחות 323
בעוד שהאירוע 6חוזם של כותרת הדוח העליונה קורה פעם אחת ויחידה בדוח, והאירוע
+חוזק של כותרת העמוד התחתונה קורה רק פעם אחת בדף, האירוע זחוזק של המקטע
פירוט מתרחש אחת לכל שורה בדף. משמעות הדבר שהדף שבתרשים 6.14 כולל 16
אירועי )חוזס במקטע פירוט. כל אחד מהאירועיס מאפשר ליישוס לבדוק את ערכי
הפקד עבור הרשומה הנוכחית. פירושו של דבר שבאפשרותך להציג בצורה סלקטיבית
אליפסות סביב סכומי הזמנות חודשיות מסוימות.
|<|ם) = | [ח)חס )אע 166758 00עז] - 266655 ))50סזס:4) ]
|= |8)=. קוו טחוש וסט וסור | ₪6 םן
| ₪75 2₪|₪-ש
וב 6 ורוב הזורב ו
2006
6
9-6
16
6
26
7
27
7
7
7
7
7--22%
7
7-ו
17
|2 10 6מַב? 1% 12:12:42 1/03/1998 1:חס 6זבּקפזכ הסקפה וחד
, 4 || 1 | מו בי
ץהסת]
255
כ
2
29
כ
כ
כ
כ
כ
תרשים 6.14: האירוע חוזק בדוח זה מצייר מלבנים סביב מקטעי הכותרת העליונה של
הדוח והכותרת התחתונה של העמוד. אירוע נוסף מצייר אליפסות בצורה סלקטיבית סביב
סכומי הזמנות חודשיות בדוח
שלוש שגרות האירוע שלפניך הן הקוד שברקע הדוח של תרשיס 6.14. היישוס יכול
להחיל את השיטה 6חו! (כמו עבור שגרות האירוע של כותרת הדוח העליונה וכותרת
העמוד התחתונה) כדי לצייר מלבן סביב מקטע הדוח. ארבעה משתנים מסוג 6ופַחו5
מקבליס את הערכים עליון, שמאלי, רוחב וגובה של המקטע. משתנה מסוג 1008 מקבל
את מספר הצבע של המלבן (אדוס בדוגמה). רגע לפני הפעלת השיטה 6חו! כדי לצייר
את המלבן, השיגרה לחוז 68067זסק₪9 מגדירה את רוחב הגבול כ-25 פיקסלים. שני
זוגות קואורדינטות מציינות נקודות עבור השיטה 6חו1. הערך שב-זסוס6פָח1 מצייו את
4 חח 2000 466655
צבע הגבול. הארגומנט האחרון של השיטה 6ח1ו1, 8, מורה לשיטה לצייר מלבן, או
תיבה, תוך התייחסות לשתי הקואורדינטות בתור נקודות קצה הנמצאות בשני
קדקודים מנוגדיס.
(ז0%606ח1 45 +הט600חוזק ,156067 5 |66ח608 )חק 6800 סק 500 6זפטוזק
6 5 66 81ַח5 ,ְ6ופַחו5 5 קס דפַח5 הזוס
56 5 816100%ח5 ,8!6חו5 5 חלסו/פַח5 הזוס
הח ] 35 זסוס6פַח! חחוס
.וח 8 ,הסוא ,66| ,קס+ 56% '
.6 = קסדפח5
6% = 50166
0 /16.568|6] = 50/1000
.6 = 00%ו6רח5
600 56% '
(0 ,0 ,₪68)255 = זס|460ח!
.00% 8 35 6חו! שאזס '
5 = הססו/אוםזכ. 6
8 ,זס|ס86ח! , 5861000 ,הז0ו//חַח5)-(610 1פַח5 ,קס ד8ח5) שחו ]6.1
סט5 0חם
(ז%606ח1 5 %הטס6שחוזק ,%6067ח1 5 |66ח68)חוזק הס660פזס6סס- חק 500 סזפטוזק
6 5 66 81ַח5 ,6ופַחו5 5 קס ד8ַח5 הזוס
56 5 816100%ח5 ,8!6חו5 5 חשסו//פַח5 הזוס
פס ] 85 זסוס6פַח! חחוס
.וח 8 ,ה0%ו ,660! ,קס+ 56% '
.6 = קסדפח5
6% = 500166
0 /16.568|6] = 50/1000
.6 = 600% 5
' 56% 600.
(0 ,0 ,₪05)255 = זס|460ח!
.00% 8 35 6חו! שפזס '
8 ,זס|ס86ח! ,5861000 ,הז0ו//חַח5)-(610 1פַח5 ,קס ד8ח5) שחו !6.1
סט5 0חם
(ז0606ח1 5 +הטס60לחוזק ,156067 5 [66ח608)חוזק |[ו3ז6 500 ס6זפטוזק
6 5 60/ח5 ,6חַחו5 5 6תַפח5 הזוס
6 5 830105 0ח5 הזוס
.6 526 0ח3 חסטופסק '
0 - (2 / הז0ו/16.568|6]) = 006ח5
0 - (2 / %ח0ו6.568|676]) = 0/6₪ח5
5 / 16.568!676100%] = 50880105
פרק 6: יצירת דוחות | 325
.0 350606 5605 %ה37006 35%! ;6166 צוהזס ץ|וההסטוסחס6 '
הפחד 30 =< 6ט|8/. 710ו06ו0+0+הטס6.6ו +
5 ,, , ,5080105 ,(8/60ח5 ,60 8ח5) 66זו6.6וו
+ 0חם
סט5 0חם
ההבדל היחיד בין השגרות %חחק :01676800ק₪6 ו-%חחק הסטַסספזסְססמפָגק הוא
השורה שמגדירה את רוחב גבול המלבן. המקטע כותרת עליונה של דוח (וסק6ח
מגדיר רוחב של 25 פיקסלים, אך המקטע כותרת תחתונה של עמוד (ס80ק
ז0ס=) מצייר מלבן ברוחב ברירת מחדל של פיקסל אחד. שתי השגרות מציירות מלבן
בשכבה שבקדמת שכבת הדות הרגיל. ניתן לדעת ואת משוס שהגבול האדוס של
השיטה 6ח1] מופיע על גבי צללית הרקע של כותרת הדוח הראשית.
שגרת האירוע של המקטע פירוט (וו6₪כ) מציירת את האליפסה סביב סכומי ההזמנות
באמצעות השיטה 66זו6 לכל שורה במקטע פירוט. עליך לקבוע באופן ניסיוני את
המרכזיס האנכי והאופקי וגם את רדיוס העיגול. ארגומנט יחס רוחב-גובה (850660
00ז) של השיטה 66זו₪ משמש להמרת עיגול לאליפסה ארוכה או צרה. בדומה לשיטה
6ו], השיטה 6166 מציגה את הפלט שלה בשכבה שבקדמת שכבת הדות הרגיל.
הטבעת השיטה 66ז1ו6 במשפט חסחד...)1 מאפשרת לשיגרה לצייר בצורה מותנית את
האליפסה סביב חלק מערכי השדה 8ז08ז0, אך לא כולם.
סיכום ערכי דף
אס הדוח כולל דרישה להצגת סכוס הערכים בדף הדוח, עליך לתכנת את סכומי הדף
באמצעות שגרות אירוע, מכיון ש-806055 אינו כולל אפשרויות מוכללות לביצוע
משימה זו. הדוגמה של הספר למשימה זו מנצלת תיבת טקסט שהמאפיין סכומים
מצטברים (וחט5 פחוחחגוח) שלה הוגדר בתור מעל הכל (ן|4 זפוס). הדבר גורס לתיבת
הטקסט לסכסם את השדה 06ז50 |0ח60 לאורך כל הדוח. תרשים 6.15 מציג את הדף
הראשון והשני בדות בעל עמודה נוספת לחישוב סכוס מצטבר. העמודה
הימנית-קיצונית גלויה למטרות למידה, אך בפועל מגדירים את המאפיין גלול (6!פ151/)
של פקד הסכוס המצטבר בתור לא.
באפשרותך לחשב סכומי דף בעזרת לא יותר משתי שגרות אירוע (שמוצגות בעמוד
הבא). שגרת האירוע %הזס= חסחַסספזסְזסס-6ְפָק תופסת שתי שורות קוד בלבד.
ראשית, היא מעתיקה את ערך הפקד בעל הסכוס המצטבר (חטפסאָ8ק) אל
הה%50חה6ז7ט0פח!. לאחר מכן היא מגדירה תיבת טקסט נוספת במקטע כותרת הדף
התחתונה (6030650) בתור ההפרש בין הטפ שח6זזט6פח! ו-ו550 ופָחו. הערך
ההתחלתי של הט85:ח6ז7ט0פח! הוא 0. בתוס העיצוב של כל דף, אירוע הדוח 806ק
מפעיל שיגרה שמעתיקה את הערך הנוכחי של הט₪5ח6זוט0טח! אל ((ט85%05 ופחו, כך
שההפרש הט50זח6זו96ח! ו-וה35050 ופח! בשגרת האירוע 806ק אסק6ח הוא סכוס
הדף של הדף הנוכתי.
6 הח 2000 406655
|<1ם) - | [ח1חס אע 58ז46ז0עזף] - 260655 ])ס5סזסוו בז |<]ם] = | [ח]חס )אע 4650 0עזף] - 406655 ))ס5סזסווו ב]
| |8|=. סוס אוסטחוש !סד אפוע 48 ₪5 ₪ | |< |8|=. וס אוסטחוש. !סד פע 6 ₪6 ₪ |
₪₪שכ 8. או
-]₪800 ?* 7 ₪ ₪ 8.או
וב 6 ורוב חור א
17
17 בי ו ורוה הוור א
08 2 2 6
228 47 5 מ
8 0 23 6-ו
28 6 66 116
8 12 25 16
12 31 16
15 3 17
24 29 27
244 30 7
25 31 7
37 32 7
337 0 7
370 3 7
43 3 ו
4410 37 7
458 38 17
2 :זב חב 5וח+ חס 5זפזם 8 :6זב פִהָבּק 015+ חס 5זפז
40 1:09:02 1/03/1998 1:חס 60זבּקפחכ אהסספח >וחד - 1:07:48 1998 103 :חס 60זבּקפחק סקפ וחד
ב 4 ]₪ ]|| פססק ₪ |[ |4 |א|*תר ]|+|) מסבק
ו ה / | ל
תרשים 6.15: הדוח מנצל שתי שגרות אירוע ותיבת טקסט במקטע פירוט שהמאפיין
סכומים מצטברים שלה מוגדר בתור מעל הכל, כדי לחשב את סכום ההזמנות בדף
חס ] 5 והט%55ח6זוט6ח! ,חס | 35 וחט35%%5 1פַח! סווטטוק
טח | 45 החטפחִ6סהַבּספח! 6ווסגוק
(%6061ח1 5 +ח8600 וס ,1006067 45 |66ח68) +הוחזס-] ה0 306-00%6075660ק 50 סזפּטוזק
ההט16.03065] = וה%50ח6זוט96חו
וט35%05 01ח! - והט%5ח066ח! = ( 0080650 שו
50 0ח=
()806ק ₪606 560 סזבּעוזק
רה טח 86 ח! = ט35%05 וח
50 0ח=
שיס לב ששגרת האירוע )חס חסוְסס5סְְסְסהִסְפָהק שבדוגמה מחשבת ומציגה סכומי
דפים על ידי כתיבת ערך לתיבת טקסט במקטע כותרת הדף התחתונה. שגרת האירוע
זחוזק אינה מאפשרת פעולה מסוג זה, מכיון שהאירוע )חוזס מופעל רק לאחר שהדוח
עבר את תהליך העיצוב. האירוע +8חזזסז מופעל במהלך עיצוב הדוח באמצעות חיישוס.
פרק 6: יצירת דוחות | 327
עדכון דוח באופן דינמי
ניתן להשתמש ב-84/ כדי להוסיף מאפיין מקור רשומות חדש לדוח. בעת שהיישוס
משנה את תוכן הדוח, אפשר לעדכן את כותרת הדוח הראשית כך שזו תשקף את
התוכן החדש. אס תציג את תוצאות השאילתה הפרמטרית בדוח, תוכל גם לעצב את
התוצאות באמצעות אפשרויות עיצוב רבות.
תרשים 6.16 מציג טופס ודוח. המשתמש יכול לטפל בטופס כדי לשנות את תוכן הדוח.
הטופס מכיל תיבת טקסט, קבוצת אפשרויות ובה חמש תיבות סימון ולחצן פקודה.
לאחר הקלדת מספר בתיבת הטקסט ובחירת סוג השוואה, המשתמש יכול ללחוץ על
לחצן הפקודה כדי לפתוח את הדוח שמימין בתצוגת עיצוב. תצוגה זו נחוצה כדי
להוסיף מאפיין של מקור רשומות חדש וכדי להגדיר את המאפיין ח0ו6800 של התוויות
שמציג את כותרת הדוח הראשית. לאחר עדכון שני מאפייני הדוח באמצעות קוד,
פותח היישוס את התוצאות במצב הצג לפני הדפסה כדי להציג את תוצאות מקור
הרשומות החדש. ההוראות הבאות לאחר הכותרת מסבירות כיצד לסגור את הטופס.
. 6וזוח( | 50 46ם₪6!8 665וסזק זו 1
5 -=> 171160 11811 ג: 14!1או 0161%וד - ו
ו יי 301 סקס חס5וזבקוחס6 שסוזק
חח 76800 -7]
הו ו 1 0 6008 זס הברל 616860 | -]
6 6 ו -]
49 שנטנום נום ונב 0 6008 זס חבט 1655 ש]
חפל 1655 -]
3 5 1398 כנמצגןנמז/ת
5 ][נופ/י ענו ) 6106 סמ
5 לחוז
4-2 ]52 ]|4))ו סק
תרשים 6.16: הטופס שמשמאל מאפשר למשתמשים להקצות מקור רשומות וכותרת
מתאימה לדוח שמימין.
שגרת האירוע 616% החפ 60 של לחצן הפקודה (בהמשך הסעיף) מבצעת שלוש
משימות. ראשית, היא מרכיבה מחרוזת 501 בהתאם לבחירות שנעשו בטופס. השיגרה
מוסיפה פסוקיות באופן סדרתי לחלקו הראשון של משפט ה-501 שמציג את רשימת
המוצרים ומחיריהםס מתוך הטבלה פ5סטססזק. תחילה היא מוסיפה פסוקית =חשה/
למשפט הבסיסי בהתאם לתיבות הסימון שנבחרו ולכמות שהוקלדה בתיבת הטקסט.
לאחר הוספת הפסוקית =חםרו/ו, השיגרה מוסיפה פסוקית ץם מפסא0 שממיינת את
קבוצת ההחזרה של מחרוזת ה-501, לפי מחיר היחידה. אס המשתמש בוחר באופרטור
גדול מ (<) או באופרטור גדול או שווה ל (=<), השיגרה תקבע סדר מיון יורד. אחרת -
קבוצת ההחזרה תמוין לפי מחיר היחידה בהתאם לברירת המחדל של סדר המיון.
06055 2000 ₪ 8
הרכיב השני של השיגרה 616% החפ הוזקסוח6 מעדכן באמצעות קוד את מקור
הרשומות ואת כיתוב התווית בדוח. לאחר פתיחת הדוח בתצוגת עיצוב, הרכיב מבצע
משפט חטו\ 6חם...וזוא המבוסס על הדות. כדי למנוע ערבוביה של מסכים, הרכיב
השני מפעיל את השיטה 0ח6ם עס ארגומנט שערכו 8156=. הדבר מעכב את ריענון המסך
עד שהמשפט השני מפעיל את השיטה סח560 עס ארגומנט שערכו 6טזד. בתוך קטע
הקוד חזו/ סחם...חזו\, השיגרה מגדירה את המאפיין 66זט₪6607050 (מקור רשומה)
של הדוח בתור מחרוזת 501 שנוצרה בחלק הראשון של השיגרה. לאחר מכן היא משנה
את כיתוב התווית שמציגה את כותרת הדוח הראשית. משימה זו מתאפשרת הודות
לביטוי מחרוזת שמציג את הערך מקבוצת האפשרויות ואת הכמות מתיבת טקסט.
הרכיב השלישי מבצע שני תפקידים: פותח את הדוח בתצוגת הצג לפני הדפסה, כך
שהמשתמשים יכולים לראות אותו. לאחר מכן, הפקודה האחרונה משתזרת את
הפונקציה 0ח₪6 אשר מציגה את הדוח. כיבוי הפונקציה 560 והפעלתה מחדש מביאה
למעבר מסכים חד וברור.
()א6|16 הסח דזהוזק 6 500 6זפטוזק
58 35 זס8%6ז6ק 500 ,סחוט5 45 50501 חחוס
58 35 6זסח/\50 וחזוס
.6 60006 +60 זס) %ה5590606 .5001 קט 56% '
"001665 170 66[זק6וח( ,86 6%ט00סזק 56166" = .50501
(">" ,"=>" ,"=" ,"=<" ,"<" ,600056)0060|6 = זס8%ז50006
+הטסו ב 8 ]50706800 .8 "66וזססוח() 6זסח//" = 6זסח/50
"וקזוח 5 0007 " 8 6זסחה/ 50 8 " " 8 57501 = 50501
חח ד 2 => 6|טמזקס +
"656 " 8 507501 = 507501
+ 0חם
1 זטסץ 8חו060000 זס+ 6% וח ח 60 5 +ה6 5906 6 06000 6660 חר 60 שד '
הסו 605 %ה55066 .5001 6 6ַפַח8ח6 טסץ הסחצו +ה6רח ו 60 6+ 6עסרח6 ;50856606
1 פחוזק. פַטס6ק '
6 66000 6005 6ח% 56% 0ל אוסוע חחופסכ חו +זסק6ז הסמס '
.חסו630 306|'5! ו סחהּ
6 סח6ם. חספ
5 36/6 , "וס ו 50ז6ט0סזק6סז" +60 הסקס. וחספ
("החזס-]ח0ז605 לס" )5 ₪60 וטו
6 = 0|6ופ!/.
= ₪66070500766.
= = הסססה6"(.6םודופ!")5וס ה ס6.
+ טסו .8 "% " 8 זס8%ז6 5070 .8 " 6סוזק 6וח( 3 חזוצו 665טססזק"
הז%ו 0ח=
זט 06 60 וחזס? 66 צוסח5 אוסא '
וק 36 , "וס רת 060510 סזק6קז" +60 הסקס. וחספ
סד סח6ם. חספ
טפ 0ח=
פרק 6: יצירת דוחות 329
טיפול בדוחות ובפקדי דוח באמצעות קוד
5 כולל שתי רמות הזנת נתוניס בדוחות, בטפסים ובאובייקטים חשובים נוספים
של מסד נתוניס. בפרק 5 למדנו על האוסף פוחזסח!|. 466655 כולל אוספים נוספים :
65 חו|ה, 5 דו|ה, טסוה 5 פווסו/!|ה, 5 ססוו|ה,
, 5 2886605508065]] | ו-פח8זחַ8וכמזהכ!!ה. | תבר בכל אחד
מהאוספים הללו הוא אובייקט מסוג 46065500[60 (סוג אובייקט חדש ב- 00655
0). באפשרותך להפנות לחבר %8זסק6ח!|ה באחת הצורות הבאות:
(0) 15וסס6חו|ה
("6הההח") %5+זסכ6חו|ה
[6וחה8ח]!5+סק6חו|ה
מספור דוחות
הקוד שתיצור יכול למספר אובייקטים מסוג 4606550916 באוסף ||4 כלשהו, כדי
לקבוע אס האובייקטים נמצאים בחיבור של מסד נתונים. אין זה משנה אם האובייקט
פתוח או סגור. באפשרותך גם לקבוע אס האובייקט טעון. כאשר אובייקט מסוג
6% טעון או פתוח, היישום יכול לעבוד עס מרחב אוסף מקבילי. אוספיס
כאלה הינס כולסם רכיבים פתוחים, כגון דוחות וטפסים במסד נתוניס של 06655. חברי
האוסף 8600765 הס דוחות בודדיס פתוחים ביישוס. אובייקטי ₪900 פתוחיס אלה
חושפיס את כל המאפיינים הזמינים באמצעות 84 במקוס הקבוצה המוגבלת יותר
באוסף 5זסק₪6!|א. באפשרותך לנצל את המאפיין 6וח8 של 65וסכ6חו|ה ושל 5ווסקסח
כדי לעבור בין שני האוספיס המקבילים. השימוש במאפיין 15108060 באוסף
5 מאפשר לוודא אס יש לפתות דוח, טרס הניסיון לטפל במאפייניו
ובשיטותיו.
השיגרה %5ז600ח!||5 | שלפניך ממספרת את חברי האוסף 6זסססאו|ג תוך הצגת שמס
ומצב הטעינה שלהס. חברי האוסף 5 0סס56|| שייכים ל-66[סזק)ח6זוטס או
ל-6006770[6060, שהסם חבריס באובייקט חסטפּסו|פקה. עליך להפנות לאחד מהס כדי
לחשוף את חברי האוסף 8ווסק6חו|ה. לכן, השיגרה 655ז00ס₪6!|ג1155 מתחילה בהגדרת
הפניה אל החבר 0[606זקזח6זזטוש של האובייקט חסטפסוופקה. תודקק להפניה זו כדי
לגשת לחברי האוסף 5זסכ6ם!||א. שיס לב שהלולאה ח86ם...זסז] עוברת על כל אובייקט
6% (00[1ס) באוסף 15סס6ם!|ה, אך הנתיב אל 8זזסק6חו|ה מתחיל בהפניה אל
סז ו. הסספסווקקה.
()5+ז0ק56||]46! | 5
58 01ק3 2/6665500[660 5 1[סס וחוס
.סח 0[66%זק %חה6ט6 606 0+ 761676006 8 076806 '
ז תס הסוספסו!קקה = 1קקה 56%
0 הח 2000 406655
30 הסוהסו!קק3 6 חו +וסק6ז ה686 1156 '
0 08060| 85 0650106 '
5 ||ה. סקסה חז 1[טס 586 זס=
החד שטיוד = 1.15108060[סס +1
".8060ס! 15 " 8 6חחהּ\.1[סס לחוזק. פטססס
6
".8060ס! %סח 15 " 8 6חוהּ].1[סס זחוזק. פטססס
+ 50
1 6%
סט 0ח=
האוספיס %5ז5600!! ו-פוחזס=||ג דומים וה לאה בתפקידם. אינך מוגבל לבדיקת חבריס
מסוג | 066550066 | בפרויקט | הפעיל. | השגרות | 6זס6חאו56|ספוחסת!| 50( = ו-
5566 סכ150||₪6| שלפניך מראות כיצד לתכנת את שני האוספיס כשהס
מצביעים על פרויקט אחר. שיס לב לדמיון הקוד בין האוספים וגס לדמיון הקוד בין
הפרויקט הנוכחי לפרויקט האחר.
השגרה 6ז06ש5!56חזס=!|150 1 שלפניך מדפיסה את מספר השמות הכולל של כל חברי
האוסף פוחזס=!|4 שבקובצ 00ח.פזסזכהח6. הקובצ נמצא בתקליטור המצורף לספר.
השיגרה מבוססת על ההנחה שהעתקת את הקוב מהתקליטור אל התיקיה
5 חשחווותבזטסזק. היא ממספרת את החברים (האובייקטיס 6%(פ4666550) בקובצ
מסד נתוניס אחר.
( )66 156 פוחזס=|| 156 1 5
הסוס !66655.0 5 600551מק3 הזוס
6% 8 1[סס חחוס
.6 080980856 3000067 0+ 761676706 8 68%6ז0 '
הסו68ו|קס. 60655( שוס] = 606551כק3 566
8 "66655 הוה רז סזק:6" 08%82856+חה6ז טי חהסקס. 666551 מס
"ססר. פזס+ה ת6 5 6800"
.6 6 חו 105 01 זסטוחטח |0%9ף 6 %חוחק '
+ 5.60 זס-||.0[60%זק+ח6ז6. 666551 //כקה זחוזק. פטטסס
5חזס= || .066% ק+ח6 זז ו6. 066551 קה ח1 1[פס ח86ם זס=
סוה . 1[טס זחוזק. פטטסס
1 6%
סט5 0חם
השיגרה 6ז6ח1156|!₪600755156 שלפניך מעוצבת בצורה זהה לקודמתה, למרות
שהיא מטפלת באוסף 5וסק6חו|4 ולא באוסף פוחזס=!| ומנצלת את מסד הנתוניס
ססוח. 6הושה+זס במקוס את 675.00ז80ח6. עיצוב השגרות כמעט זהה, למעט השימוש
במשתני מחרוזת להגדרת שס מסד הנתונים. שינוי ּה הוכנס משיקולי נוחות וכלליות
גרידא - אין כלל ב-460655 או ב-84 שמכתיב שימוש במחרוזות.
פרק 6: יצירת דוחות | 331
()6 סח 50| סק 6 || 5 | 5
חסו 68| .66655// 5 600551 קק3 הזוס
6% 8 1[סס חחוס
58 5 036 507 ,8חו50 5 6 50 ,חו50 ₪5 הז8קזו5 הזוס
.6 080980856 3000067 0+ 66ה61676] 8 076806 '
חסו68ו|ס. 60655 שוס] = 606551כק3 56%
]סרח 01166 610658 050ז6ו]65!ו= ותהזטסזק:6" = ה6הק50
"ססר סהועצורזזסא" = 506
56 8 ה8%ק507 = 6וחהּא סכ 5
506 %03%80856ח6זזט חס ק0. 666551 קסבּ
.6 סמפחץ חן 62065 +0 זסטוחטח |0%8+ 6+ זחוזק '
05.00% 60ה]||ה.ז60[סזק+ח6זנו6. 666551 קה זחוזק. פטססס
.ןקז ט6. 666551קק3 ח1 1[טס ה₪86 זס=
סוה . 1[טס זחוזק. פטטסס
1 6%
סט5 0חם
שינוי מאפייני פקד דוח
קוד היישוס שכתבת יכול לנצל את האוסף 0655ס4|!₪60 בתור נתיב לדוחות פתוחיס
ספציפיים ולפקדיס שהס מכילים. לאחר שתעבור בנתיב זה, היישום יוכל לקרוא
ולשנות את המאפיינים של דוחות פתוחים. השיגרה 0!5188₪600765ח60 ניגשת דרך
חברי האוסף 5 600א!| אל מאפייני תיבות הטקסט והתווית בדוחות פתוחיס
ספציפיים.
()6015 ה070!51חהס6 פט5
6000 5 601 26665500[660 5 1[סס וס
5 .ןק חטש ח1 1[טס ה₪86 זס=
החד שטד = 11.15108060[סס +1
(6החה. 5)00(1ז0ק6 ח1 601 ה86ם זס=
החד 100 = 6סץ דוס חה0ס601.6 זז
חסוט 61.63 ,6חחבּא. 601 זחוזק. פטוססס
חסחד 109 = 6כץדו0:חה601.60 515611
36 /. 601 ,6חב. 601 זחוזק. פטטסס
6
".אסכ 66% 8 זס |306! 8 %סח 15 " 8 שחחבּא. 601 שחוזק. פטוססס
+ 0חם
1 >אסא
+ 50
1 6%
סט5 0חם
2 הח 2000 406655
השיגרה 0!5180₪600765והס6 פותחת בלולאת ה86ם...זס] שעוברת על חברי האוסף
5זסק6!|ה. אס היא מזהה חבר פתוח (המאפיין 15108060 שלו מכיל ערך 6טזז), הקוד
נכנס ללולאת ח80ם...זס] מקוננת כדי למספר את פקדי הדות. באפשרותך לנצל את
המאפיין 6קץד|סשח60 כדי לקבוע את סוג הפקד. חשוב לוהות את סוג הפקד, מכיון
שהסוג קובע את המאפייניס שחושף הפקד. לדוגמה, פקד תווית מציג את המאפיין
ח630 שלו, אך פקד תיבת טקסט מנצל את המאפיין 6ט|3 כדי לתאר מה הוא מציג.
באפשרותך לנצל את סורק האובייקטיס (96ש0ז8 09[166%) ב-85/ כדי להציג את
הקודיס המספריים של סוגי פקדיס אחרים שברצונך לערוך או לבדוק.
משלוח תמונות
הדוגמה שלפניך ממספרת דוחות כדי לקבוע אס הס מסומניס לשיגור בדיוור בתור
קבצי תמונה. הדוגמה מתבססת על שתי שגרות. השיגרה הראשונה, 06ח805ח05ח56
ממספרת את חברי האוסף 8סספ6חו|ה. מאחר שהקוד בודק אס המאפיין פַפּד (תג) של
הדוח הוא ישו |ופוח'י, על הדוח להיות פתוח. המאפיין פַ39ד אינו זמיו באמצעות האוסף
5 !||ה, אלא באמצעות האוסף %5וסק₪6 בלבד. השיגרה 80500%5ח05ח56 בודקת את
המצב 15108060 של כל אחד מחברי האוסף 5זזסק₪6!||ה. אס 15108060 מכיל ערך 6פו88=,
השיגרה תפתח את הדות לפני שתקרא לשיגרה השנייה. שגרת הדוגמה אינה קוראת
לשיטה 0ו56 עס הפרמטר 8|566=, ולכן המשתמש יכול לקבל בקלות משוב ברגע
שהשיגרה השנייה נכנסת לפעולה. הדבר מתאים במיוחד לדוחות ארוכיס בהס יצירה
ושיגור של קובצ תמונה עלולים להימשך זמן רב.
()80500%5ח05ח56 5
8 301 26665500[660 5 1[סס וחוס
.חח 0[66%זק %חה6זט6 606 0+ 761676706 8 076806 '
קז 6. הסוס הסו|קקה = 1סק3 56%
.0 וזו וזש 0+ 5+וסק56!|ה חן זסס רחסו ה686 806זסותטחם '
.30 81!107]א6066 8ַחו||68 6זס6 הסשקס ,3060סו %סח ]זז '
5 ||ה. 1קקה חז 1[סס ה86ם זס=
החד שטד = 11.15108060[סס +1
סח 1[סס 36 666831110
6
וק 30/1 ,6וחה. 1[פס +60 הסקס. 0וה6סס
6וחהז. 1[סס 30 ט1וו13]א666
3658/6] ,6חחהּ. 1[טס ,36₪6001% 6056. 0ח6סס
+ 0חם
1 6%
סט 0ח=
פרק 6: יצירת דוחות 333
(806ח30)00[1 107|ו6668ה6 סט5
₪5 1קסז וחוס
חח 5+ !| ס% 8הו0חה0ק65 60 רסוח 5+סק₪6 60 60676066 66% '
(806ח5)00[1+וסק₪6 = 601 56%
|| חב 6!ו 80500%ח5 8 676866 "6 |והחח" 58/5 ץשזסקסזק פד זז'
חסחך "6 |והוח" = 601.788 זז
,36-0708050 ,186 [סס )סקט 360 166[ 00ח56. סכ
6 ,".וס0ק6ז 06 15 1676" ,"+וזס0ק6 זסהפקהתפ" , , ,"6%ח.6חו ₪63 הוחוסזוצ"
+ 0חם
סט 0ח=
השיגרה 6806081080 קולטת את שס הדות שהועבר אליה באמצעות
5 היא מנצלת שם זה כדי ליצור הפניה אל חבר האוסף 5ווסספח ששמו
זהה לשס שהועבר אליה. לאחר מכן היא בודקת את המאפיין 38ד של הדוח כדי לקבוע
אס הערך שהוא מכיל הוא ישו ווגחח'י. אס כן, השיגרה מפעילה את השיטה 560000160
של 0006 כדי ליצור קובצ תמונה ולשלות אותו לכתובת דואר אלקטרוני
60ח.862680106וחופזוע, במקרה שלנו). באפשרותך להחליף את קבוע המחרוזת של
הכתובת בכתובת כלשהי או בסדרת כתובות כפי שדורש היישוס. חשוב שהארגומנט
הבא לאחר גוף ההודעה יקבל ערך 8!56]. ערך ברירת המחדל 6טזד יגרוס לשיגרה
לעצור אם ההודעה פתוחה ולהמתין שהמשתמש יערוך את ההודעה. הגדרת ערך
הארגומנט בתור 8|56] מאפשר לשיגרה לעבור בלולאה על כל הדוחות, ללא צורך
כלשהו בהתערבות משתמש.
4 ח/ 2000 406655
7
מודולי מחלקה, טופס ודוח
כדי לכתוב קוד ב- 200655 1167050 בצורה יעילה, עליך לנהל את משאבי התכנות שלך
כך שיהיה קל לעבוד איתס ולעשות בהם שימוש חוזר. ערך הקוד עולה ביחס ישר למה
שניתן להפיק ממנו.
מודולי מחלקה מאחסניס קוד באופן שמאפשר לעשות בו שימוש חוזר. מודול
המחלקה פועל כמו מכולה שחושפת את הקוד והמשתניס הנבחריס שבתוכה בצורה
מוכרת למפתחים בסביבת פחסטהסו|סק זסז 8516 |8טפו/ (88/). עקרונית, מפעיליס
שגרות מחלקה ומציביס ערכיס במשתניס באמצעות תחביר והה לזאה המשמש לביצוע
פעולות על מאפייניס ושיטות של אובייקטיס מוכלליס של 460655. כדי לנצל את הקוד
במודול מחלקה, אין צורך לדעת דבר על אופן פעולתו. כמו-כן, מאחר שמודולי מחלקה
חושפים מאפיינים, שיטות ואירועיס כפי שאובייקטיסם אחריס עושים זאת, גס
מפתחיס מתחילים בסביבת 884/ יכוליס להשתמש בהם.
בפרק זה נציג תחילה מודולי מחלקה עצמאיים וגס מודולי מחלקת טופס ודוח. לאחר
מכן נדגיס דרכיס פשוטות לבניית מחלקות ביישומי 860655 ולפיתות שיטות
ומאפייניס מותאמיס אישית. בהמשך נציג מקרה לדוגמה המשתמש בשלושה טפסים,
בפונקציות מותאמות אישית אחדות מהסוגים 660 שזסקסזק ו- 16% שהסססזק
ובטכניקות המבוססות על אובייקטי נתוניסם 466% - 400 (09[660 808 6%ע60ה)
כדי להתחיל ליצור יישוסם. הסעיף שלאחר מקרה הדוגמה מציג את התחתביר
שבאמצעותו מתכנתים אירועיס לתוך המחלקות המותאמות אישית ובו נפגוש במילת
המפתח פסחסעםחםו/.
בשלב הבא נתמקד במכולות של מודולי המחלקה, הטופס והדוח בעת שנבחן את
אוספי ||4 החדשיס ב- 2000 266655. פגשנו באוספיס פוחזס-]!|ג ו-5סס6חו|ה ; בפרק זה
נכיר את האוסף 65וטססואו|8 (לאמיתו של דבר, קיימיס בסך הכל עשרה אוספי ון).
הפרק מסייס בהסבר כיצד לשלב את האוסף 65!ט4סוזו| עס האוסף 11060165 כדי לנהל
את הקוד ביישום.
פרק 7: מודולי מחלקה, טופס ודוח 335
סוגי מודולים
קיימים שלושה סוגי מודולים :
> מודולים סטנדרטיים (000|65 50800870). מודוליס אלה מאחסניס שגרות משנה
ושגרות פונקציה שברצונך להפוך לזמינות בכל חלקי קוב מסד הנתוניס. מודוליס
סטנדרטייס יכולים להכיל גם משתניס שהוגדרו באמצעות ההצהרה שו|פטק
(ציבורי) שברצונך להפוך לזמיניס עבור שגרות במודולים אחריס.
> מודולי מחלקה עצמאלים (000!65 6|855 6ח08|0ח508). מודוליסם אלה מאפשרים
ליצור אובייקטיס מותאמיס אישית. תוכל להגדיר מאפיינים, שיטות ואירועיס
עבור אובייקטיס אלה, ותוכל גס לנצל את מילת המפתח שפא כדי ליצור מופעיס
של אובייקטי הטופס.
4 מודולי מחלקה של טפסים ודוחות (070ק6ז] 800 5זס? זס? 00|65סח. 6|855)
(נקראים גס מודולי טופס ודוח). כברירת מחדל, טפסים ודוחות מבוססים על
מודוליס (הגדרת ברירת המחדל של המאפיין 8510006 שלהס היא 6טזד). תוכל
להשתמש במילת המפתח 16 בהתייחסות למודול שנמצא מאחורי טופס או דוח.
מודולי מחלקה
מודולי מחלקה עצמאיים שוניס ממודולי מחלקת טופס ודוח בכמה מובניס.
ראשית, בניגוד למודולי מחלקה של טופס ודוח, מודולי מחלקה עצמאיים אינס
כולליס ממשק משתמש מוכלל. תכונה זו עושה אותס מתאימיס יותר למשימות שאינן
מחייבות ממשק, כגון חישוביס, בדיקת מידע או ביצוע שינוי במסד נתונים. מודולי
טופס או דוח שצריכיס לבצע משימות עתירות חישוב, יכולים לקרוא למודולי מחלקה
סטנדרטיים.
שנית, מודולי מחלקה עצמאיים כוללים את האירועים 08|26וח1 ו-6זהחווחזד
שמאפשריס פעולות שצריכות להתבצע בעת פתיחה וסגירה של מופע של מחלקה.
מודולי דוח וטופס אינס כוללים אירועים כאלה, אך באפשרותך לבצע דבריס דומיס
באמצעות האירועים 1080 ו-6|056.
שלישית, עליך להשתמש במילת המפתת א6 כדי ליצור מופעים של מודולים
עצמאיים. מודולי מחלקת דוח וטופס מאפשרים ליצור מופעיס גם באמצעות השיטות
החזס" הק 066 ו-ז סקס הסקס וגס על ידי הפניה אל המאפייניס או השיטות של
מחלקת הדות או מחלקת הטופס. לדוגמה, 560-0605. וחזס עו וחזס פותחת את
הטופס חחזסחץ.
באפשרותך ליצור מודול מחלקה עצמאי מתוך התפריט %ו1856 (הוספה) של 85/
(תפריט וה כולל גס פקודות לבניית מודול או שיגרה סטנדרטייסם). לאחר בניית מעטפת
מודול מחלקה, ניתן לאכלס אותה בשגרות ובהצהרות ועל ידי כך לצייד אותה בשגרות
ובמאפיינים מותאמים אישית.
406655 2000 /,; 6
פונקציות מאפיין ושיטות מותאמות אישית
פונקציות מאפיין מיוחדות מאפשרות לפתח בצורה קלה ופשוטה שילוב כלשהו של
מאפייניס מסוג קריאה-בלבד, כתיבה-בלבד וקריאה/כתיבה עבור מחלקות. אס
היישוס שאתה כותב מרשה זאת, תוכל להגדיר מאפייניסם באופן פשוט על ידי הגדרת
משתניס ציבוריים. מאפיין שמוגדר על ידי מודול מחלקה באמצעות משתנה ציבורי,
יהיה מסוג קריאה/כתיבה. היכולת להצהיר על מאפיינים מותאמים אישית מאפשרת
להרחיב את מיגוון הרכיביס התפקודיים של 866655 לטפסים ודוחות. בנוסף,
פונקציות מאפיין אלו מאפשרות ליצור מחלקות עצמאיות רבות עוצמה.
היישוס יכול גם לבנות שיטות מותאמות אישית לתוך מחלקות. ניתן לנצל שגרות
משנה או שגרות פונקציה כדי לבצע זואת. חשיפה סלקטיבית של משתנים ושגרות
באמצעות מילת המפתחת סו|פטש מאפשרת להגדיר בצורה ממוקדת את השיטות
והמאפייניס שייחשפו. הדבר מאפשר ליישומיס להגדיר ממשקים בינס לבין אובייקטי
מחלקה שפועליס בדרכיס מוגדרות ביותר.
יצירת מופעים של מחלקות
השיטות והשגרות הציבוריות תומכות בגישה באמצעות קוד של שגרות חיצוניות
למחלקה. עליך ליצור תחילה מופע של המחלקה בשיגרה מארחת במודול אחר
באמצעות מילת המפתחת 6 (מילת מפתח זו משמשת גס ליצירת אובייקטים מתוך
מחלקות אחרות, כגון האובייקטים 600060000 ו-₪66070560 של סכג. לאמיתו של
דבר, היישומיס שתיצור יכוליס ליצור עותקיס רביס של מחלקה מותאמת אישית בעת
ובעונה אחת - בדיוק כמו המחלקות של 0פג). לאחר יצירת מופע של מחלקה, קוד
השיגרה המארחת מטפל במופע המחלקה, לא במחלקה עצמה. באפשרותך לשנות
מאפיין של מופע אחד של טופס, אך כשתיצור מופע נוסף של הטופס, המאפיין שלו
יקבל את ערך ברירת המחדל.
מחלקות ואירועים מותאמים אישית
למרות ש-%84 מאפשר ליצור מחלקות מותאמות אישית בעלות שיטות ומאפייניס
נפרדים, לא ניתן לבנות אירועיס מותאמיס אישית בתוך מחלקות אלו. ניתן, לעומת
זאת, לעצב מחלקה שמתחברת למחלקה מוכללת או ספריית סוגיס שמצרפים אליה.
לדוגמה, באפשרותך לבנות מודול מחלקה שמפעיל קוד 88/ בתגובה לאירועיס
0 ו-0/60וח6 16 של האוסף 665ח₪6/676 (הפניות). אוסף זה עוקב אחר
קישוריסם אל ספריות סוג חיצוניות ופקדי 6%ע860. לאחר הפעלת הפניה אל ספריה,
כגון 2.1 00[60) ₪8%8 6%ע460 ₪107050%, באפשרותך לבנות אירועים מותאמים
אישית שמבוססיס על אירועיס של סג עבור האובייקטים ח6600חח60 ו-₪66070560.
אירועיס אלה יכולים להעניק גישה אסינכרונית לנתונים, גישה שמאפשרת ליישוס
להגיב לפעולות המשתמשים, גם כשהיא מוכנה להגיב לחיבור מושלס או לזמינות של
קבוצת ערכות רשומות שהובאה.
פרק 7: מודולי מחלקה, טופס ודוח | 337
משתמשיס במילת המפתח הסעטםוש בהצהרה סוו|פטש כדי להצביע על הפניה
לאובייקט שמנטר אירועיס ומודיע עליהס מתוך פקד 8460/6%. מילת מפתח זו חוקית
במודולי מחלקה בלבד. באפשרותך להגדיר משתניס רביס במודול באמצעות מילת
המפתח פזח6עםוטו/, אך לא תוכל ליצור מערכיס בעזרתה. בנוסף, הצהרה אינה יכולה
לכלול בו-זמנית את מילות המפתח 6ח6עםוטו\ ו-שוסא].
שיטות ומאפיינים מותאמים אישית
בעת השימוש במודולי מחלקה, לא מן הנמנע שתעבוד עס שני מודולים נפרדים. מודול
המחלקה חושף מאפייניס ושיטות וגם מפיץ אירועים. מודול שני מפנה אל מודול
המחלקה; הוא מציב וקורא ערכים במאפייניס וגם מפעיל שיטות. מודול זה יכול
ליּום פעולות שגורמות לאירועים, ואירועים אלה, יכוליס להפעיל שגרות אירוע
המשויכות להן במודול המחלקה.
חשיפת מאפיינים באמצעות משתנה ציבורי
הדוגמאות שלפניך מציגות שני תדפיסי קוד. האחד לקוח מהמודול 65001855 דץו!ז. זהו
מודול מחלקה שמתחיל בהצהרות על זוג משתניס - אחד עבור הדוגמה הנוכחית
והאחר עבור הדוגמה הבאה. השיגרה שנקראת 52 מחשבת את מחיר סהייכ לפריט
מתוך שלושה ארגומנטיס שמועברים אליה: וחט, 6סוזם ו-%חט560ו0. השיגרה שומרת
את תוצאות הביטוי שלה במשתנה שנקרא 0600607766א5. הצהרה באזור הכללי של
המודול מגדירה את 060006ח06א₪ בתור משתנה ציבורי. הגדרתו כציבורי מאפשרת
לשיגרה מארחת שנמצאת במודול אחר העובדת עס המופע של האובייקט
5 ו, לקרוא את ערך המשתנה.
(0|6סרח 6!355 8) 6|טססח 65%6|355 דש סא
הז 5 06וק 060חססאם ס6וופטוק
הז 5 6סזק 60לטקר סו 6סהעוזק
(0!6חו5 5 %הט015600 ,ץ6ח6זזו6 5 6סוזכ ,פחס] 5 אוחט)קם פטפ ש6ווסטק
.הפע 6ו|טטכ ח! 650|6ז הזו קוח 00 '
01500000 - 1) * 6סוזק * 65וחט = 7166 060ח66אם
סט5 0חם
(0|6סוח 5580870 3) 61וטססו סח
()166ק 60 חא טק וס פט5
.06 6|855 +0 558006ח! ש6ח 076866 '
5 אוס] 45 זסזטקו 600סוזקץו חחוס
. וקסיס 6סוזק 060ח06אם 6חוזכ חב ,61355 זסז 600 קם 6אסטחך '
2 , ,5 קם.זססטוק ו ס6ס6וזק ץז
6 חא סוס 660וזק ץז +חוזק. פטטסס
סט5 0חם
8 הח 2000 06655
השיגרה המארחת, 6600607006 6ז0קה60, נמצאת במודול סטנדרטי שנקרא
1. השיגרה יוצרת מופע של אובייקט, המבוסס על המחלקה שהוגדרה
באמצעות האובייקט 6516355 דץוז. בשלב הבא, היא מפעילה את השיטה <קם של
האובייקט. לבסוף, היא מדפיסה את המאפיין 1166ק060ח₪6 של האובייקט.
השיגרה שבדוגמה פשוטה ביותר, אך היא מדגימה מספר נקודות חשובות הקשורות
לשימוש במודולי מחלקח:
> מודולי מחלקה הס בחירה הולמת לחישוב ביטויים קריטיים לעסקים. מודולי
מחלקה משמשים בדרך כלל לאריות פעולות מתוחכמות יותר מאלה הדרושות
לחישוב סה'יכ לפריט.
> השיגרה השנייה שנמצאת במודול הסטנדרטי, מתחילה בהפניה אל מודול
המחלקה, 6506855 דץ1ז. מילת המפתח צוסא יוצרת מופע של אובייקט שמבוסס על
המחלקה. בדוגמה שלנו, המשתנה שנקרא ז6זטסו600סוזקץו] מפנה אל המחלקה.
> ניתן לנצל את הפניית האובייקט אל מופע המחלקה כדי להפעיל שיטות ולהגדיר או
לקרוא ערכי מאפיין. מפניס אל השיטה 52 של המחלקה באמצעות סימון הנקודה
המקובל. מציגיס את הארגומנטיס אחרי שס השיטה ומפניס אל מאפיינים בעזרת
כללי הסימון הבסיסייס.
> יצירת מאפיין של מחלקה יכולה להיות פעולה פשוטה בדיוק כמו הצהרה של
משתנה ציבורי במודול המחלקה.
חשיפת מאפיינים באמצעות פונקציית מאפיין
הראשון בתדפיסי הקוד שלפניך מציג גישה שונה למשימה. הגישה מבוססת על מאפיין
שהוגדר באמצעות הפונקציה 6% /זזסססזק. השיטה 602 והחה כמעט בכל פרטיה לשיטה
קם מהדוגמה הקודמת. ההבדל היחיד בין השתיים הוא ש-602 מפקידה את תוצאת
הביטוי שלה במשתנה פרטי, 66וזק60פטסוח 60 (עיין בהצהרת המשתנה הפרטי בדוגמה
הקודמת). זה כשלעצמו אומר שמופעי המחלקה אינס חושפים את תוצאת הביטוי.
הפונקציה 060 ץזזסקסזס היא זו שחושפת משתנה פרטי. מאחר שלא הוגדרה פונקציית
מאפיין כלשהי עבור 166ק60פטוח0ס6, המאפיין הוא לקריאה בלבד. לו היתה פונקציה
מסוג 16% זסקסזק בשס והה, המאפיין היה קריאה/כתיבה. השימוש במאפייניס מסוג
קריאה בלבד יכול לסייע לאבטח את ערכי המאפייניס ביישום, או לפחות לספק דרכיס
להגדיר אותס.
(0|!6סרח 6!355 8) 6|טססוח 65%6|355 דש סח
(9!6חו5 45 %חט01560 ,שְסחה6זזט6 5 6סוזכ ,חס | 5 6וחט)602 פטפ 6ווסטק
6 ;180!6זה/ ס6העוזכן חן %|650ז הזוצו קוח 00 '
.ח60חט] 66% ₪זסקסזק חש טסזחף זוטפסז '
015600000 - 1) * 6סוזכ * 65וחט = 66וק 0ססטקו 0ס6ץו
סט 0ח=
פרק 7: מודולי מחלקה, טופס ודוח 339
(66)0ק קוח 60 06% עשוסקסזק
.ץזסקסזק ץ|הס-680ז 8 חזטס6ז ס+ אוסת 15 פוחד '
6 לקו סע = 66ק60טקו 60
ץזסקסזק 0חם
(0|6סוח 5580870 3) 61וטססו סח
()7166ק 061600660 5
5 אס 45 זסזטקו600סוזקץו חחזוס
586 6+ 5אסס! ץ+זסקסזכן 3 עס 068060 סטופצ 8 פחופט '
.6 סו|טטכק 8 חהזוצו 660ח067 6חס 35 '
2 ,5 ,5 602.ז6סטוק וח ס6ס6וזק ץז
6 קר .סט סו 660וק ץז +חוזק. פטטסס
סט5 0חם
משתנים ציבוריים לעומת פונקציות מאפיין
תחביר הפעלת השיטה והדפסת ערך המאפיין והיס בשתי הדוגמאות, למרות השוני
בחשיפת המאפיין. הדבר מאשש את הקביעה שמאפיינים מתנהגיס בצורה זהה בין אס
מגדיריס אותס באמצעות הצהרה ציבורית, או בעזרת פונקציית מאפיין אחת או יותר.
ייתכן שפשוט יותר ליישם מאפיינים במודולי מחלקה בעזרת משתנים ציבוריים, אך
פונקציות מאפיין מצטיינות בגמישותן בחשיפת המאפיינים. השתמש בפונקציה
6% וקסוק לבדה לטיפול במשתנה מסוג קריאה בלבד, ובפונקציה 16% עזוסקסזק
לבדה לטיפול במשתנה מסוג כתיבה בלבד. לטיפול במאפיין מסוג קריאה/כתיבה,
השתמש בשתי פונקציות המאפיין. אם המאפיין מפנה אל אובייקט ולא אל משתנה
סקלרי, ניתן להשתמש בפונקציה 56% ששוסקסזק במקוס בפונקציה 166 ץזזסקסזס.
הפונקציה 660 שזסססזס משמשת להחזרת מאפייני אובייקט בין אס מטפליס במשתנה
סקלרי או באובייקט.
מודולי מחלקה ומקורות נתונים
מודולי מחלקה מהוויס אמצעי יעיל לאריזת קוד מסוג כלשהו. הס מכילים ערכיס
מיוחדים שעשוייס להיות מועיליס למקריס בהס יש צורך להפוך מקור נתוניס לזמין
לצורך עדכון או הצגה, אך בה בעת נדרש לאבטח את מקור הנתונים מפני נזק לא
מכוון או רשלני.
עדכון נתונים באמצעות מחרוזת 5091
הדוגמה שלפניך מנצלת מודול מחלקה כדי לעדכן את השדה 5180550066זוח בטבלה
%5, בהתאם לשדה סשסטססזס והכמות שהוזמנה. שיגרה בת שתי שורות מעבירה
שני ארגומנטים לשגרת המשנה במודול המחלקה. דוגמה זו עושה שימוש במודול
מחלקה שונה מאלה שהופיעו בדוגמאות החישוב של מחיר סה"כ לפריט
0 ח,/ 2000 06655
(65%6!8552 זע במקוס 6500|355דש4). בפועל, מחלקים את הפונקציות וההצהרות
לאוספיס אחידיס של שגרות שיטה ומאפייניס שמייצגיס מחלקות אובייקט נבדלות זו
מזו. המשתנה 070678 מייצג את המודול 65%0|8552דץ!₪. המודול מכיל פונקציה
שנקראת 01ק. הפונקציה קולטת שני ארגומנטים, אחד עבור פשסטססזס ואחד נוסף
עבור היחידות שהוזמנו.
()7ז0706ץ1 פט5
5 ו עס 5 00671 וחוס
0 0.01
סט 0ח=
השיגרה השנייה, 501, מעדכנת את מסד הנתוניס פסט4סזק. במפורש, היא מפחיתה
מהשדה 6618050066וח( את מספר היחידות שהוזמנו. שיגרה זו נמצאת במודול המחלקה
(65%0|8552 ד/ץו). שיס לב לעיצוב השיגרה: היא מנצלת אובייקט מסוג 60800 עס
מחרוזת !501 שמגדירה את שאילתת העדכון. למרות שהשיגרה קולטת שני
ארגומנטיס, היא אינה מיישמת שאילתת פרמטר. תחת זאת, היא מנצלת את
הארגומנטיס שהועברו בתור משתניס בביטוי המחרוזת שמגדיר את מחרוזת 501.
עיצוב זה מניב שיגרה מרוכוּת שקל יחסית לקרוא אותה.
6 8 חח הקט זסז 600 ג '
()וחט ,סטס6ט0סזק)01ק פטפ 6וופטק
סח 60 5 601 וחוס
54 45 .50501 הזוס
.וח 60 30 6676006 חר 60 6 ה5516א '
וו 8.00 20 צוסא = 001 56%
הסוח 660.00[ ק 66 = 660 ה ה 6060 . 1 חס
6 ;0חו7ז5 5001 6ח) 6816 *
.65 זה 285560 01 חסוז56חו 66 '
8 " 0060₪סזק ם ד כק" = 50501
= 8 " = א65185%066וח( 5"
= ₪ " " 8 )וחט 8 "-65185%06%וח("
סשטסטססזק 8 "=סטסטססזק =חפרן//"
חטז 0 80 60 6+ 0ף חַחו507 501 6+ חף551 '
1 = 6% 80 600. 601
30% = 006 ו 601.60
6
סט5 0חם
עדכון נתונים באמצעות שאילתת פרמטר
מפתחיס רביס מעדיפים לאמצ גישה מקובלת יותר שמתבססת על שאילתת פרמטר.
השיגרה 02 שלפניך מנצלת שאילתת פרמטר כדי לבצע את המשימה שביצעה 01ם,
והפעס באמצעות מחרוות .501. שאילתת פרמטר מאפשרת להצהיר על סוגי נתוניס
בעזרת כללי %84 מקובלים. שיס לב שהקבוע 3010606 של 800 מייצג את סוג
פרק 7: מודולי מחלקה, טופס ודוח | 341
הנתונים פַחס!, והקבוע +ח1ו|03ח005 מקצה את סוג הנתונים ז9696ח1. עליך ליצור את
הפרמטרים באמצעות השיטה 67680078/806%0 באותו סדר בו הצהרת עליהס
בפסוקית 6065ו8780ק במשפט השאילתה. אס לא תקפיד לעשות זאת, תקבל שגיאת
זמן ריצה (מסזום שוחודחטת).
7 הערה:
בדוק את המידע שמציגה העזרה המקוונת של 460655 על המאפיין 6שְץד של
האובייקט זסוסוחגּזהק של סכה, שם תמצא מיגוון סוגי נתונים עבור הצהרות של
משתנים.
(ז5606ח1 35 וח ,סַחס | 85 סטס6טססזק)02ק פטפ 6וופטק
סח 60 5 601 וחוס
50 45 50501 חחוס
ההק 08 0 5 2חזק ,לסו הּזבק. טס סכה 5 1חזק וס
.הסוח 60 3006 61676006 סח ר60 6ח+ חף551א '
וח 0.60 0כה צוסא = 60001 56%
הסוח .סז ק 66 = 660 חח 660 1 חס
.1 50 355]00 .8 5ז6+6רחה הכ הוצ +ה06ח50006 .5001 %טס בטוז/ '
ץח ,חח | כזק 5ז6ז6ותהזהק" = .507501
= 8 " ססטססזק םדהסקט"
= 8 " = א65185%066וח( 5"
8 " שְחַחַהט0-א6185006טוח()"
";10ק= כטסטטסזק = שה"
1 = 6% 80 60. 601
3% = 06ץ חר 601.00
.ח0ו066|38 85 0067 586 8/6 5% ;60675רת8זהק 6ז66|3ס *'
(ס 303 ,%ח08|!1ח305 , "קזק" )6836 67. 601 = 1וזק 56%
סזסטססזק = 6טוה/. 1 חזזק
1חזס 0הסקכה. 5זס6 רחב זהק. 601
( הזזה 30 ,ז%606ה301 , "ץז ")66 601 = 2וזק 56%
= 6ט|3/. 2חזזס
2חזק 0ה6ככה.675רח הזה ק. 601
.ץזסטף 6ז08קט חטה '
1.6
50 6ח=
2 הח 2000 406655
משימת העדכון שמבצעת שאילתת הפרמטר מורכבת מארבעה שלבים עיקריים:
> הצהרה על משתניס והצבת הפניות.
> הגדרת מחרוזת 501 עבור שאילתת העדכון והצבתה במאפיין פקודה.
> יצירה והצבה של ערכיס בפרמטריס שהוצהרו בשלב 2 לעיל.
> הפעלת הפקודה לעדכון מסד הנתוניס.
מקרה לדוגמה: תכנות ממשק כניסה בסיסי
המקרה שלפניך מדגים גישה אפשרית לתכנות ממשק כניסה (חופָס|) בעזרת 60655.
השיגרה מתבססת על מודולי מחלקה עצמאיים וגס על מודולי מחלקת טופס. תהליך
הכניסה ותוכן מודול המחלקה מנצלים טכניקות תכנות שמתאימות לכל משימה
המתייבת שימוש בנתונים עס טפסים לא מאוגדים.
כדי להבליט את תפקידס של מודולי מחלקה ולשמור על שקיפות התהליך, שגרת
הדוגמה אינה עושה שימוש ברכיב האבטחה המוכלל של 806655. במקוס ואת, היא
מתבססת על זוג טבלאות ועל שלושה טפסים. הטבלה 05זסוו2855 כוללת שני שדות
בלבד: 6610ץסוקוחם ו-0זסצו855ק. הטבלה 665עסוקוחם מיובאת ישירות ממסד הנתוניס
0חואוחצזסא. השדה 6610ץס!קוחם הוא המפתת הראשי שלה, והיא מכילה, בין היתר,
נתוניס עסקיים, אישיים ופרטי קשר של עובדים. שלושת הטפסים מתייחסים לתוכן
הטבלאות כדי לנהל את תהליך הכניסה.
הערה:
מקרה הדוגמה מוותר על לכידת שגיאות, פעולה שאי אפשר בלעדיה
במערכת מעשית. לכידת שגיאות היא מרכיב חיוני במיוחד במערכת שתלויה
בקלט משתמש. לאחר שתכיר את המרכיבים הבסיסיים של מודולי מחלקה בפרק זה,
כדאי שתרענן את ידיעותיך אודות לוגיקת לכידת שגיאות המתוארת בפרק 1.
טופס הכניסה הראשון
תרשים 7.1 מציג את הטופס הראשון יחד עס שתי תיבות ההודעה שביכולתו ליצור.
תרחיש הכניסה נראה כך: המשתמש מקליד את שס המשתמש וסיסמתו בשתי תיבות
הטקסט של הטופס ולוח על הלחצן ח1 ₪16 16%. אס הסיסמה מתאימה לערך השמור
עבור השדה 6610ץס!מחם, היישוס מציג תיבת הודעת פתיחה. אס אין התאמה בין
הסיסמה השמורה לבין קוד זיהוי העובד, המשתמש יכול לנסות שנית, או להקליד ערך
שונה.
פרק 7: מודולי מחלקה, טופס ודוח 343
1 = ו ב וב ם-
וחזס-] הסוז68ו ה6חזט 66ץסוקוח=
ח :10 6פעיס|קוחם
+] ו
| ואס | 355 6הַחְבּ6
0 2006₪5% ]/050ז6ו ה חוחוחוהּ זטסז
כוי ו ן (צ
0 2006₪5% ]/050ז6ו [ חוחוחוהּ זטסז
.2355 הבח זס חובח3 עזד זפעש355ק בוובשח! | א,
תרשים 7.1: טופס הכניסה הראשון ובו שתי הודעות תגובה אפשריות
מסכת הקלט של הסיסמה
נוסף לקוד ברקע של הטופס ומודול המחלקה שהופעל באמצעות הטופס, עליך לבדוק
בהקפדה את תיבת הטקסט 285506. התיבה כוללת מסכת קלט של סיסמה
שמציגה כוכבית כנגד כל תו שמקלידיס בתיבה. מקציס את מסכת הקלט לתיבת
הטקסט מתוך הכרטיסיה נתונים (פּ88כ) של תיבת הדו-שיח מאפיינים (₪65ז6ססזק).
לחץ על לחצן בניה (8010) הסמוך למאפיין מסכת קלט (85%!! +טסח1) כדי לפתוח תיבת
דו-שיח שמאפשרת לבחור בה.
הקוד שברקע הטופס
המודול שברקע הטופס, המוצג להלן, מכיל שלוש שגרות אירוע - שיגרה אחת לכל
לחצן. לחצן וא סוגר את הטופס ותו-לא. לחצן 06 ש355ק 03046 פותת טופס
נוסף ומעתיק אליו את ערך השדה מתוך הטופס הנוכתי. השיגרה שפותחת את הטופס
הסחי גס מעבירה את המיקוד אל תיבת טקסט ריקה. לאחר מכן היא סוגרת
את הטופס הנוכתי.
4 הח 2000 466655
לחצן ח1 6 18% מפעיל מודול מחלקה עצמאי (65%6!8553דץ1!). שיס לב כי השיגרה
מעבירה את תוכן שתי תיבות הטקסט שלה אל שגרת השיטה שוסס6 במודול המחלקה.
מודול ה מאתר את סיסמת העובד הקשורה לקוד הזיהוי שלו וקובע אס היא תואמת
לסיסמה שבטופס. המחלקה מגיבה באחת משתי הודעות אפשריות (ראה תרשים 7.1).
מודול המחלקה מפשט את הקוד של שגרת האירוע. כאן מתגלה יתרון נוסף של מודולי
מחלקה: האפשרות לעבודת צוות. מפתחים מנוסיס יכולים לכתוב שגרות בעלות דרגת
מעורבות גבוהה במודולי מחלקה, בעוד שמפתחיסם פחות מנוסיס יכוליס לבצע
משימות פיתוח צנועות יותר ולהפנות למודולי המחלקה כדי לשלב את קטעי הקוד
שלהס באלה המתקדמים יותר.
()66ו|6 5|א05ח6 0ט5 6סהעוזק
6
50 06ח=
()א0116. זס/ש855ק שש0]16ח6 0 50 6זפטוזק
"הבוח" וה'זס+ה6קס. ספ
כזקוח=%. 6 = 10קוחם6ט. ( "ה סח וז" )רתוס
...ןואט ( " ב סח רז" )5 רתוס
"00שש855ק%טקח1חו" , וח'וס-6 6|056. 6וח6ספ
50 06ח=
()0|166 ח6161 601 סט5 ססהעוזק
3 דא צוסא 5 דששק וחוס
550 ק)א0. 6 , 10קותם=א0. 16 אוסס. ד\ק
50 6ח=
הפעלת מודול המחלקה
השיגרה שוס6 של מודול המחלקה 65%0!8553דץ11 מנצלת שאילתת פרמטר כדי לבדוק
את הסיסמה של עובד מסויס בטבלה 65ז0צו0855. אחד משני הארגומנטיס המועבריס
לשיגרה הוא קוד העובד; השיגרה נותנת לפרמטר שלה את ערך הארגומנט. לאחר
ביצוע האובייקט חחח 60 באמצעות שאילתת בחירה, השיגרה מציבה את קבוצת
ההחזרה באובייקט ₪6607056%. מאחר שהשדה 6610עסומוח= הוא מפתח ראשי בטבלה
5, שאילתת הבחירה תחזיר תמיד רשומה בודדת.
השיגרה ווס6 מסתיימת בהשוואת הסיסמה שהחזירה השאילתה לסיסמה שהקליד
המשתמש בטופס, בתור תנאי המשפט חסחץד...1. אם יש התאמה, השיגרה מאפשרת
למשתמש להיכנס ליישום. בפועל, פותחים טופס נוסף או אובייקט מסד נתוניס אחר
כלשהו שאליו מגבילים את הגישה באמצעות אבטחה מבוססת-סיסמה. אס אין
התאמה, השיגרה מבקשת מהמשתמש להקליד את הסיסמה המדויקת מחדש.
פרק 7: מודולי מחלקה, טופס ודוח | 345
(8חוז50 5 או ,8חס | 5 0וקחח6)/וס6 סט5
סח 60 5 6701 חחוס
50 5( .50501 חחוס
רבק פס סכה 5 1חזק חזוס
5 51 וחוס
.וח 60 30 6676006 חר 60 6 ה5516א '
חר 8.00 0 צוסא = 001 56%
הסוח 66066.0 = 660 ה 6060 1 חס
.1 0 0ש|855 .8 675ז6חה זה השוצ +ה6ר55006 5001 %טס סז '
86 0;7ח0] 56076% 5זסזסחהזהק" = .]507500
8 " 2855 105 וחסז) 6זסשצ855ק ,6610שסו|קוחם 56|666"
"56076 = 6610ץס|קוח= 6זסח/"
1 = 6% 80 60. 601
3% = 06ץ דחו 601.60
( 03 ,301006007 ,"56076 )601.8 = 1וחזק 56%
60 = ס6טןה/. 1 חזזס
1חזס 0חה6קקה.5ז60 רחב זהק. 601
סז א%8חץ5 .501 8חוחה6866 זס1 6חו! ץסחהּח א '
חר 661.60 שחוזק. טפס - '
6
שא = 561 56%
1 חה6ק5%1.0ז
חסחד או = ("6סצ8550ק")6|05ו=. 5%1 +
= ,הסחהוחזס?ח1פץ ,". חו חס שוחסס6|6/" 15050
"2000 266655 1167050 סחוו וחהזטסזק"
6
!וע ,".0זזסא355ק 86ַח8ח6 זס חהו3ח3 ץזד .6זסצו5פהק סו|העח1" א0ס8 ₪15
"2000 66655 167050 חחוו וחהזסזק"
+ 0חם
50 06ח=
טופס הכניסה השני
תרשיםס 7.2 מציג את הטופס שמוצג בעת שהמשתמש בוחר לשנות את הסיסמה
שהוקלדה עבור קוד העובד המתאים. כל תפקידו של הטופס מתמצה בהנתחיית
המשתמש לאשר את והותו. המערכת דורשת את האישור בטרס תאפשר למשתמש
לשנות את הסיסמה. בנסיבות רגילות, תיבת הטקסט הראשונה מתמלאת על ידי
הטופס שטוען אותה (עיין בשיגרה הקודמת, 6|66 6זסאו855ק/ו60\6). כל שעל
6 ח/ 2000 06655
המשתמש לעשות הוא להקליד את תאריך תחילת עבודתו וללחוצ על א%וחפט5. הדבר
החשוב כאן, הוא לנצל שדה שערכו ידוע לעובד בלבד. באפשרותך לנצל שדה נוסף אחד
או יותר כפי שתמצא לנחו.
)= זט -] : !הסח /צחוז! 83
הזזס-] הסוזהוחזזו)חס-) 66ץס!קוח=
ח :10 ספעסופוח=
| :3 פזות
| וא | מוהזט5
תרשים 7.2: טופס הכניסה השני שמנחה את המשתמש לאשר את זהותו
הקוד ברקע הטופס
הטופס מפעיל שאילתה כשהמשתמש לוחתא על לחצן +חפט5. מודול מחלקת טופס
מעבד את נתוני השאילתה ומתאיס את תוצאת קבוצת ההחזרה לקלט המשתמש.
שגרת האירוע שברקע לחצן 8וחפט5 כוללת משפט חום שיוצר עותק של מודול
המחלקה 16550!8553ץ1 עס הפניה אל 665516סזק. שורת קוד שנייה מפעילה את
השיטה 1חזהסח/ של המחלקה, כפי שניתן לראות בקוד שלפניך.
()א6116 6050016 50 ס6אהּעוזוק
3 ץז שו46] 5 665516סזק וחוס
(0806 6ז628+6)%071 , (10קות6005)פח. 61 1חז ה סח//. 66556סזוק
50 0חם
הפעלת מודול מחלקת הטופס
שגרת בדיקת המידע של הטופס השני מופיעה בהמשך. היא מנצלת שאילתת פרמטר
כדי לבצע בדיקה של תאריך תחילת ההעסקה של העובד בעל קוד הזיהוי הנתון.
הקלדת המשתניס (שים לב לפונקציות פַח61 ו-60866 בשיגרה >6ו|6 06פט05ח6) לפני
שעובריסם למודול המחלקה, מאפשרת לנצל את יתרון אפשרות הקלדת הנתוניס
בהצהרה 2878706675 וגס את הקלדת הנתוניס בטבלה. ללא הקלדה זו, היה על 06655
לבצע המרות פנימיות לסוג הנתוניס 0%ח8וז8. העיצוב הבסיסי של הודעות הבדיקה
וההחזרה דומה לזה של בדיקת הסיסמה. אם תאריך תחילת ההעסקה שבטופס
מתאיס לזה שבטבלה 665ץסומוחם, השיגרה תפתח את הטופס השלישי.
פרק 7: מודולי מחלקה, טופס ודוח | 347
(86 5 8 ,חח ! 5 0וקוח1)6וח ה סח/צ פט5
סח וח 60 5 601 וחוס
54 45 50501 חחוס
רבק פס סכה 5 1חזק חחוס
5 501 חחוס
וח 60 30 6676006 חר 60 6 ה5516א '
חר 0ס6. כ סכה צוס = 001 566
הסוח 60.00[ ק 66 = 660 ה 6060 1 חס
.1 60 355]00 .8 5ז6+6רחה זהכן הוצ +ה06ח5%006 .5001 +טס בטוז/ '
8 " ,6610ץס|קוחם 56166 ;8חס | 1510 5זסזסוחהזבק" = .507501
"ס1פח6610=1ץס!קוחם 6זסח/ 665ץס|קוחם וחסז- 6סהס6זות"
1 = 6% 807 600. 601
3% = 06ץ חר 601.00
(0ח1 30738 ,%6007ח301 ,"זה" )6 601 = 1וזכ 56%
60 = 6טןב/. 1 חזזס
1חזס 0חהסקקה.5זסז6רח ה זהק. 601
סז אה%חץ5 .501 8חוה6866 זס1 6חו! ץחה א '
חר 60 . 1 60 שחוזק. פטססס
.חר 60 66016אם '
6 ו
.66 6!סה ד .5 זטסח1 60666
עצוס = 51 56%
1 ה6ק561.0ז
החד 0 = ("6ז608זוה")51ז זז
"00ש8550 8060 חוחפ" וחזסז הס קס. הס
קוח ( "1 ס הרת" )רתס = 10קות 6 (" 673550 הזז" )רתוס
"זר סח וח" , וח'זס-86 6|056. 6וח6ספ
6
= ,"וט זס הו388 ץזד .6610ץסוקוחם זסז ופצ +סח סזור" 80 5וו
"2000 66655( 5016סזסו] פחוהחותהזטסזק" , |ה6טוז סע
+ 0חם
50 06ח=
טופס הכניסה השלישי
תרשים 7.3 מציג את הטופס האחרון שמופיע כשהמשתמש לוחת על לחצן אוסט5
בטופס השני, לאחר הקלדת תאריך תחילת ההעסקה המדויק שלו. הטופס כולל שלוש
תיבות טקסט. אחת מיועדת לקוד העובד (תיבה זו מתמלאת מעצמה בנסיבות רגילות).
תיבת הטקסט השנייה מיועדת לסיסמה החדשה, והתיבה השלישית מיועדת לאישור
הסיסמה. אס אין התאמה בין תיבות הטקסט האלו, המערכת מציגה למשתמש הודעת
8 ח/ 2000 406655
התרעה מתאימה. אס המשתמש לותצ על לחצן אאוחטט5 מבלי להקליד ערכים בכל שלוש
התיבות, תופיע הודעת תזכורת נוספת. לבסוף, אס הטופס עונה על שתי הדרישות
הללו, מודול המחלקה שאליו פנה הטופס מעדכן את הסיסמה עבור העובד בטבלה
5
<1ם) = | יי ב ו ו ו -
וחזס-] ז0צצ355 6ִהַחה63
ח :10 66יס|קוח=
+ 55ב
:355 ]חס >
: וקו
8 | הסוסה סולהשתזו ו
₪
<
0 %*20065 ]/050ז0ו₪1 [ חוחוחוה סז
.- ,
355 אופחו זגוסץ טהו!!ותתפוו5 6זס/6ם 65חזח6 || 6ו6!קוס0 6356| (נ
0 4/006%5% ]/050ז116 הַחוחוחוב זףסז2]
.וספ זט חס זפ)ה46-6] .וברח וס 0 טזטש355 = חזו/חס-) חב בזםו355 (נ
0 %*20065 ]/050ז0ו₪1 [ הוחוחוה זטסז
=
.החזס] 915 ]₪1 זס הסוזבסוזהשרזגוב. 6שעסווח= 0 הזוס .30000160 5 טזס55בם אופחו זגוסר 3
תרשים 7.3: הטופס השלישי, שמאפשר למשתמש לעדכן את הסיסמה
פרק 7: מודולי מחלקה, טופס ודוח 349
הקוד ברקע הטופס
המודול שברקע טופס ה הוא המעניין ביותר במקרה שלפנינו. המודול מבצע אימות
נתוניס, במקוס להעביר אותס למודול המחלקה. גם שיגרה זו מפעילה מודול מחלקה
עבור משפט 501 שמעדכן את סיסמת העובד.
ההפרדה בין אימות הנתונים ועדכון מסד הנתוניס מציגה היבט נוסף של יישוס מודולי
מחלקה - ביצוע משימות רגישות באמצעות מודול מחלקה. כך ניתן לתקנן את
המשימות ולהבטיח ביצוע הולם. מרכיבי יישוס נוספים שאינס מחייבים תקנון הס
מועמדים טיפוסיים להתאמה אישית על ידי מחלקות משתמשי הקצה.
הפונקציות 66% ץ+ו6קסזק ו- 16% ש+זוסקסזפ | לוגיקת אימות נתונים מיוחדת זו
מבוססת על זוג הפונקציות 661 ששזוסקסזק ו- 166 שזסקסזק. האירוע 6700086 של כל
אחת משלוש תיבות הטקסט מפעיל את הפונקציה 16% ץוסססזס. פונקציה זו מעדכנת
את ערך המשתנה 4||=!!60 ל-6טזד או 56|" (אס כל התיבות התמלאו בנתוניס חוקייסם,
ערך המשתנה הוא 6טזד; אחרת, הערך 56ו4ז).
הפונקציה 66% וקסוק משקפת את מצב שלוש תיבות הטקסט בעזרת המאפיין
600066%!| של הטופס. השיגרה >6ו61 %/וח0500וח6 בודקת ערך וה כדי לקבוע אס כל
שלוש התיבות מסומנות. אס הערך הוא 8|566=, השיגרה מציגה הודעה שמזכירה
למשתמש להשלים את הקלדת הערכים בכל התיבות. אחרת, שגרת אירוע הלחיצה
בודקת אס יש התאמה בין תיבת הטקסט של הסיסמה וזו של אישור הסיסמה. אס
לא, תוצג הודעה נוספת שתזכיר למשתמש להקליד סיסמה תואמת. לבסוף, לאחר
שהמשתמש עבר את שני השלבים, השיגרה מפעילה את השיטה 5ששפא של המופע
המקומי של המודול 65%0!8553 דץוו.
ח00!68ם 25 חסו!=||ה 6אהעוזק
()08%6( 16061 וחזו1חה0 500 ס6אהּעווק
הזו 600 = 66%ה600!!₪. ₪6
50 06ח=
()67(008%6א כ1קות0 50 ס6אהּעווק
קוח = 1!600066%. 6
סט5 0חם
()008%6ז6ש1 זסצ 07855 סט5 ס6אהעוזוק
|0זס/%2855א = 16000666 16
50 6ח=
0 ה 2000 406655
(ט|3צוסחע)א111!600066 1.6% שוסססזק 6ווטגוק
= 0 ("" = 5010 0 (10קותםאס)|וטא15) זז
| 0 ("" = 0זסצ855ק00 0 (0זסשש0060855)!|טא15)
החד ("" = וזו הס06 זכ (ותזה60%60)ווט15)
6 = ססוון=||ה
6
6טזך = ססוווח||ה
+ 0חם
ץזסקסזק 0חם
()6000666!| 6% שזסססזק 6ווטגוק
6 = 6000666ו|
ששזסקסזק 0חם
()א6ו61 605006 0ט5 6סהעוזק
3 עוסא] ₪5 /ק6ז3 קט חזוס
הסח ד 8156= = 600066%!|₪.6 +
8 " 061076 607165 || 606!ר 60 16856" אס וו
,הסחהוסזח1פט ,".0זסעש855כ ששח זטסץ פחואוותטט5"
"2000 266655 1167050 סחוו וחהזסזק"
החד הזוה660א% <> 0זסשש855ק)א )56|
8 " 0%סח 00 0זסצ855? וחזוהס6 300 0זסצו355ק" א0ס8 150
,הסוט הו זס?ח1פע ,".ה0% זס 6חס ז₪6-60%6 .חה866וח"
"2000 266655 1167050 פחוו ותהזטסזק"
6
623550 , 10קות=א6 /שק סא הקנ
+ 0חם
סט5 0חם
()א6ו61. חופס 601 50 6סהעוזק
"00ש355 קט ח1רח" והזס+ה6סס. סכ
זו = 510 ("6וסצ355 קז מח1רחזז" )רתוס
0 = 0 סשש855קאט. ( "וס 55 טס הזח" )רז ס=]
"0 55 06 ה ת6חזו)" , וח'זס-36 6|056. 6וח6ספ
סט5 0חם
()66ו|6 5|א05ח6 0ט5 6סהעוזק
6
50 06ח=
העברת ערכים לטופס אחר שתי שגרות נוספות משלימות את רכיביו התפקודיים של
המודול שברקע הטופס השלישי. שגרת אירוע לחיצה ברקע של לחצן 66עס!קוח=
ה0וז68חה6חלטה מחזירה את המשתמש לטופס הראשון וממלאת את תיבות הטקסט של
קוד העובד והסיסמה בערכיםס הלקותים מהטופס השלישי. רכיב זה משחרר את
פרק 7: מודולי מחלקה, טופס ודוח 351
המשתמש מהצורך להקליד מחדש את הנתוניס מייד לאחר האימות, אך התזרה
לטופס הראשון מאפשרת נקודת כניסה יחידה ליישוס. הדבר מפשט את תתחזוקת
היישוס בטווח הארוך. לחצן היציאה של הטופס, זואם, סוגר את הטופס.
הפעלת מודול המחלקה
מודול המחלקה המופעל על ידי המודול שברקע הטופס השלישי, מנצל ביטוי מחרוזת
כדי לחשב משפט .501 שאובייקט חאו 60 מעדכן בעזרתו את סיסמת העובד. זוהי
דרך אפשרית לייצוג מחרוזת (כגון ערך הסיסמה) בתוך מחרוזת אחרת (משפט 501
השלס). שיס לב לגרשיס הכפולים הרבים, הן לפני והן אחרי ערך הסיסמה החדש.
אלה קודי בקרה (60065 650806) לייצוג גרש כפול בתוך זוג נוסף של גרשים כפוליס.
מלבד צורת הקינון של מחרוזת בתוך מחרוזת (בהתאם לכללי התחביר של גפצ), הקוד
קריא למדי. משפט קטע הודעה בסוף השיגרה מאשר את שינוי הסיסמה ומנחה את
המשתמש כיצד להמשיך.
(0חוזז5 5 סזסצו855קט ,חַחס1 5 0ו6)/)קעעסו פט5
סח וח 60 5 601 חחוס
54 45 50501 חחוס
.וח 60 30 6676006 80 חר 60 6 ה5516א ד
חר 5.60 סכה צו6 = 001 56%
הסוח 060.00 ק 66 = 660 ה 6060 . 1 חס
.5 3 085560 +0 חהסו+ו56חו 6+ 66 סח ;8חו507 501 06 6חו6כ ד
8 " 2855/0105 ם דקש" = 50501
= 8 " """ 8 0זסצו55הקטוא 8 """ = 6זסצ855ק.05זסאופ5בק ז55"
";" 8 610 8 "=610סץס|קוחם =מםח/"
סחוזק. פטטסס
הז 0 חר 60 6+ סל פַחו507 5001 6 ח6ן55א '
1 = 6% 80 600. 601
3% = 06ץ דחו 601.60
6
6 ה סוט רזוח 60 '
= ₪ " .36660060 15 0זסצ855כ צוסח זטסץ" אס8 ₪50
8 " זס ה680ו חה6 טג 66ץס!קוח= 60 הזט66ה"
"60655 05016ז6ו1] פחווחותהזססוק" ,הסטהחוס+ה1פצ ,".וחזס? 5וחז זאם"
טפ 0ח=
2 הח 2000 406655
תכנות אירועים לתוך מחלקות
מותאמות אישית
באפשרותך לנצל את %88 ב-866655 כדי ליצור מחלקות ליצירת מופעים של
אובייקטים, אך אובייקטיס של 84/ אינס מסוגלים ליזוס אירועים בעצמסם. יחד עס
זאת, תוכל ליצור מחלקות שמבוססות על ספריות סוג ופקדי 606% שמפיצים את
האירועים שלהס בסביבה מארחת. במקרה של אובייקטים שמפיצים אירועים, יישוס
84 יכול לארוז קוד סביב אירועיס שמתרחשיס בתוך המחלקה. כששיגרה מארחת של
מופע מחלקה מפעילה שיטה שמחוללת הפצת אירוע מתוך המחלקה, שגרת האירוע
מגיעה אל המארת של מודול המחלקה (ראה תרשים 7.4).
האוסף ₪616760065 מתייחס בצורה היררכית לאובייקט חסטפסווסקא. מפעילים את
השיטות 200-016 ו-6/סוח6א כדי לאפשר ליישוס להוסיף ולמחוק, באמצעות קוד,
הפניות אל ספריות סוג. קבצי ספריה אלה מכילים תיאוריס סטנדרטיים של
אובייקטים, שיטות ואירועיס חשופים. כזכור, מודל האובייקט 8סססג תלוי בספריה.
ניתן להוסיף הפניות אליו ולספריות נוספות בצורה ידנית או באמצעות קוד.
1
6ז סז
6טססר 60855
5חסט= חש
ןטס
תרשים 7.4: מילת המפתח פזח6עםחאו/ מפיצה שגרות אירוע של אובייקט אל מארח
האובייקט, בעת התרחשות של אירוע
פרק 7: מודולי מחלקה, טופס ודוח 353
פרק 2 מסביר כיצד להוסיף הפניה באופן ידני אל שלוש הספריות של ססג. הסעיף
שלפניך מתאר כיצד להוסיף הפניות באמצעות קוד אל ספריה או פקד 4606% כלשהס.
באפשרותך ליצור הודעת אישור כשהיישוס מסייס להוסיף או להסיר הפניה.
שתי מחלקות אירועים מוכללות
מודולי מחלקה כוללים שני אירועיס מוכללים: 26ו|108ח1 ו-6החווז6ד. האירוע
6 חן מתרחש כשיוצריס מופע חדש של מודול מחלקה. יוצרים מעטפת עבור שגרת
האירוע 26ו|₪8וח1 על ידי בחירת 61855 מתוך התיבה 0166% ו-8831126וח1 מתוך התיבה
6 באפשרותך לעשות את כל הדרוש בשגרת האירוע 26ו8שוח1 כדי להכין את
מופע המחלקה לשימוש.
שגרת האירוע סופחווחופד היא כלי הניקוי לאחר ביצוע היישוס הנוכחי. פעולת הניקוי
יכולה להסתכם בהגדרת הפניית האובייקט בתור פחווחזסא. האירועיס 6?|אטוח]
(-806חוחזד מתרחשיס פעס אחת בלבד בתחילת חיי מופע המחלקה ובסיומם. זו
הסיבה שאין הס שימושיים ביותר ליצירת התנהגות אינטראקטיבית או דינמית
בהזדמנות כלשהי, למעט ביצירה ובפירוק של מופע של מחלקה.
שימוש במילת המפתח %6חסעםו%ו/
ללכידת אירועים שהופצו
מודול המחלקה שלפניך מנצל את מילת המפתח חס6עםוטו/ כדי ללכוד אירועיס
שהופצו באמצעות האוסף 065ח₪6/076. אוסף זה כולל פריט נפרד לכל פריט שנבחר
בתיבת הדו-שיח 065ח₪61676. האירועיס 1670060 ו-0/60וח6 ת6ז! מתרחשיס רק
כשהקוד מוסיף או מסיר הפניות. אס משתמש משנה את האוסף 065ח₪61676 באופן
ידני, אירועים אלה אינס מופעלים.
6 6065 הסטקס
.ח0ו60|!660 616760665 %ה656ז62ז %0 80|6וזה8ע 66%[ט0 6זה!66ס ד
5 5 616760665+/0 פלחסעם תטו/ 6ווטגוק
.06 6/1616760665 8|!26וח! ,6768560 5| 6|855 01 6סחה%פחו חשח/ '
()26ו|108ח1 0|355 500 סזפטוזק
5 הסול68ו|קקג/ = 0/%4616760065 56%
טפ 0ח=
.0% 0+ 6/1616760665 56% ,60/60 15 06ח5%8חו חסח/ש '
()6זה חורתז6 ד 61855 500 סזעוזק
0חוה00%] = 8616760665+/6 56%
סט5 0חם
4 ח,/ 2000 406655
.0 58 61676066 החשש 655806 עְב|ספוס '
(61676006/. 66655 5 61676006 |3/ץ )106700060 665ח6/%%01076 סט5 ס6העוזוק
| ,".30060 0" 8 ₪60676006.806 8 " 0+ 60676006" אס ₪15
"2000 66655( 16705010 פחורחרת בזוססזק" , הסטפווס+ה1סצ
סט 0ח=
,6 5 61676066 השעו 655806 עְב|ספוס '
(₪61676066. 66655 45 61676006 |3 8 )60/60 1660 665ח0/%%61076 סט5 ס66העווק
".60/60 "8 61676006.]86 8 " 0+ 61676006" אס ₪150
"2000 06655( 0500זסו] הווחו סק" , הסטפווס+חה1סצ
סט 0ח=
הפעלה וסיום של הפניה מסוג 5זחוסעם וזו/
משתמשיס במילת המפתח פשחסעםוטו/ בצירוף מחלקה שמפיצה אירועיס. המשפט
6ופטש במודול המחלקה שהוצג קודס לכן, מצהיר על הפניה (665ח₪6/676+/6) אל
האוסף ₪6/6760665 באובייקט היישוס של 866655. מילת המפתת פ%חסץםוטו\ שבמשפט
מאפשרת למודול המחלקה ללכוד אירועיס שהופצו על ידי האוסף 665ח₪6)676. שגרת
האירוע 108|26ח1 61855 מגדירה הפניה. כזכור, לא ניתן לנצל את מילת המפתח 6
עבור הפניה שהוצהרה באמצעות סח6עםוטו/.
אריזת קוד סביב אירועים שנלכדו
שתי שגרות אירוע במודול המחלקה, 1667406 ו-6ע₪600 ח166, מפעילות משפטי קטע
הודעה. משפטים אלה מציגים הודעות שנותנות שס להפניה ששיטה מוסיפה או
מסירה. שגרות האירוע מציגות את תחביר הקוד המותאם אישית לאריות אובייקטים
שמפיצים אירועיס. במקרה זה, האובייקט הוא האוסף 60665ז86/6. שגרות האירוע רק
כותבות את שס הספריה שהוספה או הוסרה מהאוסף 665ח₪6/676.
מודולים סטנדרטיים הגורמים לאירועים
בדומה למודול מחלקה כלשהו, יש צורך בשיגרה אחת או יותר של המודול הסטנדרטי
כדי ליצור מופע של המחלקה (ראה דוגמה בהמשך) וכדי להפעיל שיטות, להציב ערכי
מאפיין או לקרוא ערכי מאפיין. באזור ההצהרות של המודול המארח את המחלקה,
כולליס את המשפטים חחוס ו-6|טטק עס מילת המפתח ופא ושס המחלקה. על ידי כך
יובריס מופע של המחלקה ומגדיריס הפניה לאובייקט (6ח6/ש)₪6[פס בדוגמה).
תחביר מודול סטנדרטי של אירועים
אס המופע של המחלקה מפיצ אירועים מתוך אובייקט מוטבע, עליך להשתמש במשפט
ופט עס מילת המפתחת פח6עםחסו/. משפט זה חושף את האירועים למודולים נוספיס
שמפניס למחלקה. כשמפעילים את השיטות מתוך מחלקת הרקע, יש להפוך את
פרק 7: מודולי מחלקה, טופס ודוח | 355
הפניית האובייקט המקומית (65ח6עם861[פס), ההפניה שבמודול המחלקה החושפת את
האירועיס (065ח6/8₪6/676) ולאחר מכן שס שיטה ספציפית, כגון 6וחסז-800 או
6שסוחסח. בניגוד להפניה מקובלת למודול מחלקה, ההפניה הנוכחית מצביעה על שיטה
של אובייקט המקור בהצהרה פזח6עםחסו/ץ.
.5 61/6055 01 5%006ח1 צ6ח 076816 '
5 עס 45 פזהסעם)6[טס הזוס
()61676006 600>סעח1 5
.6 0660זק 0061676006 60 ץזהזסו! 6 +0 ההכ ה 6חהחהּח 6 5פהק '
"50.0 00 5556 1!65- הסוחר ס1!65= ההז סזק:6" 06ח6076 00
סט 0ח=
()61676006 60/6 6אסעח1 פ5
6 וס סח [8חז6זח! 1(56) .61076066 8ח150א6 01 6חחגּח 55בַק '
(.61676066ז 80000 השחצ 5זה68ק3 6הההח 5876 ,56| 65וצוסססזק '
"₪0(" 60676006 60/6
טפ 0ח=
(57108 45 76ַ6883!ן-61676066)507 00 טט5
(6ח507-1!683) 1!6= רתסה- 400 616760665 )עס. )חס 61 [סס
סט5 0חם
(8חו57 5 6136 06)507 0760 סרח טט5
(6 5776108 )6616760005 61-65 00 6עסרח6. 676760665 עס. פ%הסע 0 [סס
סט5 0חם
הדוגמה שלעיל מוסיפה הפניה לספריה שמאחסנת את המודל 180 (מודל וה מאפשר
לבצע שכפול 360 באמצעות ססג). מפעילים את השיגרה 0006/076066ה6)סעח1 כדי
ליצור את ההפניה. השיגרה קוראת לשיגרה נוספת, 66ח0006/676, בעזרת תחביר
להוספת פריט לאוסף ₪6/0760665 באמצעות מודול המחלקה 65ח6/ם)₪6. הספריה
המאחסנת את מודל 380 היא ספריית קישור דינמי (11פ) שנמצאת בדרך כלל בתיקיה
0סג שהנתיב שלה הוא 0סס\ ח6ז5ץ1!655=₪ חהסווח1!8560= ותפזחָסזק הפעלת השיגרה
6 סרח 6אסעח1 מבטלת את הפריט 380 מתוך האוסף 065ח₪6/676. היעד של
0 הוא המאפיין 6חג3 של הפריט באוסף 065ח₪6)676.
הערה:
כדי לגלות את הארגומנטים של השיטות 6" 0ז400 |-0/6ח₪6, הוסף
הפניות באופן ידני. לאחר מכן, מספר את פריטי האוסף ₪6)6/60065
באמצעות המשפט ח866ם...זס] תוך כדי הצגת המאפיינים שלהם, 6ח8א ו-חזפּקו|ט=.
השתמש בערכי מאפיינים אלה כדי לזהות בצורה ייחודית ארגומנטים של השיטות
6ו וס 00 |-6עסוח6.
6 הח 2000 406655
הרחבת היישום
באפשרותך לאמ בקלות את המחלקה ₪6/60|855 על ידי שימוש בשיטות 66ח00₪6)076
ו-₪60/6861676066 כדי לאפשר תהליך בחירה מקיף וגמיש יותר. לדוגמה, היישוס
שיצרת יכול לגזור את קלט השיגרה 06ח400₪6)676 מתוך אוסף של ספריות סוג, קבצי
הפעלה, פקדי 6%ש860 ואפילו מתוך קבצי מסד נתונים. ניתן להציג למשתמש תיבה
משולבת ובה רשימת הפניות להוספה או להסרה. לחילופין, השיגרה יכולה לבחור
מתוך רשימה המבוססת על גורמים נוספים, כגון יעדי המשימה של המשתמש.
שימוש באוספי 811
אס אתה נמנה עס המפתחים הנוהגיס לעקוב אחר האובייקטיס שלהס בפרויקט מסד
נתוניס (רובנו רואיס ואת כחיוני), תשמח לדעת על האוסף 66!וטוססואו|ג, מכר קרוב של
האוספים פהזסת!|4 ו-6סס6ג||א אותם פגשנו בפרקיס 5 ו-6. חברי האוספיס
שמתחילים ב-||4 אינס אובייקטי מסד נתונים, כגון טפסים, דוחות ומודוליס, אלא
אובייקטיס מהסוג 86665500[60 המכילים כמות מינימלית של פרטיס אודות רוב
הסוגיס או אובייקטיס שמוריס במסד נתוניס.
מאפייני ₪66655020[66%
ניתן למספר את אובייקטי 0665509166 במהירות באוסף כלשהו. מאחר שאובייקטיס
אלה מצביעים על אובייקטיס שמורים, לא ניתן להוסיף או למחוק חברים. מבצעיס
משימות אלו באמצעות האוספיס הפתוחים שאליהס הס מצביעיס.
כשאתה פוגש באובייקט מסוג 6065509160 שהיישום שלך וקוק לפרטים נוספים
אודותיו, באפשרותך לנצל את המאפיינים 15108060 ו-6ח8\ כדי לבדוק את מאפייני
האובייקט שאליו מצביע האובייקט 16605509(6%. אוספי אובייקטים פתוחים אלה
כוללים מערך מקיף של מאפיינים ושיטות שאינם זמינים באוספי ון.
אובייקטי 06065500[60 כוללים מאפיין מהסוג 6קץז שמתאר את הסוג של
%% ולא את הסוג של אובייקט מסד הנתונים. ערך המאפיין 6קץד של כל
חבר באוסף 665!גו0סו!| הוא 5. ערך זה מייחד חבר מסוג 6665500[60 באוסף
65 מחבר אחר באוסף פוחזסת!|ה, שערך המאפיין מצד שלו הוא 2. בכל מקרה,
לא תוכל לקבוע אס אתה מטפל במודול מחלקה או במודול מחלקת טופס על ידי
בדיקה פשוטה של החבר 46065500[60 באוסף ||4. עליך לבדוק את המאפיין 6סץד של
אובייקט 6|ט0סא ואת המאפיין 0!6ו485100 של אובייקט חזסם.
האוספים !|
קיימיס שבעה אוספיס שמתחילים ב-:||4, פרט לאוספים 66|טבס6ו!|ה, פוחזסחו|ה
ו-₪600715!|. קבוצת עשרת האוספים (ראה תרשים 7.5) מתחלקת באופן טבעי לשתי
קבוצות בנות חמישה אוספים כל אחת. האוספים פחזס=!||ה, 5זוסק6ח!||ה, 5סז6פווה
פרק 7: מודולי מחלקה, טופס ודוח | 357
(-460055780065ז3כ|! | הס חבריס באובייקטיס | 07760706 | ו-70[666ק6006
באובייקט ה6800!ק4 של 266055. האוספים 65!מ74|, | 006065ו|, | פשסועווה,
5 ו-30856018078705זהכ!! | הס חבריס באובייקטים %08%8ח6זז6
(-60062808 באובייקט חסטפסו|כק של 466655. כשאתה מציין אובייקטיס מסוג
באוסף כלשהו מתוך עשרת האוספים, עליך להגדיר הפניה שמצביעה על
האובייקט הקודס הנכון. אס לא תקפיד לעשות זאת, תקבל שגיאה.
פא
00100100
ו ציייי ₪
זס 10818ח6זזו6
זז 00ז0ס4/151
תרשים 7.5: עשרת האוספים || והקרבה ההיררכית ביניהם לבין האובייקטים 0-ו
.8%8-|
סוג הקוב של 260655 מעניק ומינות מוגבלת לאוספים 6765ט0!ןת, | פאוסועו|ה,
5 500!!ה ו-805ז8560180פא8אהכ!1ה. כזכור, פרויקט של 60655 יכול להופיע
בקובץ המקובל בתבנית סשוח.*, או בתבנית החדשה של 2000 60655, ק80.* (פרק 4
מציג פרטיס בסיסייס של קוב 800.*, ופרק 12 עוסק בכך בהרתבה). האוסף
טסו זמין בקבצי 00ח.*, אך לא בקבצי סַחַ4.*. לעומת זאת, באפשרותך לטפל
באוספיס 1645/]], 0706600765 60ז5%0!| ו-85ז30ו6303560הכ!|א מתוך קבציס מסוג
ק8.*, אך לא מקבציס מסוג 00חח.*. היישומים יכוליס עדיין להפנות לתצוגות ושגרות
מאוחסנות בקבציס מסוג 00ח.* באמצעות ספריית האובייקט אססם.
8 הח 2000 466655
/ הערה:
ייתכן שתהית מדוע 2000 460655 מאפשר לטפל באוספים 65ו/ |-5ז0ו660סזק
מתוך קבצים מסוג 00*, אך אינו מאפשר טיפול באוספים פאסושו|
ו-5%07607706600765!|ה בקבצים מסוג 00ח.*. שני האוספים האחרונים לא נחשפו
לקבצים מסוג 00ח.* עקב הצורך למלא דרישות שקדימותן גבוהה יותר. טיפול
באוספים 1/6066 |-06600765ז600זס56!| בקבצים אלה יהיה אפשרי במהדורה
עתידית של 460655, או בעדכון מהדורתו הנוכחית.
מספור חברי האוסף !41
שלוש השגרות שלפניך מפגינות רמת דמיון גבוהה בתכנות אוספיס שוניס מהסוג ||א.
השיגרה הראשונה מבצעת מספור פשוט של כל המודולים בפרויקט הנוכחי. שים לב כי
היא מצהירה תחילה על 1[פס בתור סוג 6665500[64%, מכיון שהיא מקבלת את זהות
האלמנטים שבאוסף 65!טוססו|ג, שכולל אובייקטיס מהסוג 46665509[6₪. שים לב גס
שלולאת המספור עוברת על האוסף 65!טססוו|ג, אך הקוד מגיע לאוסף זה באמצעות
האובייקטיס חסספסו|קס4 ו-0[6זק+ח6זט6.
()8%64||]1000165ו6רחטח= פט5
6% 8 1[סס חחוס
5 תס ט. הסו63ו!קקה ח1 1[סס ה86ם זס=
40 ₪ ה דט 8 6קץד.1[סס 8 3 דפע 8 סוחהּא. 1[סס לחוזק. פטטסס
1 6%
סט5 0חם
( )5רחזס- ]686 רהטח= פט5
6% 8 1[סס חחוס
5חזס=]|.0[66%זק הש ט6. הסוס3סו!קקה ח1 1[סס הס8ם זס=
40 ₪ ב דפט 8 6קץד.1[סס 8 35 דטט 8 סוחהּא. 1[סס לחוזק. פטטסס
1 6%
סט5 0חם
()30165 ד||64ז8 סרח טח= פט5
6% 8 1ןסס חחוס
5 ד | 28%8ח6זזט6. הסוסהסו!קקה ח1 1[טס ה₪86 זס=
40 ₪ ה דפט 8 6כץד.1[סס 8 35 דפע 8 סוחהּא. 1[סס לחוזק. פטטסס
1 %;א6א
סט 0ח=
מבנה השגרות פוחזסת]||8%64ז6והטחם ו-30!65 דו|664זסהטחם דומה לזה של השיגרה
5ופטטטטטטטחם. יחד עס זאת, עליך לשיס לב להבדליס משמעותיים אחדים בין
תוכן השגרות. ראשית, האוסף הספציפי 26065500[66 משתנה מ-65|!גוססווו|ג
ל-פוחזס=!| בשיגרה אחת ול-65!סד!| בשיגרה האחרת. שנית, הנתיב אל האוסף
פרק 7: מודולי מחלקה, טופס ודוח 359
65| עובר דרך האובייקט 08%8+ח6זזט6, ולא דרך האובייקט 0[6%זק6ח6זוט6. לו
היה עלינו להחליף את האוסף 4|!13!65 ל-5או16/|| או ל-600706600765זסט5!|ה, הקוד
היה מסוגל לפעול גס בקובצ מסוג מְ40.*, אך לא בקובצ מסוג ט0חח.*.
התאמה לסוגי הקבצים ט6וח.* ו-כְ(ָבּ.*
המאפיין 6קץ 6600[סוק של האובייקט %0916ח6זזט6 מאפשר לגלות את סוג הקובצ בו
מטפלים, 05ח.* או מְ80.*. הדבר מאפשר כתיבת שגרות בודדות שמתאימות לסביבה
בה הן אמורות לפעול. הדוגמה שלפניך מציגה את שמן של כל התצוגות והשגרות
המאוחסנות בקובץ ס80.*, אך במקרה הצורך היא עוברת להצגת כל השאילתות
שבקובץ 00ח.*. כפי שניתן לראות, התחבולה היחידה הדרושה כאן היא לבדוק את
ערך המאפיין 06ץ6007[סזק. | המאפיין 6קץד של 6665500[605 מאפשר להבדיל
אובייקטיס של תצוגות שערך הסוג שלהס 7, מאובייקטיס שמצביעים אל שגרות
מאוחסנות, שערך הסוג שלהן הוא 9.
()160/52/]| 86 זסוהטח= 5
25 0051 6665500[660/ 5 1[סס וחוס
8 סוס ה6ו!קק = 0051 56%
חס ד 3602 = 6מץ 6607[סזק.66[סזק+ה6זט6. הסספסווססה זז
5וסו/!|ה. 0051 ח1 1[טס ה86= זס=
0 ₪ סב דט 8 6קץד.1[סס 8 פב דטע 8 6וחה. 1[סס %חוזק. פטוססס
1 >אס)]
5 5%0!!ה. 0051 ח1 1[פס ה86= זס=
0 ₪ ב דע 8 6קץד.1[סס 8 30 דטע 8 6וחה. 1[סס %חוזק. פטוססס
1 >אס)]
6
051.5 ח1 1[טס ה86= זס=
0 ₪ ב דע 8 6קץד.1[סס 8 פב דטע 8 סוחב. 1[סס %חוזק. פטוססס
1 >אס)]
+ 0חם
סט 0ח=
5וחז"וס-]!! ו-65!טססווו|ה
הדוגמה הבאה מנצלת את האוספים ||4 והאוספיס המתאימים של מודולים וטפסיס
פתוחים כדי לפתח רשימה של כל המודולים (לפי סוג) ומודולי המחלקה של טפסיס
בפרויקט. הואיל ומאפיין הציוו של מודולי מחלקה סטנדרטיים שונה מזה של מודולי
מחלקה של טפסים, הקוד מחייב בדיקה של ביטויים שוניס של מודולי מחלקה
סטנדרטייס לעומת מודולי מחלקה של טפסים.
0 הפ 2000 406655
כזכור, למודוליס יש מאפיין 6ץד, אך לטפסים יש מאפיין 6חְסוִַפּה. על הקוד לעבור
במחזוריות על חברי האוספים 65!ט6ס!!!!8 ו-פוחזס=!|ה, מכיוו שחלק מהמודולים
והטפסים, או אפילו כולס, עלוליס להיות סגוריס. בודקיס את המצב 15108060 של
האובייקטיס 46065500[60% ב-0|65סו!|8 וב-פוחזס=!| כדי לקבוע אם יש צורך לפתוח
מודול או קובצ טרס הערכת סוג המודול שלו, או כדי לקבוע אס לטופס יש מודול
מחלקה. השיגרה סוגרת מחדש טפסים ומודולים לאחר שבדקה אותס.
()05חז6|3551-0 וח /6קץ דץ₪ 65!טססון|בש115 פט5
5 0051 6665500[660/ 5 1[סס וחוס
החזזס=] 5 11 ,100016 245 01סח וחוס
6 הסוס ה6ו!קקה = 0051 56%
.ח60|!660 1060!65]|ה חן 00[6665 46665500[66% חשקס זסז ח56876 '
.ח06 0% 376 08% 10056 861056 0ח8 הסמ '
5 חן 0011 ה₪86 זס=
החד סט ד = 11.15108060[סס +1
סוחּ).1[פס 6011000!6כץ 5 |
6
36 1[סס 6|ט0ס1חסקס. חס
סוחּ). 1[פס 000!6סו601כץ 5 |
6וחהּ). 1[סס ,361000!6 056ו0.6ח6סס
+ 0חם
1 6%
.ח60!!6600 פוחזס=|| חן 00[6605 46665500[66% חסקס זסז ה66876 '
.ח6כ0 0% 376 08% %0056 661056 0ח8 הסמ '
5זסת!|ה. 0051 ח1 1[טס ה₪86 זס=
ח6ח ד 08060 1.151[טס +1
36 . 1[פס 0!6סו6 עה הו זס-65סס
6
6וחהּ. 1[סס וחזוס?ה6כס. 0וח6סס
36 . 1[פס 6!ט0סט6 עה הו זס-5טסס
6 1[פס ,וחזס-36 01056 60סס
+ 0חם
1 6%
סט 0ח=
פרק 7: מודולי מחלקה, טופס ודוח 361
(6 רה חס )6!טו0סוז601קץ 150 1 5
509 45 6סץד50 הזוס
.6ט]ה/ 06ץד 000|6ח 66006 '
החד 0 = 6סץד. (6 8 0סח)65!טסו +
"000|6 5000870" = 6קץד50
56
"100|6] 01855" = 6סץ 507
+ 0חם
.6 30 6החבּח 6!טססו זחוזק '
56 8 0ב דפע 8 6ההּ. (6 ה ססר )65!טססו שחוזק. פטססס
סט 0ח=
(6 ה )6 ]סה הו זס-65סכ טט5
.6 3 פח שו ]ו 6חהּח החזס? להוזכן שץוחס '
החד שגד = 85100016 . (6 רה תו )רחס +1
"6|ט0ס] 61355 החזס-]" ,8 30 דסע .8 6והההוחז? +חוזק. פטטטס
+ 0חם
סט 0ח=
עריכת מודולים באמצעות קוד
מאחר שניתן לבצע משימות רבות מאוד באמצעות מודוליס סטנדרטיים, מודולי
מחלקה עצמאיים ומודולי מחלקה של טפסים, סביר שהיישומים שתיצור יכילו
מודוליס רביס מסוגים אלה. בבוא הזמן יהיה צורך לתחזק אותס. מטלת תחזוקה
שכיחה היא הדרישה להוסיף או למחוק שורת קוד אחת או יותר בקבוצת מודולים.
סעיף וה מתאר כיצד להוסיף ולמחוק שורה בכל מודולי המחלקה הסטנדרטיים
והעצמאיים ולאחר מכן מסביר כיצד עושים ואת במודולי מחלקת טופס. הקוד של
מודולי מחלקה סטנדרטיים ועצמאייס מאוחסן בצורה שונה מזו של הקוד של מודולי
מחלקת טופס, ולכן יש הבדלים מסוימיס בין התהליכיס.
גישות עריכה
האובייקט 6|טססו כולל מערך שיטות ומאפיינים שיכולים לסייע בעריכת מודולים
באמצעות קוד. הדוגמאות בסעיף זה מבוססות על השיטות 65חו5671ח1, 6חו ו-
5 |6|606ש. שיטות אלו מטפלות במודוליס סטנדרטיים ובמודולי מחלקה, כולל
מודולי מחלקה עצמאיים וגס מודולי מחלקת דוח וטופס. שיטות אלו מהוות קבוצת
משנה של שיטות ומאפייניס שתומכות בניהול תוכן מודול באמצעות קוד.
השיטה 65ח1 10567 יחד עס האובייקט 6וטססו! משמשים להוספת שורה אחת או יותר
במודול. מספור שורות המודול מתתיל ב-1 ומגיע עד לערך שמכיל המאפיין
5 הטוס של המודול. השיטה קולטת את מספר השורה וארגומנט מחרוזת. אס
2 הח 2000 406655
עליך להוסיף שורות רבות למודול, הוסף את הקבועים +!ז6פט לביטוי המחרוזת
שמייצג את ארגומנט המחרוזת של השיטה. כשמוסיפים שורות באמצעות שיטה זו,
היא עוברת לשורות הבאות במודול.
השיטה 0 מחפשת מחרוזת טקסט במודול. היא מחזירה ערך 6טזד כשהיא מוצאת
את הטקסט המבוקש, או 98/56 במקרה שלא. אם ידוע לך בדיוק היכן נמצא קטע
טקסט מסוים, באפשרותך להגדיר עמודה ושורת פתיחה, ועמודה ושורת סיום. אס
אינך יודע את מיקומו של קטע הטקסט במודול, השאר את הארגומנטים של מיקוס
הטקסט ריקים, והפונקציה תחזיר את ערכי הטקסט שאתה מחפש במודול.
באפשרותך גס להקצות חיפוש לפי תבנית וחיפוש תלוי רישיות.
השיטה 65חו ]6/6106 מסירה שורת טקסט אחת או יותר ממודול. השיטה קולטת שני
ארגומנטיס: שורת פתיחה ומספר כולל של שורות המיועדות להסרה מהמודול.
באפשרותך לנצל את השיטה 8חו= כדי לחפש טקסט במודול. אס תעשה זאת, תוכל
לבסס את הבקשה של השיטה 65ח6/60611 על ערך ההחזרה של השיטה 6חו=.
הוספת טקסט למודולים
השגרות שלפניך משלבות את האוספיס 81!00065 ו-65|ט0סו כדי לערוך את הטקסט
באוסף של מודולים. ליתר דיוק, הן מוסיפות שורת הערה בתחילת כל מודול כדי
להכריז | עליו| שהוא מודול סטנדרטי או מודול | מחלקה. השיגרה
6||]!100!65%01056%ז8זסוחטחם עוברת בלולאה על חברי האוסף 65וטססאווה וקוראת
לשיגרה האחרת, שמעדכנת בפועל את מודולי היעד. השיגרה 000!65ו00ח561ח1
דורשת מודול פתוח, ולכן השיגרה הראשונה פותחת את המודול אס אינו פתוח עדיין.
לאחר שהשיגרה השנייה מחזירה את השליטה לשיגרה הראשונה, היא סוגרת את
המודול כדי להחזירו למצבו המקורי.
()0!65%017561%ס1]|| הסה זט רהטח= סט5
6% 8 1ןסס הזוס
.5 הסוח 65!טוססו!|ה הפטסזוף קססן'
;65| +ז6פחו 60 500 ||63 ,ח6קס 15 6|טוסוח ץז '
.5 6|056 חש 1175 00|6סח ה6קס 656 '
5 תס ט0. הסוס3סו!קקה ח1 1[סס ה86ם זס=
הסח ד שטד = 1.15108060[סס +1
6ח3. 1[טס 011000!65ס%ח1ו56הך
6
6 0011 6|ט0ס1ח6קס. חספ
6וח3. 1[כס 65!ט100]ס%ח561ח1
5 ,00[1.4306 ,3011000!6 0056. 0ח6סס
+ ₪0
1 6%
סט5 0חם
פרק 7: מודולי מחלקה, טופס ודוח 363
(6 חס )00!65 %0ח105671 ספ
6 5 01ס ,8חו50 5 6סץד50 חחזוס
(806 0000 )₪1000!65] = 001 56%
ז56חו %0 8חו7ל5 הסוחצו 6חו7ח06%67 %0 26 6|טוסוח 066666 ד
חסחד 0 = 06ץד.01סח +[
"6|ט00 50000870" = 6סץד50
6
"6|ט100! 01855" = 6סץד50
+ 0חם
6 ,1 65חו %ז56ח1. 01סוח
8 וחזס = 001 56%
50 6ח=
השיגרה 65!ט50100ח5661ח1 קולטת ארגומנט יחיד - שס המודול אותו יש לערוך.
השיגרה אינה מבצעת מעבר מחזורי כלשהו, מכיון שהשיגרה הראשונה קוראת לה פעס
אחת לכל חבר באוסף 65!טססוא||ה. השיגרה פותחת בהגדרת הפניה אל המודול ששמו
הועבר בצורת ארגומנט. לאחר מכן היא קובעת את סוג המודול שאליו ההפניה מפנה
ומכניסה ערך משתנה מחרוזת להערה שמציינת את שס סוג המודול. לאחר שנקבע
הטקסט שיש להוסיף, השיגרה מפעילה את השיטה 865ח567611ח1 על המודול שאליו
הוגדרה ההפניה.
מחיקת טקסט ממודולים
שתי השגרות שלפניך מוחקות שורה מתוך שיגרה. לאמיתו של דבר, הן מסירות את
השורה שהוספה באמצעות זוג השגרות הקודמות. עיצוב שתי השגרות הבאות גמיש
דיו, ולכן באפשרותך להרחיבן בקלות כך שיכילו מחיקה של שורות נבחרות רבות
מתוך קבוצת מודולים כלשהי.
השגרות מבוססות על לוגיקה כללית זהה לזו של זוג השגרות הקודס בהבדל עיקרי
אחד: זוג זה מנצל את השיטות 0ח₪ ו-₪6/606 כדי להסיר טקסט במקוס השיטה
5 [56ח1. לשיטה ₪06 חשיבות קריטית כשמתכוננים להפעיל את השיטה
65 |6!60כ, מכיוןו שהיא מאפשרת לקוד לקבוע את מציאותו של טקסט כלשהו
במודול בטרס תמחק אותו. במקרה שלפנינו, השיטה 6חו= מחפשת את המללה 6!טססוו
ברצף 40 התוויס הראשוניס בשורה הראשונה. השיגרה 100165 וחסז6!6000ש מפעילה
את השיטה 65ח1 ]26/66 כדי למחוק שורה אחת החל מהשורה הראשונה של המודול.
השיטה 85חו]₪6!606 מסירה שורות בצורה בלתי מותנית. יחד עם זאת, ניתן להפעיל
בצורה ידנית את הפונקציה 06/66 ס0ח/ כדי לשחזר טקסט שהוסר.
4 הח 2000 406655
()616%6 001650 ]| |86וסרהטח= פט5
6% 5 005 ,6665500[660/ 5 1[סס וחוס
החזס=] 5 1ח? ,100016 25 01סח וחוס
.5 הסוח 65!טססוז!|ה הפטסזו) קססן'
;6חו| 06!606 %0 500 ||68 ,חסכס 15 6|טטסוח זז '
.5 6|056 השח 115% 000|6סרח ה6קס 656 '
5 תס ט. הסו63ו!קקה ח1 1[פס ה86ם זס=
החד שט ד = 11.15108060[סס +1
6וחה. 1[טס 0!65ס]ו סזז6|6%6כ
56
36 1[סס 6|ט0ס1ח6קס. חס
6וחה. 1[ס 0!65ס]ו סזז6%6|כ
6וחהּ). 1[סס ,36100016 6|056. 0ח6סס
+ 0חם
1 6%
50 0ח=
( 36 00 )00165 ות 6166670 5
6 25 01ס חחוס
(0000086 )100165 = 001 56%
. "10006" ה|%8ה60 6860675 40 56זו ]ו 6חו! 5%זו 061616 ד
חסחד שטזד = (40 ,1 ,1 ,1 ,"סוטססוז")סחו=. 1 סח זז
1 ,1 65חו [6!6%6כ. 01סוח
+ 0חם
פחוהססא = 001 56%
טפ 0ח=
הוספת טקסט למודולי מחלקת טופס
שתי השגרות שלפניך מוסיפות שורה בתחילת כל מודול מחלקת טופס, ובה הערה כי
מדובר במודול מחלקה. במקוס לעבור בלולאה על כל האוסף 66וטססואו|ה, השיגרה
הראשונה עוברת על האוסף פחחסס!ו|. לכל חבר באוסף, היא קוראת לשיגרה
0-5
שיגרה שנייה זו מעריכה אס שס הטופס שהועבר הוא מודול מחלקה. אס הוא אכן
כוה, השיגרה מגדירה הפניה למודול שברקע הטופס. על ידי כך היא חושפת את
המודול. השיגרה מסתיימת בהוספת שורת ההערה למודול והגדרת הפניה אל פחוחשסו
כדי לשחרר את המשאביסם.
פרק 7: מודולי מחלקה, טופס ודוח | 365
()010561 5 זס=|| הס והטחם 5
6% 8 1[סס הזוס
;5 שרח פוזס=|!ג הפַטסזח+ קססין '
,6חו! +ז56ח! סל 6|ט0סח 6אסטחו 108060 15 החזסץ זו
.5 6!056 ה6ץ |0ח3 115% 0+ ה6קס 656 '
5זס=]|.0[66%ק הש ט6. הסוסהסו!קקה ח1 1[סס הס8ם זס=
חס ד 15108060 1[טס +1
36 0[1ס פס %0ח56701חך
6
6וחהּ. 1[פס וזוס?הסכס. 0וה6סס
36 0[1ס פוזס-%0ח56701חך
65, (,סחחה). 00[1 ,וחזס-36 60.01056סס
+ 50
1 6%
סט5 0חם
(6 רה הרת )פרחוס-567610%01ח1 5
59 45 6קץ 507 ,6!טסס!] ₪5 01סח הזוס
.006 06 ס6חו 6חו| +56חו 806 ז! 0+ 67676006 56% ,0!6סרח ₪85 וחזסת זך '
.006 הסח 76500706 67070066 06זה '
החד שטד = 85100016 . (6 רה תו )פס +1
6 סו . (6 רה חרתז1)פרזס-] = 01סוח 56%
"6|ט100!] 01855 וחזס-" = 6סץ507
6 ,1 65חו 567ח1. 01סרח
8חותזס = 001 56%
+ 0חם
סט 0ח=
מחיקת טקסט ממודולי מחלקת טופס
שתי השגרות שלפניך מסירות את שורת ההערה 110006 01855 מהשורה הראשונה של
המודוליס שברקע הטפסים. כפי שניתן להבתין, זוג השגרות מאמ) את התנהגותס של
מרכיבים קריטיים מזוג השגרות הקודם בנוגע להוספה ומחיקה של שורות. זוג
השגרות עובר בצורה מחזורית על האוסף פחזס=!|א, כמו זוג השגרות שהוסיף את שורת
ההערה בתחילת כל מודולי מחלקת הטופס של הפרויקט.
יחד עס ואת, השיגרה השנייה בזוג גה מנצלת את השיטות 6חו₪ ו-65ח] |6!606 כדי
להסיר את השורה הראשונה במודול, אס המילה 00016 מופיעה בתחוס 40 התוויס
הראשוניס בשורה. בכך היא דומה לשיגרה שמוחקת שורות מהאוסף 65!ט0סוו.
6 הח 2000 406655
()6!6%6 סרח ס-]| | 86 ור טח= פט5
6% 8 1[סס הזוס
;5 שרח פוחזס=|!ג הפַטסזח+ קססי | '
,| 60/6 0 6|ו00סח 6אסטחו 3060ס! 15 וחזסז זו '
.5 60565 ה6ץ |0ח3 115% ה'זס+ ה6קס 656 '
5זס=]|.0[66% קחש ט6. הסוסהסו!קקה ח1 1[סס חס8ם זס=
חח ד 15108060 1[טס +1
6וחה. 0[1ס פוזס-] וח0ז6|6%60כ
6
6וח8. 1[סס וזוס?ה6כס. 0וה6סס
6וחה. 0[1ס פוזס-] וח0ז6!6%60כ
65, (,סחחה). 0[1ס ,וחזס-36 60.01056סס
+ ₪0
1 6%
סט 0ח=
(6 ה חרז )רת ס=] וח 6166610 5
59 45 6קץ 507 ,6!טססו!] ₪5 01ס חזוס
6חו] 115% ]0 %5ח600%6 660% ח6ח* ,0!6סרח 85 החזס+ זך '
חק 15 6 ]| 6חו| 5%זו1 6 061666 סחה ,"ס|טססא" זסז '
.06 הסחעש 6500766 61676066 6|!טוססו 6סזה ד
החד שטד = 85100016 . (6 רה חר )רחס +1
6 (6 רה חותז1)פרחזס-] = 001 56%
חסחד שטזד = (40 ,1 ,1 ,1 ,"6וטססוז")0חו=. 1 סח +1
1 ,1 65חו ]6!6%6כ. 01סוח
+ ₪0
8ותזס = 001 56%
+ 0חם
סט5 0חם
פרק 7: מודולי מחלקה, טופס ודוח | 367
8
אובייקטי
6) 50סתסון/
כמרכיב של 2000 01006 670506ו1, חולָק 2000 66655( 670506% מבחר אובייקטים עס
שאר יישומי 07666. אובייקטים אלה מאפשריס ביצוע משימות כמו חיפוש קבציס,
טיפול בתכונת העזרה %ח85515/8 01606, עריכת שינוייס בתפריטיס ובסרגלי הכליס
הסטנדרטיים, ופיתוח של תפריטים וסרגלי כלים מותאמים אישית. נוסף לכך,
הבקיאות שתפתח בתכנות האובייקטיס הללו ב-866655 תשמש אותך גס ביישומי
6 האחרים - |66א₪ 6050%ווא, סזס/ 050%ז6וו!, ואפילו 6ַ3ק6חסז= 50%סזסווא. רוב
האובייקטיס פועליס בכל יישומי 00666.
פרק זה פותח בסקירה כללית על האובייקטיס של 0/666, ולאחר מכן מתמקד בשלושה
אובייקטיסם: ח6ז6568!ו=, המשמש לניהול תוכניתי של חיפושי קבצים; 0%ח₪55159%8,
המספק ממשק תוכניתי לתכונה 255150906 0866 במסגרת 06666; וכן 00875ח וח 60,
המשמש ליצירת תפריטים וסרגלי כליס מותאמים אישית.
שימוש באובייקטים המשותפים של 66ו/01
האובייקטיסם המשותפים של 01606, המופיעיס בטבלה שבעמוד הבא, תומכים במספר
תחומי פונקציונליות חשובים. חלק ממבני האובייקטים הללו אינס ומיניס בכל רכיבי
6. הטבלה מתארת את המבנים, מציינת אס וזמינותס מוגבלת לרכיבי 07866
מסוימים, ומפנה למידע נוסף אודותיהס בספר זּה. לקבלת עזרה מקוונת וכדי לעבוד
עס אובייקטיס אלה, פנה ל-ץזפזטו] 00166 9 01666 670506ווא. תוכל לעשות זאת
באמצעות תפריט פוססד (כלים) בעורך 8856 |פטפוצ (85/), או באופן תוכניתי (כפי
שיודגס בהמשך פרק זה).
פרק 8: אובייקטים ב- 06866 60506 | 369
אובייקטים משותפים ב-018106
האובייקט תיאור הערות
ח656876!ו=
600
| 3 5
סקז הסוהטססס
סק ]ודו
1200
השתמש באובייקט זה ובאוספים
שלו ליצירת סרגלי כלים, שורת
התפריטים ותפריטי קיצור, או
להכנסת שינויים בפריטים אלה.
באפשרותך להוסיף שינויים
בזמן-עיצוב באופן ידני או
באמצעות קוד ב8/. שינויים
בזמן-ריצה אפשריים בעזרת קוד
8/ בלבד.
השתמש באובייקט זה לתמיכה
בדרישות עזרה מותאמות אישית
עבור +ח551509 07866 והבלון של
551080%/ 0760).
השתמש באובייקט זה לייצוג
הפונקציונליות של תיבת הדו-שיח
זהו ייצוג של תוספת 60
ב-66655// וביישומי מארח אחרים
ב-07066.
אובייקט זה מאפשר החזרה
תוכניתית של מידע אודות התקנת
שפות, ממשק המשתמש והגדרות
העזרה.
השתמש באובייקט זה לטיפול
תוכניתי באשף התשובות.
אובייקט זה מייצג מאפיין מוכלל או
מותאם אישית של מסמך 068666.
לבחירתך עד 28 מאפיינים
מוכללים, הכוללים תכונות מסמך
כמו כותרת, מחבר, הערות, תאריך
הדפסה אחרונה, שעת שמירה
אחרונה וזמן עריכה כולל. אובייקט
זה תומך גם בתכונות מסמך
מותאמות אישית.
אובייקט זה הוא פרויקט ברמה
העליונה בעורך ה-+560 של
%). השתמש באוסף
הח6ל6[סזק | ד למעקב אחר
מסמכי ]1 במסגרת פרויקט.
66655 2000 8
ראה דיון נוסף ודוגמאות
בהמשך פרק זה.
ראה דיון נוסף ודוגמאות
בהמשך פרק זה.
ראה דיון נוסף ודוגמאות
בהמשך פרק זה.
עיין במדריך 0766 +ספסזסוו!
6 פ5'זסוחהזסָסזק 2000.
מנהל מעקב אחר נתוני זיהוי
מקומיים בפריסה בינלאומית
של 07600.
כולל מאפיינים ושיטות
לטיפול בקבצים שמחזיר
אשף התשובות.
מיועד למסמכי 6זסשו,
לחוברות עבודה ב-|66א=
ולמצגות ב-50%סקזסו!!
%חוסקזוסאוסק בלבד.
מיועד למסמכי 6זסשו,
לחוברות עבודה ב-|066א=
ולמצגות ב-50%סקזסו!!
%+חוסקזוסאוסק בלבד.
האובייקט תיאור הערות
אובייקט זה מייצג בלוק של 560% | מיועד למסמכי סזסוו,
בעורך ה-50706. לחוברות עבודה ב-|066א5
ולמצגות ב-508סז6ו1]
+חוסק סק בלבד.
+חס-300ז6\ | אובייקט זה מייצג את גופן ברירת מיועד למסמכי סזס/ו,
המחדל בעת שמירת מסמך כדף לחוברות עבודה ב-|066א5
60 ). ולמצגות ב-508סז6ו1]
+חוסק סק בלבד.
מאפייני ספבּטַבּזבּ0 66655
שלא כמו ב-06), |66א₪ |-חוסקז6/וסק, חסר ב-866655 האובייקט המשותף
ץאסמסזק+הסוחט6סכ, אולם הוא מעמיד לרשותך מידע דומה בעזרת שלושה אובייקטים
של %חסוחטססכ: 508ש15, סזח1ץזהוחוחט5 |-60ח567268. אובייקטים אלה זמינים אך
ורק באמצעות ז8ח09ח60 8080856 של 00[6065 60655 8% (סמכ). האובייקט
סזחזץזהוהוחו5 מכיל את כל המאפיינים המופיעים בכרטיסיה תקציר (עְזּוחט5)
שבתיבת הדו-שיח מאפייני מסד נתונים (865ז6קסזק 6פהּסַהַּזכ). האובייקט
0 מכיל את כל המאפיינים הכלולים בכרטיסיה התאמה אישית (וסשפט6)
באותה תיבת דו-שיח. האובייקט 50508 מכיל את כל המאפיינים המוגדרים
באמצעות האפשרות הפעלה (6₪00ז9ז5) שבתפריט כלים (5!|ססד), במסד נתונים.
הדוגמה הבאה מונה את אוסף המאפיינים של כל אובייקט ז6חו%9ח60 ספהּסי0 סמפ:
()5ק0זק כ והטח6 פט5
ץ סק 0 5 כ הזכ ₪5 ס0 וס
.6 606% 0+ 61676066] 661 '
זז = 00 560
.65055 זס? 0ח6801 זחוזק '
"65וזסקסז 06060 ז50" +חוזק. פטטטס
== ======כ = 0 56
.5 080808565 |25672611060 הסטסזח+ 1667806 '
055.5 08565 !5 חח 0.60 ח1 כ חהס8ם זס=
סטןה .כ ,6חחהּז.ק זחוזק. פטטסס
)סא
.65055 זס? 0ח6801 זחוזק '
%חוזק. פטססס
"65וזסקסזק ץורח 5" +חוזק. פטססס
"ששששבשבבבב=ב======" 60088.770%
פרק 8: אובייקטים ב- 06066 0506ז6א = 371
.5 08680856 10ח1/זה ו וחט5 הפטסזח+ 166856 '
550.5 08565.0 !5 חח 0.60 ח1 כ חהס8ם זס=
סטןה .כ ,6חחהּז.ק זחוזק. פטטסס
)סא
.65055 זס? 0ח6801 זחוזק '
+חוזק. פטטסס
"5סוזזסקסזק 15508" לחוזק. פטססס
פפשבבבבבבב-======"20900.77%
.5 08000856 15508 הסטסזח+ 167806 '
5 0655505 .5!081828565ז6 חוה6 00.60 ח1 כן ה86= זס=
סטןה .כ ,6חחהּז.ק זחוזק. פטטסס
אסא
סט5 0חם
האובייקט ה656376!-
השתמש בתבנית האובייקט ח6ז6568ו= (המוצגת בתרשים 8.1) כדי לשלב חיפושי
קבציס ביישומיך. תוכל לחפש בכונניס הקשיחיס של המחשב או בכונניס של מחשבים
המקושריס ברשת תקשורת מקומית (אג)). אובייקט ּה חושף את הפונקציונליות של
תיבות הדו-שיח פתיחה (ח6ק0) וחיפוש (חחו=). כפי שמתואר בתרשיס 8.1, האובייקט
5 טס והאוסף 6505 זשז6קסזוק תלוייס מבחינה היררכית באובייקט 60ז6568וו=.
ה0ז6598-]
8 טס
(981 דץ1זסכןסז) 8818 דקדוסטסיזוש
הסו+60!!86
0%
תרשים 8.1: האובייקט 60ז1!6568= הוא אחד האובייקטים המשותפים של 07666.
באפשרותך להגדיר חיפוש קוב בשתי דרכים בסיסיות, וכל גישה מתאימה
לאפשרויות שונות בתיבת הדו-שיח פתיחה.
> חיפוש לפי קריטריון יחיד (שס קוב> או תבנית, סוג קוב, או נתיב).
> חיפוש תוכניתי לפי קריטריוניס מרובים, בעזרת האוסף 65% 5ו6טסזס.
2 הח 2000 466655
בגישה השנייה, תוכל להגדיר ארגומנטים אשר ישמשו קלט לתיבת הדו-שיח פתיחה.
השתמש בתיבת דו-שיח ואת כדי לציין, תנאים מרובים לחיפוש, וכן כללים לשָרשור,
כגון האופרטוריס 0ח4 או זס. השתמש באובייקט 6וו0₪חטס= כדי למנות את הקבוצה
המוחזרת בשתי הגישות.
לאובייקט 116568160 שתי שיטות : ח56816שש6 ו-660%6אם. השיטה 6568160 מאפסת
את כל מאפייני ח6ז6568!ו= ומחזירה אותס לערכי ברירת המחדל. בנקודה את תוכל
לערוך את המאפיינים שנדרשיס בהסם ערכים מיוחדים עבור חיפוש קוב מסוים. אס
לא תפעיל את השיטה ה6ז568ו6 בתחילת המפרט לחיפוש, החיפוש החדש יירש את
הגדרות המאפייניס של החיפוש הקודס.
באפשרותך להפעיל את השיטה 560066 כדי להפעיל בחיפוש קוב לאחר שהגדרת
אותו. שיטה ואת מקבלת מספר ארגומנטיס השולטיס בסידור שמות הקובצ
באובייקט 65!וסחטס=, ובאפשרות לעדכן, או שלא לעדכן, את אינדקס הקבציסם לפני
עריכת חיפוש חדש. ערך ההחזרה בשיטה זאת הוא מספר שמות הקוב התואמים את
מפרט החיפוש.
ניהול חיפוש קובץ בסיסי
רביס ממאפייני האובייקט ח6ז6508!ו= מאפשרים מפרט חיפוש גמיש. הקוד שבדוגמה
הפשוטה הבאה מגדיר חיפוש ומאחזר את הקבוצה המוחזרת שלו. הוא יוצר מופע של
האובייקט באמצעות המאפיין ח65086!ו₪ של האובייקט חסטפסו|סקא. לאחר מכן הוא
מחזיר את כל הגדרות המאפיין ה1!656876-] לערכי ברירת המחדל על ידי הפעלת
השיטה ח6ז568צו6)]. בשלב הבא הקוד מקצה את המאפייניםס ח1אסס! ו-שוחהאוסוו,
המגדירים היכן לחפש ומה לחפש. מנגנון הבדיקה לחיפוש וה מכיל סדרה של קבצי
ח. עס שמות כמו 6080001 ו-2ז6080%0. המאפיין 5ז568767500=0|06 מקבל ערך
בוליאני המציין אס יש להגביל את החיפוש לתיקיה הנוכתית, או להרתיב אותו
לתיקיות המשנה שבהגדרת המאפיין ח1)סס].
()65687601!= ס5
.וח *ז0ז8 0 זס? 5001010675 5זן 0ח3 ז10!00 5זהסותט6סכ ץז חו ה6ז668 '
ה656876!ן=. הס 3סו!סקה מטו
.56870 6 8 60016 '
566 /שס].
8 50870 66% '
"פסחסותט6סכ ץוז:6" = ח1אססון.
"00 *ז%0 08" = 6ותבּאסון=.
6 = 00675 508700500.
הזו סחם=
פרק 8: אובייקטים ב- 06866 60506 | 373
ה656876!ן=. הס 3סו!סקה מטו
.ח56870 606 60006א0 '
חסחך 0 < ()660%6אם. +
". השס (6)5!₪ " 8 65.600%!ן 0חטס=. 8 " סזסצו 6זסח ד" אס 150
.65 6חטס? || 01 65חפּח שְוספוס '
%חט0ס65.0!ו חהטס. סד 1 = | זס=
(65)1!ו סחטס=. 80% 150
| אסא
6
.0 /58 ,0חט0+ 165 סח זז '
". 0חטס? 1165 סח 6זסעש 6זוסח ד" אס וו
+ 0חם
הזו סח=
סט5 0ח=
לאחר שהשיגרה יוצרת מפרט לחיפוש, היא מפעילה את השיטה 560066 עבור
האובייקט ח6ז6508!ו₪. לשיטה ואת ערך מוחזר המציין את מספר הקבצים העונים על
התנאים שהוגדרו לחיפוש. אס הערך הוא 0, החיפוש לא הניב שמות קובץ תואמים
והשיגרה תציג הודעה המציינת כי לא נמצאו קבצים. אם נמצא קובץ תואס אחד, או
יותר, לפי התנאים, השיגרה תציג את המאפיין חטס6 של האובייקט 65!וח6חטס= בטרס
תציג את השמות ב-6₪!65חטס=, אחד לאחד.
מיון הקבוצה המוחזרת
דוגמת הקוד הבאה ממיינת את הקבוצה המותזרת של חיפוש לפי גודל קובצ. שני
הפרמטריס הראשוניסם לשיטה 66006אם קובעים את תנאי המיון וסדר המיון,
בהתאמה. השמות הקבועיס בפרמטר הראשון מצייניס את המשתנה שלפיו יש למיין
את שמות הקבצים המותזרים. קבועים אלה הם 6%8₪6|:ץ5050+8,
6מץ ד6וץ+5050ח, 3569001860 1ץ50507+0וח ו-26ו5ץ5050+0וח. הפרמטר השני בשיטה
6 מציין סדר עולה או יורד. דוגמת הקוד מגדירה חיפוש שהמיון בו ייעשה לפי
גודל הקובץ, בסדר יורד, להבדיל מהדוגמה הקודמת, שבה הוחזרו התוצאות בסדר
עולה, שהוא ברירת המחדל, לפי שמות הקבצים.
()1!65687602= 50
56 5 18חַח5 חזוס
וח * 0080 זס? 5ז010!06 50 05 0ח8 ז0!00+ 5זהסותט6סכ ץו חו ה6ז668 '
ה656876!ן=. הססבסו!סקה מטו
.56870 6 8 60816 '
566 /שס)].
8 56870 66% '
"66חסותט6סכ ץו]:6" = ח[אססן.
"00 *ז%0 08" = 6והבּאסון=.
6 = 00675 0 5076050.
הזו סח=
4 ח,/ 2000 466655
ה656876!ן=. הסבסו!סקה מטו
.6 6! ע ז06זס 0ה0ה06566 חו 65| 6חטס+ השק ד
החד 0 < (0הו0ה50501+0706726566וח ,5050105126 )660%6אם. +[
". השס (6)5!₪ " 8 %ח65.600!ן 0חטס=. 8 " סזסצ 6זסח ד" אס 50
65.0% הטסת. סד 1 = ו זס=
.6חהחסו1 השועו ץ0150!3 6ח3 15 חן 526 ₪16 קוח 00 '
(2 א 1024) / ((ו)65!וחטס-ת. )חש |1!6= = 59885
8 30 דסע 8 + ]סע 8 (ו)65!ו סהטס=. א580וו
(3 ,(00ח0)60066)5חהט0ס ₪ " :(8) 26ו5סוו-"
| אסא
6
.0 /58 ,0חט0+ 165 סח זך '
". 0חטס? 1165 סח 6זסעט 6זוסח ד" אס וו
+ 0חם
חפו\ סח
50 06ח=
תיבת ההודעה המציגה את הקבוצה המוחזרת מראה גס את גודל הקוב ושמו.
לקביעת גודלו של קובץ יש להעביר את האובייקט 65!ו₪סחטס= אל הפונקציה ח6 |סוו=.
גודלי הקבציס מעוגליס אל אלפית המייב הקרובה ביותר.
% הערה:
הפונקציה 6חטס₪ היא פונקציה חדשה בגירסה 6 88 של זס) 88516 |8פו
חססחסוומָקה. כדי לקבל תוצאות עקביות עם פונקציה זאת, עליך להעביר תחילה את
הארגומנט שלה אל הפונקציה 6066. בדוגמה הקודמת נעשה שימוש בתחביר כזה
(פנה לפרק 1 לקבלת מידע על הפונקציה 6066).
חיפוש המבוסס על תוכן הקובץ
גם כאשר מדובר בחיפוש פשוט, כמו בשתי הדוגמאות הקודמות, תוכל לחפש קטע
טקסט מוגדר במסמך, או באובייקט עו6ססזק)חסוט6סכ שלו. בדוגמה הבאה מתבצעת
פעולה ואת. כאן משתמשים במאפיין שזסקסזקז660ד של האובייקט ה6ז6563!₪ כדי
לסמן מחרוזת טקסט מבוקשת בגוף הקוב או באוסף ₪65ז6קסזוק של הקובצ. שים לב,
שניתן לציין תיקיות במחשביס מרוחקים בעזרת המוסכמות למתן שמות אחידיס
(סאט) (הנתיב פ680233668\ מצביע אל התיקיה 680 בשס השיתוף 6 של מחשב ששמו
3)...
פרק 8: אובייקטים ב- 06866 670506א = 375
()65687603!= 50
6 15 6חם0ח5 ,6סטסכ ₪5 6 050ח5 הזוס
זז 5 | הזוס
.0 8ַחוחו%9ח60 65| זס? זס)וק 60 60>חו| חס ז10!08 688 חו ה66876 '
ה656876!ן=. הס פסו!סקה מטו
.56870 6 8 60016 '
566 /שס].
8 50870 66% '
"630233 68\" = ח1אססן.
6 = 0|0675ת 0 5070050.
0 8665 *.* .ה56876 טסץ 1165 6 650716000 605100 66 זס+ 8חוח6ז568 הסח/ '
.65 22 8065 05ח6ר 06 סזס/\6כץ 501167 + ,5660005 '
"*,.*" = שוחה אסון]. = '
טס 6קץ ד6וו ספרח = 6קשדפוו=.
"6" = שזסקסזק סא ד.
הזו סח=
ה656876!ן=. הס פסו!סקה מטו
.ח56870 06 60006א0 '
שוסא = 5050
חסחך 0 < ()660%6אם. +
שוסא = 0ח45ח5
(0ה05ח5 ,05%91%ח5 ,"0)"5 8% שחוזק. פטטטס
". השס (6)5|₪ " 8 %ח65.600!ן 0חטס=. 8 " סזסצו 6זסח ד" אס 50
.65 חס || 07 65חחפּח שְוספוס '
%חט0ס65.0!ו0 חהטס. סד 1 = | זס=
(65)1!ן0חהטס=. אס ₪150
1 אסא
6
.0 /58 ,0חטס+ 1165 סח זז '
". 0חטס? 1165 סח 6זסעש 6זוסח ד" אס וו
+ 0חם
הזו סח=
50 06ח=
חיפוש קבצים עלול להימשך זמן רב. תוכל לשפר באורח דרמטי את מהירות הפעולה
של השיטה 060066 על ידי ציון מאפיין 11656860 מגביל. לדוגמה, דוגמת הקוד
הקודמת מאתרת את כל מסמכי 6זס/ בתיקיה נתונה, אשר מכילים מחרוזת טקסט
מסוימת. השימוש בקבוע 66ח6וחט06סכ0זס/6קץ ד6!ו ספוח במאפיין 6מץד6וו₪ מגביל את
החיפוש שבדוגמה לקבציס המכיליס מסמכי 6זס)\ בלבד. אל תתפתה לצייןו *.* עבור
המאפיין 68806!ו=, מתוך כוונה לסנן את התוצאות המוחזרות, משוס שדבר זה יפגע
6 ח/ 2000 406655
מאוד במהירות הביצוע. בדוגמה הקודמת, המתייחסת לקבצי התיקיה 639 שבמחשב
3, ההבדל במהירות הפעולה הוא 22 שניות כאשר מופעל הקבוע 6ץד6!ו₪ספוח,
לעומת 300 שניות להגדרה 6וחִ8ּ6%!|=*.* (שיס לב, שדרושות שלוש שורות בלבד
למדידת זמן הפעולה - שורה אחת לפני הפעולה 660%6אם, ושתי שורות נוספות מייד
לאחריה).
הכללת קריטריוני חיפוש מרובים
תבנית החיפוש המתקדם מאפשרת הכללה של קריטריוני חיפוש מרובים לקבוצה
המוחזרת באובייקט 65!וח0חטס=. עליך להשתמש בשיטה ₪00 פעמיים, או יותר, כדי
לציין קריטריוניס מרוביס עבור האוסף 65655 ז/זו6קסזס. על המפרט של כל קריטריון
לכלול הגדרות ל-86 ול-חסטוחס6.
|<1ם) -. זט סז ]60ן0 ש'
| | |₪ | , | + [- <8165זם: 1 ווה>]
| צ | [- חן
15020 זט זט רפוו 8
רו וס 5 = | | > וומטוצמו קב
חס חפוזו חס 506רח
ווח סרח
ד זז הווח 00 50
שחו 50 קב
ות !150 ב
שמץדפוו 50 שב
548 וזו תס 506 ₪5 5000 ב
וזו תס 506 ₪5 1506008 שב
1 וזו 5060 ₪5 ₪581 5000010101 ב
ךסוח 506 ₪ 8מץ דו0ז1ח0 5006 ב
0 וזו 5060 ₪5 0 זט 151 50 שב
ווח 5060 ₪5 5 90 שב
ווה 50 (5 המע דחו 50 קב
ווח 50 (5) פַחו60חם ₪50 שב
הזח 350 1חפוזו 0 506 ₪5 וז | = 150 קב
358 [הסוזו חס 506 ₪5 "הז חסו5 וזש 50 ב
חח 855 |חסוזו 5060 ₪5 פו 851=ז3 507 ב
הו דסח ווח 5060 ₪5 [ו091078|0518 507 ב
הז ות 010 6 50רח (5 510 |החו-8וו 50 שב
ווח 5060 ₪ 5סו מ הו 50-18 ב
₪
₪
₪
₪
סו ₪500 ומח
6 01 זסטחזסו!
תרשים 8.2: השתמש בחברים של קבוצת הספירה חסטו0ח5060ח כדי להגדיר תנאים
לקריטריונים מתקדמים באוסף 65465 ד)זסקסזק של האובייקט 16568760
השיטה 400 יכולה לכלול גם הגדרת ז6600חח0ס6, וכן הגדרת 6ט!8 אחת, או שתייס.
כדי לסקור את האפשרויות הזמינות, עליך להציג את איברי המחלקה 5060001000
(איור 8.2 מראה קטע כזה). ההגדרות ב-ז660חח60 עשויות לקבל ערך אחד, או שניים,
שיציינו כיצד לשלב תנאי נתון עס תנאים נוספים. הגדרה ואת מפעילה את
פרק 8: אובייקטים ב- 06866 050%ז6א - 377
האופרטוריס 06ח4 או זס המשמשים למיזוג של קריטריון מסוים עם קריטריוני חיפוש
נוספיס. השתמש באופרטור זס לטיפול בקריטריוני החיפוש באופן נפרד, ובאופרטור
0חה כדי לשלב את הקריטריון האמור עס קריטריוניס אחריס. 400 הוא ברירת
המחדל להגדרת אופרטור. יחדיו, ההגדרות חס0ו0ח60, 6ט|8/ ו-זסז66החס6 מספקות
פונקציונליות דומה לזו של תיבת הדו-שיח חיפוש (0חו=).
תוכל למנות את חברי האוסף 656 זו6קסזק בעזרת לולאת ח86ם...זס. כל חבר מהווה
קריטריון חיפוש ייחודי. המאפיין חא מזהה את הקריטריון בשעת מניית החברים.
בדוגמה הבאה, שהיא האחרונה לאובייקט ה6ז6568!ו=, שלושה מקטעים. במקטע
הראשון מצויניס הקריטריוניס, לאחר שהוגדרה הפניה לאובייקט ה60ז6568!ו₪. היעד
בדוגמה הוא כל קבצי מסד הנתוניס בין שני תאריכים. הדוגמה מציגה את התחביר
הנכון להפעלת השיטה 400 עבור האוסף 656 ז/6זס6קסזק. הקריטריון הראשון קובע את
סוג מסד הנתונים. הקריטריון השני מציין קבציס שהשינוי האחרון בהם נערך בין 1
בינואר 1996 ל- 30 ביוני 1999. ההגדרה ז0ז066%0ח5000ח מציינת שעל הקבציס לקייס
את שני הקריטריוניס בנפרד כדי להיכלל בקבוצה המוחזרת. אין צורך לציין מאפיין
הח 60 בקריטריון השני, מאחר שהקריטריון השני יאמץ את ערך ברירת המחדל
סז הה5000. לפני הצגת הקבוצה המוחזרת, השיגרה מונה את חברי
5 טסוק במקטע השני שלה. המקטע השלישי מציג את הקבוצה המוחזרת.
()5687004 500
59 5 הפשח ,ה1!656876= 5 15 הזוס
זז 5 | הזוס
656870!ן=. הסוהסו!קק = 15 56%
ז070!0 5 800 חואסס| 56% '
5 הו
ה6זה 56 /שס).
"פזחסותט6סכ ץו:6" = חזאססן.
6 = 0]0675- 568700500
האוצ 0חם=
.60005 ץזס6קסזק 01 זו 8 56% '
5 סק סזק.15 תטו/
= ,"ץד )0 1!65-"= :שוח ₪00
,680808565 ד6!ו הסוח 5060 = : חסםו חס
50 = :חס
,"0060 35% 1"= :6וחהח ₪00
,חה66 ץח הסוח 5060 = : חסטו חס
"6:="6/30/1999ט]560000/8 ,"1/1/1996"= :סט
הז%ו 0חם=
8 הח 2000 406655
.5 ץזסקסזכ שְ3וספוכ '
55.0 סז ק.5 סד 1 = | זס=
(65%5)1 [ץ+זסקסזק. ה656876!ו=. הסוס68ו|ססה חסו
" :608 ח56876 606 15 פוחד" = פחוס5ץוח
חסט ו 0 ח0ס6. 8 " :15 הסח ו 600 6חך ." 6 שההּח. 8 " :15 6החהּח סחד " 8
חסחד "" <> 6טובּצ. +
6 /. 8 " :15 סט|הט סד ." 8 פחוספץרח = פחוספץוח
חסחך "" <> 6ט|00/8ח5660. +1
= 8חו5ץח = פחוח5עוח
> " :5 06| 0ח5600 סחך ." 8
> "5] 60066107 %06 0ח3 ," 8 6ט|03ח56600. 8
זה 00 8
+ 0חם
+ 0חם
8חול5ץוח אס 5
חזוש 0ח=
| אסא
.655 )ז6קסזק וס 56% חזטס6ז עְ8|ספוס '
5 תסו
.ח56870 06 60006א0 '
החד 0 < ()66006אם. 1
". 0חטסץ+ (6)5!₪ " 8 %חט65.60!ו 0הטסת. 8 " 6זסצו 6זסח ד" אס 150
.65 6חטס? || 01 65חחפּח וקפוס '
+ 65.00!ן 0 חטסת. סד 1 = ו זס=
(65)1!ו 0 חטס=. אס9 150
| אסא
6
.0 /58 ,0חטס+ 165 סח זז '
". 0חטס? 11165 סח 6זסעש 6זסח ד" 80% 50וו
+ 0חם
ה)%ו 0חם=
50 06ח=
האובייקט %ח45515%3
המסייע של 07666 הוא תוכנית עזרה ידידותית במסגרת 08806. אף שמפתחים
ומשתמשים 'כבדים' אולי אינס אוהביס את המסייע, בעיני המשתמש הטיפוסי יש בו
יתרונות רביס. קל למדי לתכנת את המסייע, לכן תוכל בנקל להעניק ליישומי 07066
המותאמיס אישית שלך חזות ותחושה דומה לזו של יישומי 08/66 הסטנדרטיים.
פרק 8: אובייקטים ב- 06866 60506א | 379
מבנה האובייקט 85515090 מוצג בתרשיס 8.3. ברמה העליונה, עשוי אובייקט 1ח55158
להופיע על המסך עס האובייקט חססו|88, התלוי בו מבחינה היררכית, או בלעדיו.
הואיל והמסייע משתמש במיגוון רחב של דמויות והנפשות, הוא עשוי לבדר ולהציג
מידע גס ללא הסבריס. אס ברצונך לכלול הסברים, תוכל לתכנת אובייקטיס מסוג
חססו|88 כך שיופיעו בצמוד למסייע. בלוניס עשויים לכלול הסברים, או אפילו לשמש
כמנגנון פשוט להזנת נתוניס. השתמש באוספים א680%א66ת0חססו!88 ו-|306 |חססו|88 עס
לחצני פקודה כדי להפוך את המסייעים לאינטראקטיביים.
ה
ה0ו60|!66%
ו
ב 1
תרשים 8.3: השתמש באובייקט +25515/90 להצגה והנפשה של מסייע, ולהצגת בלון
מסייעים
מסייעים עשוייס להביא תועלת רבה ביישומיס על ידי הצגה חזותית של הפעולות
השונות שהיישוס מבצע. תוכל להוסיף נופך ייחודי ליישומיך המותאמיס אישית על
ידי שימוש עקבי במסייע מסוים, או על ידי שימוש באוסף של מסייעים שוניס בנסיבות
שונות. לדוגמה, השתמש במסייע הגאון (065ח66) להצגת עזרה הקשורה בחישוביס,
ולעומת ואת, כאשר מדובר בעזרה בנושאיס הקשורים במערכות מחשבים, השתמש
במסייע הנראה כרובוט (1=). צוות הפיתוח שלך יוכל לקבוע לעצמו כללים בדבר
הפעלת הנפשה מסוימת לכל פעולה או משימה האורכות מעל שתי שניות.
הצגה והנפשה של מסייע
תוכל לשלוט בנקל בתצוגה ובהנפשה של מסייע באמצעות שלוש השגרות הקצרות
שנציג להלן: ח85515%8001060, 016ן000%/15ח5515%8 ו-ח156876000ח5515%0. | השיגרה
ח10!80 מכילה שורה אחת בלבד, המגדירה למאפיין 6|פופו/ (גלוי) של האובייקט
555080 ערך 6טזד. הואיל ו- 106חסטווחההספוח הוא ברירת המחדל לסוג הנפשה
(דמות ההנפשה אינה פעילה), השורה המגדירה את המאפיין חסטאוחוחה אינה נחוצה
ולכן היא מופיעה בקוד כהערה. נוסף לכך, הנפשה בסיסית ואת היא חלק מספריית
הליבה של 266655, לכן תוכל להפעילה ללא הפניה אל הספריה 9 01666 05066ז6ו₪
ץזהזטו | +0[66. תוכל להפעיל גם את השיגרה 1510|6/ז5%0ח45515%8 ללא הפניה לספריית
האובייקטיס של 01606.
0 הח 2000 466655
()ח010|60ח5515%8 סט5
סקס 15 1016 זס חסוזהווחה 66000 '
506 = הסוזהווח.%ח5%8ו55 - '
6זך = 1510|6.%ח5515%8
סט 0ח=
()16טו5ו %%ח5515%0/ 5
6 = 150!66/.%ח5515%8/
50 06ח=
()ח5515%00%5687600 50
6 = 15515%80%./1506/ חס ך 8156=] = 5515%30%./1510!6 +[
5660 וח 50 = הסהווחה.%חה5515%
סט5 0חם
כדי להחליף מצב 'לא פעילי של דמות ההנפשה במצב אחר כלשהו, חובה להגדיר
במסגרת השיגרה הן את המאפיין חסטפזוח של האובייקט, והן את המאפיין 06ו18/.
השיגרה ח25515%80%56876000 גורמת לאובייקט 8555/86 להציג את הנפשת התיפוש.
שלא כמו הנפשות רבות אחרות, הנפשת החיפוש תחזור על עצמה עד שתקצה הגדרה
חדשה למאפיין הסשהחוחה. נוסף לכך, חובה לכלול בפרויקט הפניה לספריית
האובייקטיס של 07666 כדי שהנפשת החיפוש תופיע (ניתן לעשות זאת באופן ידני,
באמצעות התפריט 5|ססד (כלים) ב- זסז0ם 28516 |1508/).
הפניה אוטומטית לספריית האובייקטים של 070106
אחד החסרונות של השיגרה ח1568600ח85515%8 הוא, שהשיגרה מניחה שיש הפניה
לספריית האובייקטיס של 0666. אס אין הפניה כזאת, השיגרה נכשלת ללא כל סימן.
המסייע מופיע, אולס הוא מציג הנפשה לא פעילה במקוס הנפשת חיפוש. אחת
הדרכיס לפתור בעיה ואת היא לוודא שיש הפניה לספריית האובייקטים של 0₪666,
ולהוסיף הפניה אוטומטית במידת הצורך. אס תעשה כך, יוכל היישוס להפעיל בבטחה
כל הנפשה, ולמעשה כל מאפיין אחר של אובייקט 06006 משותף. השגרות
15515080156876002/ ו- ₪666760060006106 שלהלן מציגות פתרון זה.
50 /45515%00%568760002)(
0-6
55556600
50 06ח=
פרק 8: אובייקטים ב- 06066 0508ז6א | 381
()₪6167606601/106 5
66 5 601 הזוס
59 5 ץזהזטו 5091 , חה00!63 45 ח6691וחום הזוס
6ח77ז06%6 60 ה60||6600 616760665 01 5זסס רסוח 806 ו6רחטתם ד
.6 ץ680ז]ה 15 ץזהזס! | +00[66) 0166 זסח6%חצו '
6 = 0166918סחום
5 ה[ 601 ה86= זס=
חס ך "0766" = 6ַחַַ8ה.6)1 +1
6טזך = ה0106691חוםפ
+ 0חם
1 )אסא
.| 61676006 ,חַהו55וח 5| 61676066 ץזפזטו | +66[ 0 066 זז '
הסח ד 8156 = 16691 0סחום +1
"| ]509.0 166 10106 0508ז6ו]65! התהזפסזק:6" = ץזבּזטו 5091
ץזהזס! 5091 16 ו סז- 00 676760065 הס סוסא
+ 0חם
50 06ח=
השיגרה 45515580%568760002/ והה כמעט לחלוטין לשיגרה המקורית להפעלת הנפשת
חיפוש. למעשה, היא אכן קוראת לשיגרה ח0ח45515080156870, אולס היא מפעילה
תחילה את ₪6167600601106. השיגרה 6606666ה₪6/676 מוודאת שקיימת בפרויקט
הנוכחי הפניה לספריית האובייקטים של 06006. היא פותחת במניית כל חברי האוסף
68 כדי לברר אס המאפיין 6וחג באחד מהס הוא 086166. אס כן, השיגרה
מגדירה למשתנה בוליאני ערך 6טזד. אס לא, הגדרת המשתנה ח0/8069[8ח!פ נותרת
6, לפי ברירת המחדל. המקטע השני של ₪67607606606066 יוצר הפניה לספריית
האובייקטים של 0866 כאשר ערך המשתנה הבוליאני הוא 886=]. לאחר שווידאה
שקיימת הפניה לספריית האובייקטים של 0/006, יכולה השיגרה 2ח15687600ח551500/
להפעיל את השיגרה ח45515%8015687600 ולסיייס בכך את הפעלת ההנפשה.
הצגת הנפשת חיפוש
ניתן להשתמש באובייקט 55158876 להשלמת פעולת האובייקט ה6ז₪1!6508. כבר
הוכרנו קודס כי בחלק מהמקרים, חיפוש הוא תהליך העשוי לארוך ומן-מה. במקרה
כוה, רצוי להציג רמז כלשהו על המסך, כך שהמתבונן יידע שהיישום אכן עוסק
בפעולה כלשחי. הנפשת החיפוש של המסייע מיטיבה לשרת מטרה זאת.
השיגרה הבאה מחפשת קבצי 00ח. בכל רחבי כונן 6 ומחוּירה את מניין הקבצים
שאיתרה. באמצעות הנפשת חיפוש המוצגת מרגע שמתחיל החיפוש והחזרת ההנפשה
הלא-פעילה מייד עם גמר החיפוש, המסייע מראה למשתמש מתי החיפוש בעיצומו
ומתי הוא מסתיים. לשס כך נעשה שימוש בשתי קריאות לשגרות - אחת ממש לפני
הפעלת השיטה סטספאם, והשנייה מייד לאחר סיומה. הואיל והאובייקטיס ה6ז6508!=
2 הח 2000 406655
ו- +ח25515%9 תלוייס בס