בתקופות שאני נרשמתי עוד לא שאלו שאלות כאלו, איזה נס, אחרת לא הייתי מתקבל... :lol:
פורסם במקור בפורום CODE613 ב09/10/2015 00:56 (+03:00)
בתקופות שאני נרשמתי עוד לא שאלו שאלות כאלו, איזה נס, אחרת לא הייתי מתקבל... :lol:
פורסם במקור בפורום CODE613 ב09/10/2015 00:56 (+03:00)
מספר טלפון הוא שדה טקסט.
פורסם במקור בפורום CODE613 ב09/07/2015 00:41 (+03:00)
התפיסה של WPF היא תפיסה אובייקטלית לחלוטין, ותפיסת תיכנות המושפעת מארכיטקטורה רב שכבתית.
פקדי התצוגה כרוכים לשכבות שמעל, וכן להיפך. לגבי חיבור למסד הנתונים פתרו את זה באמצעות אנטיטי פריימוורק, ואתה חייב להשתמש בזה אם אתה רוצה לממש את הארכיטקטורה האת.
בווינפורם אין כריכה, הכל מבוסס אירועים, זה בעצם פרדיגמה של תיכנות פונקציונלי, שהיא גישה לא מוצלחת בלשון המעטה.
כשאתה מחבר את השכבות בשיטה של WPF, אתה בעצם קושר חוט ארוך, מהיוזר, עד לדטה בייס (או עד לכל קישקע אחר של הקוד שלך - מאפיין שמכיל ערך ויכול לקבל ערך ולהשפיע על שורה של דברים אחרים), כאשר היוזר מחזיק בקצה החוט, ופורט על נימי מסד הנתונים, או על כל מחלקה מורכבת אחרת. זה נותן לך תפיסת תיכנות הרבה יותר בריאה, ברת תחזורה, וניתנת להרחבה (ולא להחרבה) מאשר שיטת וינפורם שהכל מבוסס אירועים (כאשר לוחצים על שמור - הוא עובר על הפקדים ושולח פקודת SQL למסד הנתונים).
עולם הווב עדיין לא הגיע ליכולות של WPF לגמרי, אם כי הוא מתקרב וחותר לשם, אנגולר למשל הם בכיוון הזה.
בהצלחה.
פורסם במקור בפורום CODE613 ב09/07/2015 00:40 (+03:00)
טוב אז אחרי חודשים של סיוטים בלילות, סוף סוף מצאתי את החלון שנותן מבט אל תוך הקרביים של SQL וגיליתי עד כמה אקסס צריך לפעמים חינוך מחדש....
אז כדי להסתכל מה קורה בזמן אמת בשרת ה SQL שלכם יש כמה מוניטורים בשוק, אבל בשבילי המוניטור הכי טוב שמצאתי הוא זה:
SELECT
SPID = er.session_id
,STATUS = ses.STATUS
,[Login] = ses.login_name
,Host = ses.host_name
,BlkBy = er.blocking_session_id
,DBName = DB_Name(er.database_id)
,CommandType = er.command
,SQLStatement = st.text
,ObjectName = OBJECT_NAME(st.objectid)
,ElapsedMS = er.total_elapsed_time
,CPUTime = er.cpu_time
,IOReads = er.logical_reads + er.reads
,IOWrites = er.writes
,LastWaitType = er.last_wait_type
,StartTime = er.start_time
,Protocol = con.net_transport
,ConnectionWrites = con.num_writes
,ConnectionReads = con.num_reads
,ClientAddress = con.client_net_address
,Authentication = con.auth_scheme
FROM sys.dm_exec_requests er
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFT JOIN sys.dm_exec_sessions ses
ON ses.session_id = er.session_id
LEFT JOIN sys.dm_exec_connections con
ON con.session_id = ses.session_id
where ses.status='running'
יש גם פרוצדורות שמראות קונקשנים פתוחים ועוד, אני משאיר את זה לסופטס, אבל הקוד שציטטתי מקודם ממש הציל את חיי.
אז ככה:
אם אתם רואים שלוקח לסלקט הזה זמן למלא את הרשומות, מצבכם גרוע מאוד מאוד, בידקו היטיב אם אתם לא נוהגים קלות ראש בכל מה שנוגע לתישאול מסד הנתונים.
אם אתם רואים שם בעמודה LastWaitType את הערך: ASYNC_NETWORK_IO מצבכם גם כן לא טוב בעליל, זה אומר שאקסס או מי שזה לא יהיה משאיר עיסקה פתוחה, כדי שמתי שהוא צריך הוא ימשוך רשומות בקלות, בלי תקורה של חיבור למסד הנתונים. למרבה הטמטום הדבר הזה עשוי לנעול רשומות ולמנוע עדכונים, אז תיזהרו לנפשכם מאוד.
כמו"כ אם הוא מכיל את הערך: LCK_M_IX (בשאילתת UPDATE) סימן שיש נעילות שמעכבות עדכונים, ובדרך כלל רשומות אחרות המכילות את הערך ASYNC_NETWORK_IO אשמות בכך.
ההתנהגות של אקסס בנושא הזה לא לגמרי צפויה, ולכן המלצות יבואו לפי הבעיות, כרגע מה שאני יודע זה לא ליצור לו טופס עם רשומות מרובות ולבצע מיקור של סלקט עם כוכבית (כלומר משיכת כל המידע מכל העמודות) אלא אם כן אתם דואגים במפורש שכל הרשומות יימשכו והעיסקה מול מסד הנתונים תיסגר (בדרך כלל אם עושים לו MoveLast זה עוזר)
אז נכון, אקסס זה כבר לא כלי שמתאים לעבודה עם מאות אלפי רשומות, אולם עם זאת כדאי לדעת איך באמת מנוע של דטה בייס עובד, ולהכיר לעומק את כל סוגי העיסקאות.
מצפה מהמומחים להמשיך ולהחכימנו בעניני מסדי נתונים.
פורסם במקור בפורום CODE613 ב27/08/2015 00:08 (+03:00)
שלום לכולם בעקבות המאמר של מייקרוסופט עשיתי מתודה פשוטה שמטהרת נתוני קלט משתמש, אם יש למישהו רעיונות לשיפור/הוספה יתקבל בברכה.
/// <summary>
/// מטהר נתוני קלט מהמשתמש על מנת למנוע הזרקת SQL מסיר מילים שמורות ותווים מיוחדים
/// </summary>
/// <param name="input">הכנס כאן את נתוני הקלט מהמשתמש</param>
internal static void SanitizeInputData(ref string input)
{
//תווים מפסיקים ומפרידים
input = input.Replace("'", "");
input = input.Replace("--", "");
input = input.Replace(";", "");
input = input.Replace(@"""", "");
//אופרטורים
input = input.Replace("or", "");
input = input.Replace("and", "");
input = input.Replace("=", "");
input = input.Replace(">", "");
input = input.Replace("<", "");
input = input.Replace("like", "");
//פסוקיות ומילים שמורות
input = input.Replace("select", "");
input = input.Replace("union", "");
input = input.Replace("join", "");
input = input.Replace("delete", "");
input = input.Replace("drop", "");
input = input.Replace("update", "");
input = input.Replace("insert", "");
input = input.Replace("merge", "");
input = input.Replace("alter", "");
input = input.Replace("execute", "");
input = input.Replace("exec", "");
//פונקציות מסוכנות של SQL
input = input.Replace("sp_", "");
//עוד משהו??? כל המוסיף מוסיפין לו מן השמים
}
פורסם במקור בפורום CODE613 ב12/06/2015 17:23 (+03:00)
תבדוק אם זה עובד:
Function GetMaxCountRecordsInTimeRange(minutes As Integer, TableName As String, FieldName As String) As Date
Dim rcs As Recordset, rcsResult As Recordset, TempDateValue As Date, TempCountValue As Long, TempFromDate As Date, TempToDate As Date
Set rcs = CurrentDb.OpenRecordset("select " & FieldName & " from " & TableName)
Do While Not rcs.EOF
TempDateValue = rcs.Fields(0)
Set rcsResult = CurrentDb.OpenRecordset("select count(" & FieldName & ") as CountRecords , Min(" & FieldName & ") as FromDate, Max(" & FieldName & ") as ToDate from " & TableName & " where " & FieldName & " between #" & TempDateValue & "# and #" & DateAdd("n", minutes, TempDateValue) & "#")
If rcsResult.Fields("CountRecords").Value > TempCountValue Then
TempCountValue = rcsResult.Fields("CountRecords").Value
TempFromDate = rcsResult.Fields("FromDate").Value
TempToDate = rcsResult.Fields("ToDate").Value
End If
rcs.MoveNext
Loop
MsgBox TempFromDate & " - " & TempToDate & " " & TempCountValue & " øùåîåú"
GetMaxCountRecordsInTimeRange = TempFromDate
End Function
פורסם במקור בפורום CODE613 ב15/04/2015 21:32 (+03:00)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
namespace FormatConvertor
{
class Convertor
{
/// <summary>
/// מחזיר את המחלקה המתאימה לקובץ על בסיס שמו של הקובץ
/// </summary>
/// <param name="FileName">שמו של הקובץ המלא עם הסיומת</param>
/// <returns>מחזיר אובייקט מסוג מתאים על פי הסיומת של הקובץ</returns>
private static ImageFormat GetImageFormat(string fileName)
{
string extension = Path.GetExtension(fileName);
if (string.IsNullOrEmpty(extension))
throw new ArgumentException(
string.Format("לא היתה אפשרות לקבוע סיומת: {0}", fileName));
switch (extension.ToLower())
{
case @".bmp":
return ImageFormat.Bmp;
case @".gif":
return ImageFormat.Gif;
case @".ico":
return ImageFormat.Icon;
case @".jpg":
case @".jpeg":
return ImageFormat.Jpeg;
case @".png":
return ImageFormat.Png;
case @".tif":
case @".tiff":
return ImageFormat.Tiff;
case @".wmf":
return ImageFormat.Wmf;
default:
throw new NotImplementedException();
}
}
/// <summary>
/// מבצע המרה פשוטה מפורמט לפורמט על בסיס הסיומת של קובץ המקור וקובץ היעד
/// </summary>
/// <param name="SourceFileName">שם מלא של קובץ המקור כולל נתיב</param>
/// <param name="TargetFileName"> שם מלא של קובץ היעד כולל נתיב</param>
/// <param name="DropSource">האם למחוק את קובץ המקור לאחר ההמרה אם הצליחה ברירת מחדל - לא</param>
/// <returns>אם ההמרה הצליחה מחזיר אמת ואם לא מחזיר שקר</returns>
public static bool ExecuteConvertingByNames(string SourceFileName, string TargetFileName, bool DropSource = false)
{
try
{
new Bitmap(SourceFileName).Save(TargetFileName, GetImageFormat(TargetFileName));
if (DropSource) { File.Delete(SourceFileName); }
return true;
}
catch (Exception ex)
{
return false;
}
}
}
}
פורסם במקור בפורום CODE613 ב14/01/2015 22:08 (+02:00)
מתחשק לך לספר על מסקנות?
מה אשיב?
כרגע יש רק מסקנות ביניים, בהקלטה הנ"ל, הם מחדירים לראש עם מברגת אימפקט את התפיסה הייחודית של js שכל דבר הוא אובייקט כולל הפונקציה עצמה (ולא!!! התוצאה שלה אלא גוף הקוד של הפונקציה הוא אובייקט שמועתק ל var), ושהכל משועתק בצורה שאפשר להוסיף או לגרוע למופע (שהוא לא באמת מופע אלא תעתיק של האובייקט) אובייקטים בזמן ריצה וכו'. זה פחות או יותר השעתיים הרצאה שם.
לגבי C עברתי על קורס של הטכניון (עוד לא הגעתי עד הסוף), אין סודות גדולים מאוד בשפה הזאת. אם כי זה עזר לי בכמה דברים שלא ידעתי על התנהגות הקומפיילר (למשל בשפת C כברירת מחדל ברקורסיה וכדומה הוא עובד על פי חיפוש לעומק) שזה דבר שלא ידעתי אותו, כמקצוען אם אתה כותב קוד ויודע איך הקומפיילר מתנהג בוודאי שרמת המקצועיות שלך גבוהה יותר, ודווקא בנושא המעניין הזה לא מצאתי הרבה חומר.
שלחתי מייל לרן בר זיק הוא אומר להיות זהירים כשעוברים מדבר לדבר גם אם אתה בקי בכל התיאוריה, כי יש המון היבטים מבחינה מעשית שאנשים לא מודעים להם כשהם מחליטים לעבור שפה.
אז מה בסוף? זהו שאין באמת הרבה מה ללמוד, אלא אם כן אתה ממש טירון בתיכנות, או שאתה רוצה להיות האקר, מה שכן יש הרבה פרקטיקה ללמוד וזה תוך כדי החיים.... כנראה מה מה שעובד זה רק התנסות במדבר 40 שנה, עד שנגיע לארץ המובטחת....
כאמור זאת מסקנת ביניים!!
אין לראות באמור ייעוץ משפטי, כלכלי, זוגי, אישי או אחר, אין הכותב אחראי על כל נזק שייגרם כו' כו'..
פורסם במקור בפורום CODE613 ב27/01/2015 08:58 (+02:00)
טוב קודם כל מרחק לווינשטיין עזר מאוד והצליח לקדם את העבודה האנושית בעשרות אחוזים, אני עכשיו נזכר מלפני שנתיים שחפרנו הרבה בנושא ולפי מה שקראתי זה אחד האלגוריתמים המרכזיים.
לגבי ההצעה של קליק, לא מדובר בהטיות לגיטימיות, נראה לי שכל מסדי נתונים בעולם לא יכולים לכסות שגיאות של פקידות, מה שכן אתה יכול לפתח אלגוריתם שיתן לך הערכה באיזו כיתה המורה שלהם מתה :lol: :lol: :lol:
אני מצרף כאן רשימה (אמיתית התקבל ממרכז מענה אנושי) שבעים פנים לישיבת פוניבז' ותגיד לי אם יש לך מסד נתונים שמכיל באופן הזה את כל רחובות ישראל :lol: :
יוצאי פונביץ
יוצאי פונובי'ז
ישיבת כולל פוניבז
ישיבת פונוביז'
ישיבת פונובי'ץ
כולל יוצאי פוניבז
כולל פונביז
כולל פונביץ
כולל פונוביז
כולל פונוביז'
כולל פוניבז
כולל פוניבז'
פונוביז
פונוביז'
פונובי'ץ
פונוביש בני ברק
פוניבז
פוניב'ז
פוניבז'
פוניביץ
פנביז
פנוביז
פנוביץ
פורסם במקור בפורום CODE613 ב07/11/2014 11:43 (+02:00)
הפרוייקט הבא שנרצה לחשוף כאן היום, הוא פרוייקט מגלומני לא פחות, אולם בתחום ה UI.
מימשק התישאול הגלובלי. באנגלית: Global query interface.
מטרת הפרוייקט היא לבנות UI שמאפשר למשתמש הקצה לבצע שאילתות [size=150:f6b72dw6]ולו המורכבות ביותר!!!!![/size:f6b72dw6] בלי להתמצא בכלל ב SQL עם חווייה אינטואיטיבית לחלוטין, וללא צורך בעמל של פיתוח כלל!!! כל מה שנצטרך להגדיר בתבנית זה את כתובת מסד הנתונים, ועוד כמה דברים קטנים להתאמה (במידה ולתבנית תהיינה חוסר וודאויות כלשהן) ובזה התסיים הסיפור, הלקוח חופשי לבצע כל שאילתה ולהגיע לכל תוצאה בעולם, ללא צורך להתמצא כלל בתיכנות (אנו מדברים כמובן על שאילתות SELECT בשלב הזה)
אז ככה, למעשה הUI הזה כבר מאופיין ובנוי ועובד כמו סוס בלי שום בעיות, אבל לצערי הרב, הוא אקססאי
אני רוצה פרוייקט קוד פתוח מבוסס WEB שבשלב כלשהו גם עשוי להפוך למנוע החיפוש הנפוץ ביותר ברשת ויעקוף גם את גוגל בתחומים מסויימים (כגון חיפוש מורכב ומדוייק בתוך אתרים שהיא משימה קשה מאוד נכון להיום, ואתה די נתון לחסדי המפתח הספציפי של אותו אתר, מה שבדרך כלל בעקבות החולשה הגדולה של מנועי חיפוש פנימיים, מחזיר את האנשים לחיקה הבטוח והאוהב של "אמא גוגל" שכל מה שהם מבקשים ממנה [בעיקר אם בשפה של תינוק] היא משתדלת להבין ולתת על מגש של כסף {ממודעות פרסום}) בכל אופן לגבי ארגונים אמיתיים שמתמודדים עם כמויות אדירות של מידע, וצריכים מפתח שישב במשרה מלאה כדי לעשות שאילתות לפי הצורך, זה יכול לחסוך להם את המאמצים הללו.
הרחבה בהמשך.
פורסם במקור בפורום CODE613 ב25/06/2014 10:35 (+03:00)
כשאתה עושה identity יש גם מאפיין שנקרא sid שם אתה קובע את הערך ההתחלתי, להוסיף אפסים קודם לא נראה לי שאפשר כי הערך הוא int ולא varchar
פורסם במקור בפורום CODE613 ב21/05/2014 10:11 (+03:00)
לעושת את זה אוטומטית זה סיפור, וכבר דיברו בנושא הזה כאן באשכול אחר. כדאי לעשות כל שינוי באופן עקבי אצל הלקוח, אחרי שהוא מתברר כיעיל אצלך.
פורסם במקור בפורום CODE613 ב21/05/2014 10:13 (+03:00)
תדביק את הקוד הבא בתוך הטופס ותקשר לפרוצדורת אירוע לאחר עדכון
Private Sub משולבת16_AfterUpdate()
Dim i
With רשימה14
.Requery
For i = 1 To .ListCount - 1
.Selected(i) = (.Column(0, i) = משולבת16)
Next i
End With
End Sub
פעם אחרונה שאתה קורא לפקדים "רשימה 14" איך אתה היית מרגיש אם היו קוראים לך רשימה 14?????????????? :?: :?: :?:
פורסם במקור בפורום CODE613 ב14/05/2014 15:12 (+03:00)
יש אטריבוט target ב HTML שקובע את זה.
<a href="http://code.613m.org/" target="_blank">לאתר קוד 613</a>
פורסם במקור בפורום CODE613 ב31/03/2014 23:01 (+03:00)
אגב, יש בSQL SERVER משתנים גלובליים? וא"כ - אפשר לשייך משתנה גלובלי לסש'ן? (כמו בווב)?
לפי מה שנראה כאן אין אפשרות להכריז על משתנה גלובלי.
הפתרון הוא כנראה הקוד שהעלית, ואז צריך לעשות שבכל כניסה לתוכנה, יהיה עדכון פיזי בטבלת יוזרים, איזה סשן ייחודי הוא משתמש עכשיו. ודרך זה נוכל לאחזר את המשתמש.
ואגב:
@דוד ל.ט.
אמיתיים - התכוונתי הרגלי עבודה בחברות גדולות.
יש גם "הרגלים" מגונים..... בלי להכליל...
[size=200:ypga3xhm]"נס כשלה בניהול הפרויקט, פגעה בציפיות הלגיטימיות של משרד המשפטים וגרמה נזק למטרות שלשמן הזמין משרד המשפטים את הפרויקט"
פרשת תנופ"ה מסתעפת: משרד המשפטים תובע מנס 79.5 מיליון שקלים[/size:ypga3xhm]
[size=150:ypga3xhm]כתב התביעה, שהוגש היום (ד'), מגובה בשתי חוות דעת מומחים הקובעות, כי "נס כשלה בפרויקט תנופ"ה כמעט בכל היבט של ניהול פרויקט תוכנה ובין היתר בניהול הזמן, ניהול האיכות, ניהול כוח אדם ומשאבים, ניהול התקשורת וניהול תכולת הפרויקט" ● התביעה הוגשה יומיים לאחר שתבעה נס את המשרד ודרשה פיצויים בגובה 20 מיליון שקלים ● נס טרם הגישה כתב הגנה[/size:ypga3xhm]
מקור:
ועוד דוגמא:
[size=200:ypga3xhm]יו"ר הוועדה לביקורת המדינה: "HP נכשלה לחלוטין בבניית ה-IT לשב"ס"[/size:ypga3xhm]
[size=150:ypga3xhm]"החברה בזבזה זמן יקר וכסף רב לגוף ממשלתי", אמר היו"ר, ח"כ אמנון כהן, בדיון שקיימה הוועדה על דו"ח מבקר המדינה שנוגע לפרויקט קידמה ● לדבריו, "HP ניגשת לכל מכרז אבל לא יודעים לבצע כל עבודה. מתגלחים על חשבוננו, ובסוף אין תפוקה ואין מערכת"[/size:ypga3xhm]
"HP נכשלה לחלוטין בבניית מערכת מיחשוב עבור שירות בתי הסוהר, ומשכה זמן יקר וכסף רב לגוף ממשלתי. היא ניגשת לכל מכרז אבל לא יודעת לבצע כל עבודה. מתגלחים על חשבוננו ובסוף אין תפוקה ואין מערכת", כך אמר ח"כ אמנון כהן, יושב ראש הוועדה לביקורת המדינה של הכנסת....
מקור:
[size=200:ypga3xhm]"חברת HP נכשלה בבניית מערכת מחשוב, ומשכה זמן וכסף רב מגוף ממשלתי"[/size:ypga3xhm]
[size=150:ypga3xhm]הוועדה לביקורת המדינה מאשימה את חברת HP בניפוח תקציב פרויקט מערכת מחשוב של שב"ס. בשנים 2004-2012 גדלו העלויות מ-43 מיליון שקל ל-144 מיליון[/size:ypga3xhm]
מקור:
אז אני לא ממש מתפעל מגולית הפלשתי......
פורסם במקור בפורום CODE613 ב06/02/2014 14:40 (+02:00)
משהו מעניין, קצת קשה ליצור תאריך המורכב מחלקים ב sql, כלומר אתה יכול להצהיר על משתנה datetime אבל להכניס לו ערך כמקשה אחת.
כתבתי פונקציה שעושה זאת, נראה קצת משונה שצריך לכתוב לו פונקציה שעושה פעולות משונות כדי להשיג ערך פשוט:
ALTER FUNCTION [dbo].[DateSerial]
(
-- Add the parameters for the function here
@Day int,@Month int,@Year int
)
RETURNS datetime
AS
BEGIN
-- Declare the return variable here
DECLARE @Result datetime
set @Result = (Select DateAdd(day, @Day - 1,
DateAdd(month, @Month - 1,
DateAdd(Year, @Year-1900, 0))));
-- Return the result of the function
RETURN @Result;
END
פורסם במקור בפורום CODE613 ב25/01/2014 23:15 (+02:00)
אני שמח שהתחושות שלי היו נכונות, למרבה המזל יש דרך לעשות את זה ב sql נקי במידת האפשר.
with cte as
(select 1 i union all
select i+1 i from cte where i < 5)
select dateadd(YEAR, i-1, '2010-01-01') from cte
מקור
אז מבחינתי הנושא נפתר, ואגב זה דבר שימושי ביותר למשתמשי SQL ואני חושב שיש כאן מן הבשורה
פורסם במקור בפורום CODE613 ב25/01/2014 22:29 (+02:00)
יש לי איזה קרוב משפחה שעובד ברפאל, כשהייתי ילד אני זוכר ששאלנו אותו, למה כל עולם המחשבים בנוי בבסיסו באנגלית, אי אפשר לתרגם את זה לעברית? הוא ענה תשובה שנחרטה בזכרוני עד עצם היום הזה, ומשרתת אותי לעוד שאלות רבות.
התשובה היתה קצרה מאוד: זה יותר זול ללמד את כל העולם אנגלית, מאשר לייצר עולם מחשוב מבוסס עברית.
אז ברור ששמות של פונקציות אתה כותב באנגלית, כי אתה מצטרף לעולם שלם שקיים כבר, של פונקציות על גבי פונקציות, אתה הולך באותה שיטה ואותו תלם שכבר דרכו בו רבים וכן טובים, ולא מנסה להיות הבן יהודה של עולם התיכנות.
לגבי הערות כותבים אותם בשפה המדוברת, אלא אם כן אתה מתעקש למכור לתאילנדים וכו', שאגב זאת אופציה לא מופקעת בכלל...
פורסם במקור בפורום CODE613 ב14/01/2014 23:30 (+02:00)
יש בדיחה שמתכנת אחד הלך בשליחות אשתו לקנות במכולת, היא אמרה לו כך: תביא לחם, ואם יש ביצים תביא 12.
המתכנת חזר עם 12 לחמים, הסיבה: אכן היו ביצים במכולת.
אז לגבי ראובן ושמעון, תלוי באיזה ראובן ושמעון מדובר...
בנוגע לשינויים של קליק וואן, אל תשכח שיש גם ערכי תאריכים אפשריים, וכן ערכי אותיות למה לא? שמת לב שלא הגדרתי טיפוס לערך. אז מה שעלול לעמוד לנו לרועץ זה רק ערכים ריקים, כי הפונקציה הזו נועדה בכל מקרה להחזיר ערך כלשהו ככל הניתן (השירות שהפונקציה הזאת נותנת הוא למקרים בהם יש לך 1 מתוך 2 שדות, ופעמים הרבה שאחד השדות ריקים והלא רוצים אנו בפונקציה)
פורסם במקור בפורום CODE613 ב06/01/2014 23:56 (+02:00)