› פורומים › אפיון ופיתוח פריוריטי › חסימת משתמשים מלכתוב תווים מסוימים (אותיות\מספרים)
- This topic has 8 תגובות, 2 משתתפים, and was last updated לפני 9 שנים, 2 חודשים by
snoof123.
- Post
-
- יולי 18, 2016 בשעה 12:30 pm
שלום..
אני רוצה לתחזק שדה מסוג CHAR ולמנוע בו כתיבה של אותיות, אני יודע שזה נשמע מוזר אבל הייתי רוצה לדעת:האם יש פונקציות (קוד פריוריטי) שעושות ולידציה על מידע ברמה של אותיות/מספרים, נניח שגיאה כאשר יש מספר/שגיאה כאשר יש אותיות?
(אותיות גדולות וקטנות אני מכיר).תודה לעוזרים 🙂
מוצגות 8 תגובות – 1 עד 8 (מתוך 8 סה״כ)
- Replies
-
- יולי 18, 2016 בשעה 12:38 pm
- יולי 18, 2016 בשעה 12:42 pm
אבל אז אני צריך להכניס את כל התווים האפשריים באנגלית שם? או שאני עושה לכל תו בנפרד פקודה כזו?
כי אני בעצם רוצה למנוע נניח הכנסה של אותיות ותווים אחרים שאינם מספר.נעם תודה רבה על המענה 🙂
- יולי 18, 2016 בשעה 4:58 pm
אם אתה עובד עם גרסה 17 אז יש דרך אחרת. אני כותב קוד כאן ישירות לכן יכולה להיות שגיאת תחביר.
:LEN = STRLEN (:$.@);
:A = 0;
LABEL 1;
:A = :A + 1;
ERRMSG 1 WHERE SUBSTR (:$.@, :A, 1) IN ('$', '%', '@', '~');
LOOP 1 WHERE :A < :LEN;
או בעברית –
לשמור את אורך המחרוזת של השדה הנוכחי
לאפס מונה
תווית
להוסיף אחד למונה
להציג הודעת שגיאה אם האות התורנית במחרוזת נמצאת בקבוצת האותיות האסורות
לחזור בחזרה לתוית אם המונה פחות מאורך המחרוזתהוסיפו את הפונקציה SUBSTR בגרסה 17. יש לה יתרון עצום על פני STRIND – הפרמטרים יכולים להיות משתנים.
- יולי 19, 2016 בשעה 11:16 am
תודה לשניכם,
נראה לי שאנסה קודם את הפונקציה של רוני היא נראית די ידידותית 🙂- יולי 19, 2016 בשעה 11:27 am
ניסיתי להשתמש בפונקציה שכתבת רוני לפי הSDK אם השדה אינו מכיל מספר אני אמור לקבל חזרה ערך 0 ואם כן אני מקבל חזרה ערך 1.
לקחתי עמודת CHAR ללא טריגרים עליה, הוספתי עליה טריגר CHECK-FIELD
עשיתי:
SELECT ISNUMERIC(:$.@) FROM DUMMY;
ERRMSG 994 WHERE :RETVAL < 1;וגם כשהכנסתי מספרים וגם כשהכנסתי מחרוזת קיבלתי חזרה 1.
ז"א שהמערכת לא ביצעה לי חסימה.
יש איזה משהו שאני מפספס לדעתך? :dry:
- יולי 19, 2016 בשעה 12:50 pm
מוצגות 8 תגובות – 1 עד 8 (מתוך 8 סה״כ)
- יש להתחבר למערכת על מנת להגיב.