› פורומים › אפיון ופיתוח פריוריטי › הוספת הודעת בחירה לשלב SQLI בפרוצדורה
- This topic has 20 תגובות, 3 משתתפים, and was last updated לפני 15 שנים, חודש 1 by PriorityDev.
- Post
-
- אוקטובר 13, 2009 בשעה 3:29 pm
שלום לכולם.
האם יש סוג של הודעה שאפשר להכניס בקוד של שלב SQLI שהמשתמש יוכל לבחור האם לבצע פעולה מסויימת או לסיים.
אם כן, כיצד מתייחסים אח"כ בקוד לקלט של המשתמש (האם זה Y בשביל כן ו-N בשביל לא)?
- Replies
-
- אוקטובר 13, 2009 בשעה 6:24 pm
לא, אין אפשרות כזאת.
בהפעלה במסך WRNMSG נותנת אפשרות לעצור. בפרוצדורה WRNMSG מציגה הודעה עם לחצן OK ולאחר אישור ממשיכים הלאה. אין דו-שיח שאפשר להקפיץ עם פקודה כמו WRNMSG.
צריכים להפריד את שלבי ה-SQLI ולשים שלב של CONTINUE או PRINTCONT או CHOOSE או INPUT ביניהם. מקבלים תשובות מ-INPUT ומ-CHOOSE. אפשר לקרוא את התשובה בקוד או להשתמש בזה ב-GOTO שידלג שלבים שבאים אחר-כך. לחיצת ביטול ב-CONTINUE ו-PRINTCONT מפסיקה את הפרוצדורה.
כמובן חייבים INPUTF או CHOOSEF במידה ומריצים את הפרוצדורה כהפעלה ישירה אחרת לא תוצג שאלה כלל.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 13, 2009 בשעה 6:35 pm
היי
האם ניתן לשנות את ההודעה שמוקפצת כתוצאה משלב CONTINUE ?- אוקטובר 13, 2009 בשעה 6:54 pm
בשביל זה יש PRINTCONT – כמו PRINT ועם השאלה של CONTINUE
קל דוגמה מפרוצדורת MRP או ADJREP- אפשר או לשים טקסט בשדה "כותרת" או להעביר טקסט כפרמטר ASCII – תעשה משהו כמו זה:
[code:1]SELECT ENTMESSAGE('procname','P',1) FROM DUMMY ASCII :$.MSG;[/code:1]
כך תוכל להעביר טקסטים שונים לפי הצורך.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 13, 2009 בשעה 8:13 pm
תודה , עזרת לי מאוד.- אוקטובר 15, 2009 בשעה 12:48 pm
בוקר טוב,
האם ניתן דרך הקוד שבשלב ה-SQLI להתנות שאם תנאי מסויים מתקיים אז לקפוץ למספר שלב מסויים ואם לא אז למספר שלב אחר (בפרוצדורה) ?- אוקטובר 15, 2009 בשעה 1:24 pm
כן. אתה צריך לאתחל משתנה, למשל, :$.GO ולמסור אותו כפרמטר לשלב GOTO משם הפרוצדורה תקפוץ לשלב שמספרו מאותחל בפרמטר.- אוקטובר 15, 2009 בשעה 1:27 pm
כמו כן, אם אתה רוצה להריץ דו"ח, ממשק או כל ישות אחרת ישירות משלב SQLI, בלי להכניסו לשלבי הפרוצדורה, ניתן לעשות זאת ע"י פקודת EXECUTE (ראה סינטקס ב-SDK).- אוקטובר 15, 2009 בשעה 1:52 pm
אם אני מבין נכון : אני מגדיר משתנה GO בתוך הקוד בשלב הSQLI לאחר מכן אני כותב את התנאי ואז כיצד אני מבטא שכאשר התנאי מתקיים לך ל- GOTO ?- אוקטובר 15, 2009 בשעה 2:09 pm
לא, קצת אחרת.
אתה מגדיר משתנה GO עם דולר. מאתחל אותו באופן מותנה במספר השלב בפרוצדורה, שאליו אתה רוצה לקפוץ. בפרמטרים לשלב SQLI אתה רושם GO
א"כ מוסיף בפרוצדורה שלב GOTO (מיד לאחר ה-SQLI) ומעביר לו פרמטר GO.
משם הפרוצדורה תמשיך למספר שלב שמסרתה בפרמטר GO.- אוקטובר 15, 2009 בשעה 2:34 pm
michaelm – אין לי זמן לחפש עכשיו – אני מציע לחפש ולהזכיר פרוצדורה קיימת בה אפשר לראות דוגמה[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 15, 2009 בשעה 2:43 pm
שלום, יצחק. אתה צודק.
למשל, פרוצדורות בשם PORDRES או CUSTLOAD
יש לראות שם שלבי GOTO ו-SQLI שלפניו.- אוקטובר 15, 2009 בשעה 2:53 pm
מצויין – הדוגמא פתרה לי את הבעיה.
תודה לשניכם!- אוקטובר 15, 2009 בשעה 3:23 pm
יצחוק הי
האם יכול להיות ש-PRINTCONT אינו מציג הודעה אלא רק במקרה של הפעלה ישירה?
אני ניסיתי את 2 השיטות ובשתיהן לא עולה הודעה.- אוקטובר 15, 2009 בשעה 6:50 pm
לא נראה לי
אם בכלל הייתי אומר שפחות היו רוצים PRINTCONT בהפעלה ישירה (כי בהפעלה ישירה אפשר לחייב אישור לפני הרצת הפרוצדורה)
תנסה לשים CONTINUE במקום PRINTCONT. אולי PRINTCONT לא עוצר אם אין הודעה להציג. אם CONTINUE יעבוד תבדוק את ההגדרה של ההודעה.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 15, 2009 בשעה 12:34 pm
שלום, יצחקהאם יש דרך להציג הודעה עם טקסט דינמי בהרצה ישירה?
- יש להתחבר למערכת על מנת להגיב.