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

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

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

עמודת קובץ מצורף SQL SERVER

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

    שלום
    אחד הדברים המעניינים באקסס 2007 ומעלה זה עמודת קובץ מצורף, שמתנהגת בדיוק כמו שדה קבצים מצורפים באימייל. ככל שניסיתי למצוא לזה פתרונות ב SQL SERVER או MYSQL וכדומה, הדברים מתוסבכים למכביר.
    יש כאן איזה מדריך נחמד, אם אין ברירה צריך לצלול למושגי הבינאריזציה, אבל אם מישהו יודע על משהו פשוט ופשטני, אשמח לשמוע.

    פורסם במקור בפורום CODE613 ב16/02/2014 12:31 (+02:00)

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

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

      למה לא טוב לך קישור?
      זה רע מאוד להטמיע קובץ במסד לדעתי.

      בכל אופן המדריך שהבאת מצויין והוא לא מסובך כ"כ.
      צריך לעשות טבלה לקבצים והעמודה תפנה לID מהטבלה הזו. תוכן הקובץ צריך להיות בעמודה בינארית באורך משתנה. זהו זה.
      השאלה היא בעיקר איפה אתה רוצה ליישם את התכנות: באקסס, דוט נט, או בSQL SERVER.
      בכל השלושה זה אפשרי נראה לי.

      פורסם במקור בפורום CODE613 ב16/02/2014 12:49 (+02:00)

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

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

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

        @ארכיטקט

        שלום
        אחד הדברים המעניינים באקסס 2007 ומעלה זה עמודת קובץ מצורף, שמתנהגת בדיוק כמו שדה קבצים מצורפים באימייל. ככל שניסיתי למצוא לזה פתרונות ב SQL SERVER או MYSQL וכדומה, הדברים מתוסבכים למכביר.
        יש כאן איזה מדריך נחמד, אם אין ברירה צריך לצלול למושגי הבינאריזציה, אבל אם מישהו יודע על משהו פשוט ופשטני, אשמח לשמוע.

        אתה מתכוון בתוך אקסס עם ODBC?

        אני השתמשתי ברעיון דומה כדי לשמור תמונות של חתימה.
        הטבלה:

        USE [neot]
        GO
        
        /****** Object:  Table [dbo].[tblBinary]    Script Date: 16/02/2014 12:46:50 ******/
        SET ANSI_NULLS ON
        GO
        
        SET QUOTED_IDENTIFIER ON
        GO
        
        CREATE TABLE [dbo].[tblBinary](
        	[ID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
        	[FileName] [nvarchar](255) NULL,
        	[binary] [image] NULL,
        	[FileNote] [nvarchar](255) NULL,
        	[IDS] [nvarchar](50) NULL,
        	[IDType] [int] NULL,
        	[cTime] [timestamp] NULL,
         CONSTRAINT [PK_tblBinary] PRIMARY KEY CLUSTERED 
        (
        	[ID] ASC
        )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
        ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
        
        GO
        

        קוד להכנסה לטבלה:

        Dim fd As New FileDialog
        fd.DialogType = DialogOpen
        fd.Filters.Add "*.Jpg|*.Jpg", "*.Jpg|*.Jpg"
        If fd.Show = 0 Then Exit Sub
        Me!img.Picture = fd.SelectedItems(1)
        
            Me!FileName = fd.SelectedItems(1)
        
             Dim streamADO As New ADODB.stream
            streamADO.type = adTypeBinary
         streamADO.Open
         streamADO.LoadFromFile fd.SelectedItems(1)
         Me!binary = streamADO.Read
        

        קוד להכנסת התמונה לתיבת תמונה (באותה שיטה אתה יכול לשמור את הקובץ)

        Me!img.PictureData = Me!binary
        

        פורסם במקור בפורום CODE613 ב16/02/2014 12:50 (+02:00)

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

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

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

          @דוד ל.ט.

          למה לא טוב לך קישור?
          זה רע מאוד להטמיע קובץ במסד לדעתי.

          בכל אופן המדריך שהבאת מצויין והוא לא מסובך כ"כ.
          צריך לעשות טבלה לקבצים והעמודה תפנה לID מהטבלה הזו. תוכן הקובץ צריך להיות בעמודה בינארית באורך משתנה. זהו זה.
          השאלה היא בעיקר איפה אתה רוצה ליישם את התכנות: באקסס, דוט נט, או בSQL SERVER.
          בכל השלושה זה אפשרי נראה לי.

          זה מביא אותי לדיון שמזמן רציתי להעלות כאן מהי הדרך הנכונה. בכל אופן לקבצים קטנים זה קל כשזה בטבלה, בקבצים גדולים זה מציק ולא בריא. (וגם מנפח בגיבוי).
          מייקרוסופט רצתה בעבר (בווינדוס לונגהורן = שהפכה לויסטה) לצאת עם מערכת קבצים חדשה שנקראת WINFS במימוש עם SQL SERVER (בארכיקטורה), טענו אז שזה יהיה מהיר בטירוף.... וזה נגנז משום מה.
          אבל גם כיום, זו שיטה לאכסן קבצים בDB. (נראה לי,[אני לא בטוח] שדרופבוקס משתמשים בSQL למימוש הענן שלהם)

          פורסם במקור בפורום CODE613 ב16/02/2014 12:57 (+02:00)

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

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

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

            אין ספק שקבצים בDB זה גרוע.
            לפעמים צריך לאחסן את חתימת הקובץ (CRC או כל זיהוי אחר) ואז זה בסדר גמור.

            שדה בינארי באורך משתנה, ומידע מיותר, זה לדעתי ממש משחית את יעילות הDB.

            פורסם במקור בפורום CODE613 ב16/02/2014 14:22 (+02:00)

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

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

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

              @ClickOne

              (נראה לי,[אני לא בטוח] שדרופבוקס משתמשים בSQL למימוש הענן שלהם)

              לי זה ממש לא נראה. שהם משתמשים בSQL.

              אולי בזה.
              http://he.wikipedia.org/wiki/Hadoop
              או משהו בסגנון.

              פורסם במקור בפורום CODE613 ב16/02/2014 17:45 (+02:00)

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

                יכול להיות. (וכמובן כשכתבתי SQL לא התכוונתי לשל מייקרוסופט <!-- s8-) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8-)" title="מגניב" /><!-- s8-) --> )

                פורסם במקור בפורום CODE613 ב16/02/2014 18:10 (+02:00)

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

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

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

                  נעדרתי מכאן זמן מה ואני רואה שהאשכול צמח, תודה על ההודעות, אבדוק אחת אחת.

                  פורסם במקור בפורום CODE613 ב17/02/2014 16:58 (+02:00)

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

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

                    ארכיטקט, אם תוכל לספר ולתרום מניסיונך, מה נכון לדעתך לעשות מבחינה ארכיטקטורה? הקבצים בתוך הDB או בתיקייה נפרדת עם קישור לשם הקובץ?
                    (כל קובץ פיזי הוא בעצם ישות של רשומה בטבלה, אבל בדיסק...)

                    פורסם במקור בפורום CODE613 ב24/02/2014 00:11 (+02:00)

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

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

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

                      @ClickOne

                      (כל קובץ פיזי הוא בעצם ישות של רשומה בטבלה, אבל בדיסק...)

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

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

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

                      פורסם במקור בפורום CODE613 ב24/02/2014 16:48 (+02:00)

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

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

                        אני הייתי עושה תיקייה עם הרשאות רק למשתמש של הSQL SERVER, ומוחקים וכותבים רק דרכו.

                        פורסם במקור בפורום CODE613 ב25/02/2014 16:10 (+02:00)

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

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

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

                          @ארכיטקט

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

                          עדיין אין לי ניסיון מספיק, אבל ברור שהדטה בייס יתנפח להחריד אם נאחסן בו קבצים (כשמדברים על גירסת אקספרס זה מוגבל הרי ל 10 גיגה), אינדקסים עלולים להיפגע, ועוד שלל צרות. העניין זה הניהול המקביל של הקבצים מול הדטה בייס בצורה נאותה, [u:42t9jma1]כאן זה קצת קשה ליצור ארכיטקטורה[/u:42t9jma1] אבל כנראה שלא תהיה ברירה.

                          למה קשה ליצור ארכיטקטורה, כבר נתת את הפתרון לעשות כמין 'בינדיג' בין המסד לבין תיקיית האיחסון, ובינדיג זה צריך להיות חד כיווני רק מהמסד לתיקיה.
                          ובישביל זה יש את הטריגרים וכמו שאמרת שכאשר ישתנו ו/או ימחקו רשומות זה יעודכן בתיקיה, וכדי למנוע מחיקה בטעות של קבצים מהתיקיה אפשר להגביל את ההרשאות כמו שאמר דוד, וגם אפשר להגדיר את התקיה כנסתרת, ה attribute של זה הוא 2 כך שגם אם האקספלורר יציג תיקיות נסתרות תיקיה זו לא תראה [בדומה לתמונות שבאות עם קבצי mp3].

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

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

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

                            פורסם במקור בפורום CODE613 ב27/02/2014 10:40 (+02:00)

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

                              @רחמים

                              ובינדיג זה צריך להיות חד כיווני רק מהמסד לתיקיה

                              זה לא כל כך פשוט כמו שאתה אומר, כי יש קבצי וורד למשל שאני רוצה לתת אפשרות עריכה למשתמש.

                              פורסם במקור בפורום CODE613 ב27/02/2014 10:48 (+02:00)

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

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

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

                                פורסם במקור בפורום CODE613 ב27/02/2014 11:45 (+02:00)

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

                                  דבר נוסף:
                                  תוכל להשתמש במחלקת System.IO.FileSystemWatcher כדי לקבל מידע על שינויים בתיקית האיחסון.

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

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

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

                                    השאלה שלי היא במקרה דלהלן:
                                    הDB יושב בVPS מרוחק.
                                    המשתמשים ניגשים לDB המרוחק עם תוכנה (לא משנה כרגע איזה, מה שתבחרו NodeJS, WPF, Access וכו').
                                    אני רוצה לצרף קבצים, לצורך הדוגמא הספציפית: קובץ וורד המכיל קו"ח של הלקוח.

                                    מהי הדרך הנכונה?

                                    אני כותב תהליך שחשבתי לעשות:

                                    1. להעלות את הקובץ (FTP, או כל דרך אחרת), ולשמור אותו בשרת בתיקייה מסויימת, עם תבנית מסויימת. לדוגמא: הקובץ ייקרא 1,2,3 וכו' שזה המזהה הייחודי של הרשומה ללא כל סיומת.
                                    2. כשיבקשו אותו אני יוריד אותו (שוב FTP, WS או כל דרך אחרת) וישמור אותו בשם המקורי שלו.
                                    3. אחרי השמירה, אני יעלה את הגירסה המעודכנת לשרת.

                                    לדעתכם זוהי הדרך, או לשמור בכזה מקרה את הקובץ בתוך הרשומה? (אין הרבה הבדל מהתהליך שכתבתי לעיל, רק להחליף את הFTP לשמירה פנימית - כל שאר התהליך נשאר.)

                                    בנוסף, אני צריך לחשוב מה יקרה אם 2 משתמשים יערכו את הקובץ באותו הזמן, מי ידרוס את מי? (בגוגל דרייב [ונראה לי גם בסקי דרייב] פתרו את זה בצורה מאד מעניינת, ע"י שאתה רואה מי עוד עורך איתך את הקובץ, וגם את השינויים שהוא עושה.)

                                    אולי בהמשך למה שארכיטקט הביא כאן, אפשר להשאיר את הקובץ ולשתף אותו עם גוגל דרייב או סקיי דרייב, ואז להציג את דף האינטרנט בתוך החלון של התוכנה, אבל זה לא כ"כ יעיל [כי גוגל דרייב לא עם תאימות מלאה לאופיס], וגם מתאים רק לקבצי אופיס, ואם נגיד שהמשתמשים ירצו לשתף קובץ פוטושופ ביחד - זה לא ילך.....

                                    אז מה אתם חושבים?????

                                    פורסם במקור בפורום CODE613 ב04/03/2014 00:39 (+02:00)

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

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

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

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

                                      זה נכון שלSQL SERVER יש מעלה בניהול אוטומטי של מנגנון הנעילות.

                                      פורסם במקור בפורום CODE613 ב04/03/2014 09:22 (+02:00)

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

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

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

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

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

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