› פורומים › אפיון ופיתוח פריוריטי › מתי לשחרר טבלה מלונקקת?
- This topic has 12 תגובות, 5 משתתפים, and was last updated לפני 6 שנים, 10 חודשים by אלמוני.
- Post
-
- אוקטובר 8, 2017 בשעה 1:44 am
שלום חברים,בתוכנית שכתבתי,
אני מלנקק בתחילה 5 טבלאות שונות .
במידה ואחד מהלינקים נכשל אני שולח את התוכנית לשורה אחרונה, ובה מודיע על כשלון.
במידה והכל תקין, בסוף התוכנית כל הטבלאות משוחררת ונמחקות.
שאלתי:
האם לשלוח מצב כשלון לקטע בו כל הטבלאות משוחררת מהלינק גם כשהכל תקין או לייצר שני קטעים תחת לייבלים שונים אשר ישחרר את הטבלאות מהלינקים.
חשבתי על שני קטעים כי במצב של כשלון אני מעוניין לשלוח מייל אודות הכשלון.
- Replies
-
- אוקטובר 8, 2017 בשעה 1:56 am
במידה וארבעת הטבלאות מצליחות בלינק, ורק האחרונה נכשלת בלינק.
האם לשלוח את התוכנית לקטע שבו כל הטבלאות משוחררות מהלינק?- אוקטובר 11, 2017 בשעה 1:27 pm
אם הבנתי נכון, כרגע אתה משחרר את כל הטבלאות תחת אותו לייבל.
הדבר הנכון לעשות הוא לייבל נפרד עם דילוג נפרד מתאים עבור כל טבלה מלונקקת.
כך למשל אם לינקקת 5 טבלאות, יהיו לך 5 לייבלים שונים.- אוקטובר 19, 2017 בשעה 4:53 pm
מה המשמעות של לעשות UNLINK לטבלה שלא הצלחתי לעשות לה LINK?
האם יש לזה השלכות מסוימות על הקוד?עד כמה שאני יודע זה לא ישפיע על הקוד שלך או על קוד של תכניות אחרות (אם אני טועה מוזמנים לתקן).
בהמשך לטענה מעלה: למה לא לכתוב בסוף הקוד (קטע שהקוד חייב להגיע אליו כך או כך) אנלינק לכל הטבלאות.אם רק טבלה אחת נכשלת אתה בכל זאת מצפה מהפרוצדורה שתפסיק את הריצה בכל מקרה, לכן הייתי שולח את כל הכשלונות ביחד לאותה נקודת סוף שבו הפרוצדורה מסתיימת בכל זאת.
- אוקטובר 19, 2017 בשעה 11:47 pm
את לא עושה unlink לטבלה שלא הצלחת לעשות לה link. שחרור הטבלאות הוא בסדר הפוך מבחינת הlabel ב link.- אוקטובר 22, 2017 בשעה 10:07 am
בחזרה לשאלה המקורית: מה קורה כאשר פעולת LINK נכשלת? צריך להציג הודעת שגיאה באמצעות ERRMSG אשר תסיים את הפרוצדורה מיד. אחרת כל התיחסות לטבלה שבגינה נכשל ה-LINK תהיה לטבלה האמיתית, לטוב או לרע. אפשר לדאוג לכך שהודעת השגיאה תודיע איזה LINK נכשל באמצעות שמירת נתון כלשהו שמשתנה באמצעות PAR1 ולהציג את הערך בהודעה.לא תמיד יש צורך בפעולת UNLINK – היא נדרשת במיוחד כאשר בתחילת הפרוצדה בוצע LINK לטבלה ובהמשך הפרוצדורה רוצים להתיחס לטבלה המקורית. ניתן לעשות זאת באמצעות ALIAS או אפשר לבצע UNLINK לטבלה. אני זוכר שהיתה בעיה כזו לחברי SNOOF כאשר כתב פרוצדורה להקמת תעודת מלאי על סמך תעודת מלאי אחרת. בהתחלה ביצע LINK אל DOCUMENTS כדי לקבל את המסמך המקורי. בסוף התכנית הוא רצה לשלוף מ-DOCUMENTS את התעודה החדשה – אך מאחר והטבלה היתה מלונקקת, התעודה החדשה לא היתה בתוך הטבלה הזו. לכן היה צריך לבצע UNLINK קודם ואז לשלוף שוב מ-DOCUMENTS.
- אוקטובר 22, 2017 בשעה 9:03 pm
חחח אתה זוכר היטב, תודה על ההסבר.
אבל באמת מסקרנות, מה המשמעות להרצת פקודת UNLINK לטבלה שלא עשינו לה LINK?- אוקטובר 22, 2017 בשעה 9:58 pm
למה צריך להציג הודעת שגיאה באמצעות ERRMSG אשר תסיים את הפרוצדורה מיד?מה עם לעשות UNLINK לטבלאות שלונקקו לפניכן???
למיטב ידיעתי, אם לא עושים UNLINK לטבלה שלונקקה, זה יכול לשבש עבודה מול טבלה זו אחר כך.נכון שצריך לדאוג שבאותו מקום לא תהיה עבודה עם הטבלה שלינקוקה נכשל (כי הפעולות יחולו על הטבלה המקורית). אבל ERRMSG הוא לא הדרך הנכונה לזה (אלא אם כן שום טבלה אחרת לא לונקקה לפניכן).
- אוקטובר 23, 2017 בשעה 8:33 am
בתכניות הסטנדרטיות של פריוריטי, תמיד יש ERRMSG אם LINK נכשל. לדוגמא, תסתכל על שלב 45 של פרוצדורה PARTTREE.לפי מה שאני מבין, לא נגרם כל נזק אם לא מבוצע UNLINK *** בתנאי שלא רוצים להשתמש בטבלה האמיתית בהמשך אותו שלב SQLI ****. ברגע שיש LINK, כל התיחסות תהיה לטבלה המלונקקת. לכן אין ממש חובה לבצע UNLINK.
אזהרה: אם אתה כותב פרוצדורה עם שלבים רבים שמתיחסים לטבלה המלונקקת, רצוי בתחילת כל שלב לבצע LINK ובסוף כל שלב לבצע UNLINK. תקבל הודעת שגיאה אם אין UNLINK בסוף שלב אחד ויש LINK לאותה טבלה בשלב מאוחר יותר.
יש לי קשר טוב עם כמה מהמפתחים הראשיים לשעבר של פריוריטי. אשאל אותם מה קורה אם לא מבצעים UNLINK.
- אוקטובר 23, 2017 בשעה 9:46 am
גם פרוצדורות סטנדרטיות אנשים חיים כתבו.
אני לא חושב שזאת ראיה.
יש גם פרוצדורות סטנדרטיות שאין בהם אפילו ERRMSG – למשל WORKORDERS, COLDECIMAL ועוד הרבה, וזה בטח לא תקין.אותי לימדו בזמנו אנשי מידעטק וותיקים שאם לא משחררים לינק, זה יכול להישאר מלונקק במקרים מסויימים.
זה וודאי נכון בטריגרים של מסכים, כי שם התוכנה מתייחסת לכל הטריגרים כתוכנית אחת ארוכה.
וגם הדוגמא שהבאת של פרוצדורה עם שלבים רבים מוכיחה שה-LINK לפעמים נשאר.לכן הדרך הנכונה היא לדאוג שלכל LINK שהתבצע בהצלחה יתבצע UNLINK.
- פברואר 8, 2018 בשעה 12:49 pm
- יש להתחבר למערכת על מנת להגיב.