הפיכת נוסחה (מחרוזת טקסט) לערך מספרי

25/05/2011

נניח שאנחנו קולטים נתונים ממסך בו צריך להזין ערך מספרי, אך לעיתים נכתבת שם נוסחה. למשל- מישהו כותב 2011-1960 במקום את גילו (51), או אולי 120*1.165 כדי לציין ערך כולל מע"מ וכו'; ואת הערך הזה יש לתרגם לערך מספרי. מתימטית זו אינה בעייה קשה במיוחד, אבל אם יש לנו משתנה טקסטואלי שתוכנו הוא חישובי, כיצד נחלץ ממנו את התוצאה למשתנה אחר? אפשר להשתמש למשל בפרוצדורה SP_ExecuteSQL שמאפשרת להריץ קוד דינאמי, ואת התוצאה להפנות למשתנה (הבעייה כאן היא לחלץ את מה שרץ בחלק הדינאמי אל מחוץ לחלק הדינאמי - פעולה שאינה ברורה מאליה): ...
אין תגובות

ההבדל בין Unique Index ו-Unique Constraint

08/05/2011

בפורום בסיסי נתונים בתפוז נשאלה שאלה כיצד להגדיר עמודה שאינה מפתח כ-Unique (כלומר- ללא ערכים כפולים). עניתי- "בעזרת "Unique Index. זמן קצר לאחר מכן עדי הוסיף שאפשר להשתמש גם ב-Unique Constraint, ויש לי הרגשה שהוא ציין זאת לא בתור "גם לי יש מה לומר" אלא כי יש בהצעתו יתרון מסויים. כדי לעמוד על ההבדלים בין שתי ההצעות (לא הרבה..), נתחיל מהדומה, וניצור לשם כך טבלה עם שתי עמודות זהות שלאחת נגדיר אינדקס ולשניה אילוץ: If Object_Id('Try001','U') Is Not Null Drop Table Try001; ...
אין תגובות

מערכת למעקב אחר ריצת פרוצדורות

01/05/2011

לא פעם אנחנו נזקקים למעקב ותיעוד ריצות של פרוצדורות או קטעי קוד אחרים (סקריפטים, טריגרים, ג'ובים..), מסיבות שונות כגון: 1. בשלב הפיתוח - מעקב אחר התקדמות הריצה כדי לוודא שהקוד כתוב נכון ורץ כמתוכנן, ואם לא- הסיבות לתקלות. בשלב זה נרצה לרוב לקבל את הפלט למסך בו מתבצע הפיתוח. 2. בשלב הייצור - מידת השימוש בפרוצדורה, מעקב אחר הריצה (באיזה שלב היא), זמני ריצה של הפרוצדורה כולה ושל קטעים בעייתיים בה, סיבות לתקלות במקרה של נפילה. בשלב זה נרצה לרוב לקבל את הפלט לטבלה או לקובץ טקסט אותם ניתן יהיה לתחקר. לרוב זה נעשה בצורה מאולתרת-...
אין תגובות