דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. שירשור טקסט sql לא עובד ומחזיר null

שירשור טקסט sql לא עובד ומחזיר null

מתוזמן נעוץ נעול הועבר ארכיון code613m
15 פוסטים 5 כותבים 845 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

    למה sql לא מסוגל לשרשר טקסט כמו בן אדם???? למה????
    שעתיים הלכו לי על שטויות, ולא מצליח למצוא מידע נורמלי באינטרנט על ההתנהגות הזאת.

    declare @TableName sysname ,@Sql nvarchar(4000)  , @CurrentRow int = 0 , @CurrentFieldName nvarchar(100) , @Currstr nvarchar(300)
    
    set @Currstr = 'aaa'
    set @Sql = @Sql + @Currstr 
    
    	insert into LogTable (Content)
    	select @Sql
    

    השמטתי דברים שלא נוגעים לכאן, כי זה קוד ארוך.
    הערך המוחזר בטבלת לוג הוא תמיד null

    פורסם במקור בפורום CODE613 ב27/01/2014 16:52 (+02:00)

    אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

    תגובה 1 תגובה אחרונה
    0
    • א מנותק
      א מנותק
      ארכיטקט
      כתב ב נערך לאחרונה על ידי
      #2

      טוב התשובה היא שצריך להגדיר אותו קודם כמחרוזת אפס.

      פורסם במקור בפורום CODE613 ב27/01/2014 16:55 (+02:00)

      אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

      תגובה 1 תגובה אחרונה
      1
      • רחמיםר מנותק
        רחמיםר מנותק
        רחמים מורחק
        כתב ב נערך לאחרונה על ידי
        #3

        אם היה דבאגר נורמאלי ו IDE נורמלי היית אתה וכולנו חוסכים את הכאב ראש הזה עם SQL. 😉

        פורסם במקור בפורום CODE613 ב27/01/2014 17:37 (+02:00)

        תגובה 1 תגובה אחרונה
        1
        • א מנותק
          א מנותק
          ארכיטקט
          כתב ב נערך לאחרונה על ידי
          #4

          יש בזה משהו, לכן אני בודק את האפשרויות שקליק וואן הציע לעשות CLR ואז נהיה חופשיים יותר. מעניין אם גם mysql מתנהג בצורה כל כך מטופשת בקוד שלו, עדיין לא צללתי לתוכו מספיק.

          פורסם במקור בפורום CODE613 ב27/01/2014 17:46 (+02:00)

          אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

          תגובה 1 תגובה אחרונה
          0
          • א מנותק
            א מנותק
            ארכיטקט
            כתב ב נערך לאחרונה על ידי
            #5

            עדיין עושה את הבעיה, הפעם העברתי את הקוד לפונקציה ולא מצליח להוציא משם טקסט.

            פורסם במקור בפורום CODE613 ב27/01/2014 19:14 (+02:00)

            אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

            תגובה 1 תגובה אחרונה
            0
            • clickoneC מנותק
              clickoneC מנותק
              clickone
              כתב ב נערך לאחרונה על ידי
              #6

              בלי להתמקד בקוד שלך, תעשה ISNULL() על כל מה שאתה משרשר.
              זה יבטיח שלא יהיו NULLים.
              SQL בניגוד לVB וC# לא יכול לשרשר NULL עם עוד מחרוזת. ברגע שמשהו NULL, הכל NULL.

              ISNULL([fld1],N'' ) +ISNULL([fld2],N'' )
              

              מקביל לNz באקסס...

              פורסם במקור בפורום CODE613 ב27/01/2014 21:18 (+02:00)

              אין טסט כמו פרודקשן.

              המייל שלי urivpn@gmail.com

              תגובה 1 תגובה אחרונה
              2
              • א מנותק
                א מנותק
                ארכיטקט
                כתב ב נערך לאחרונה על ידי
                #7

                הפתרון הסופי הוא שימוש בפוקנצייה CONCAT, תסתכל בקוד של תיעוד שינויים בדטה בייס שהעלתי לכאן.
                אין באמת שירשור בSQL.

                פורסם במקור בפורום CODE613 ב27/01/2014 21:42 (+02:00)

                אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                תגובה 1 תגובה אחרונה
                1
                • רחמיםר מנותק
                  רחמיםר מנותק
                  רחמים מורחק
                  כתב ב נערך לאחרונה על ידי
                  #8

                  אכן SQL שפה ישנה מאוד 😉

                  פורסם במקור בפורום CODE613 ב27/01/2014 21:56 (+02:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • clickoneC מנותק
                    clickoneC מנותק
                    clickone
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @ארכיטקט

                    הפתרון הסופי הוא שימוש בפוקנצייה CONCAT, תסתכל בקוד של תיעוד שינויים בדטה בייס שהעלתי לכאן.
                    אין באמת שירשור בSQL.

                    זה עובד ב2008?

                    SELECT CONCAT ( 'Happy ', 'Birthday ', 11, '/', '25' ) AS Result;
                    

                    מחזיר:

                    Msg 195, Level 15, State 10, Line 1
                    'CONCAT' is not a recognized built-in function name.
                    

                    למרות שבמייקרוסופט כתוב שזה נתמך עד2012, משמע גם ב2008.

                    אני בכל אופן אוהב בשירשור להשתמש בISNULL כי ברוב המקרים כשזה NULL אני רוצה שיהיה כתוב משהו. לדוגמא: ללא קטגוריה
                    ודבר נוסף שISNULL יודע להתמודד גם עם מספרים וכו' מה שאומר שאפשר לברוח מהכפלה בNULL כי זה ייהפך ל0.

                    פורסם במקור בפורום CODE613 ב27/01/2014 22:59 (+02:00)

                    אין טסט כמו פרודקשן.

                    המייל שלי urivpn@gmail.com

                    תגובה 1 תגובה אחרונה
                    1
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #10

                      אכן CONCAT זוהי פונקציה חדשה מ2012 (SERVER, הManagement Studio לא "מתערב" בעסק).
                      גירסאות קודמות צריכים להשתמש עם + ולוודא שהכל סטרינגים.
                      לSQL SERVER יש IDE נורמלי לחלוטין. רק שאתם ירוקים בעסק... כל מי שמתחיל ללמוד מסדי נתונים יודע שNull זה לא ערך. זה "בלתי ידוע" וממילא אם עושים לדוגמא

                      DECLARE @VAR int;
                      SELECT 100 - @VAR
                      

                      התוצאה אינה 100 (כי לא חיסרנו ממנו כלום), אלא NULL! כי הSQL לא יודע כמה זה מאה פחות XXX.

                      פורסם במקור בפורום CODE613 ב29/01/2014 14:32 (+02:00)

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      תגובה 1 תגובה אחרונה
                      2
                      • clickoneC מנותק
                        clickoneC מנותק
                        clickone
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @דוד ל.ט.

                        אכן CONCAT זוהי פונקציה חדשה מ2012 (SERVER, הManagement Studio לא "מתערב" בעסק).
                        גירסאות קודמות צריכים להשתמש עם + ולוודא שהכל סטרינגים.
                        לSQL SERVER יש IDE נורמלי לחלוטין. רק שאתם ירוקים בעסק... כל מי שמתחיל ללמוד מסדי נתונים יודע שNull זה לא ערך. זה "בלתי ידוע" וממילא עם עושים לדוגמא

                        DECLARE @VAR int;
                        SELECT 100 - @VAR
                        

                        התוצאה אינה 100 (כי לא חיסרנו ממנו כלום), אלא NULL! כי הSQL לא יודע כמה זה מאה פחות XXX.

                        וכאן נכנס ISNULL לעסק.

                        DECLARE @VAR int;
                        SELECT 100 - ISNULL(@VAR,0)
                        

                        יחזיר 100, כי ISNULL הופך את הNULL למה שתכתוב בפרמטר השני שלו. (אם הייתי שם 1 בפרמטר השני הוא היה מחזיר 99)

                        פורסם במקור בפורום CODE613 ב29/01/2014 14:40 (+02:00)

                        אין טסט כמו פרודקשן.

                        המייל שלי urivpn@gmail.com

                        תגובה 1 תגובה אחרונה
                        2
                        • א מנותק
                          א מנותק
                          ארכיטקט
                          כתב ב נערך לאחרונה על ידי
                          #12

                          Null זה כמו חור שחור בפיזיקה.... :lol: :lol: :lol: :lol: :lol: :lol:
                          Empty , Nothing' Missing כל הדברים האלו לא נראה לי שיש הבדל בעולם הווב.....

                          פורסם במקור בפורום CODE613 ב29/01/2014 15:57 (+02:00)

                          אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                          תגובה 1 תגובה אחרונה
                          1
                          • clickoneC מנותק
                            clickoneC מנותק
                            clickone
                            כתב ב נערך לאחרונה על ידי
                            #13

                            המשמעות של כולם כלפי המתכנת היא אותו דבר (בדרך הטיפול בזה)
                            ההבדל? כאן

                            ובזה אין הבדל בין ווב לאקסס לC# לVBNET ואולי גם לPHP וNodeJS....

                            פורסם במקור בפורום CODE613 ב29/01/2014 17:15 (+02:00)

                            אין טסט כמו פרודקשן.

                            המייל שלי urivpn@gmail.com

                            תגובה 1 תגובה אחרונה
                            0
                            • M מנותק
                              M מנותק
                              magicode
                              כתב ב נערך לאחרונה על ידי
                              #14

                              סתם לידע כללי.

                              בC.
                              NULL של הסטנדרט של C מציין 0. וזה טוב. למצביעים לאובייקטים שאם זה 0 אז זה לא מצביע לשום מקום.

                              וזה גם בif עובד כ false. ואין כזה דבר false בC אם מגדירים define ל FALSE אז הוא קיים.

                              בjs יש מושג שלא הכרתי בשפות אחרות Infinity שזה אומר אין סופי יש גם הפוך Infinity- למשל אם עושים 1/0 זה לא יוצר שגיאה זה מחזיר Infinity.
                              Infinity-1 זה תמיד Infinity.

                              לא יודע אם זה קיים בC# לפי מה שאני זוכר חילוק ב0 היה עושה שגיאה אם יש אשמח להחכים.

                              פורסם במקור בפורום CODE613 ב29/01/2014 17:53 (+02:00)

                              תגובה 1 תגובה אחרונה
                              1
                              • dovidD מנותק
                                dovidD מנותק
                                dovid ניהול
                                כתב ב נערך לאחרונה על ידי
                                #15

                                @magicode

                                בjs יש מושג שלא הכרתי בשפות אחרות Infinity שזה אומר אין סופי יש גם הפוך Infinity- למשל אם עושים 1/0 זה לא יוצר שגיאה זה מחזיר Infinity.
                                Infinity-1 זה תמיד Infinity.

                                לא יודע אם זה קיים בC# לפי מה שאני זוכר חילוק ב0 היה עושה שגיאה אם יש אשמח להחכים.

                                חילוק של Double באפס מחזיר NaN, שזה אומר כלום. לא נוצרת שגיאה.
                                ומספר גבוה מידי או נמוך מידי מיוצג ע"י Infinity חיובי ושלילי בהתאמה.
                                ראה בMSDN.

                                פורסם במקור בפורום CODE613 ב29/01/2014 19:12 (+02:00)

                                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                תגובה 1 תגובה אחרונה
                                0

                                בא תתחבר לדף היומי!
                                • התחברות

                                • אין לך חשבון עדיין? הרשמה

                                • התחברו או הירשמו כדי לחפש.
                                • פוסט ראשון
                                  פוסט אחרון
                                0
                                • דף הבית
                                • קטגוריות
                                • פוסטים אחרונים
                                • משתמשים
                                • חיפוש
                                • חוקי הפורום