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

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

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

אקסס מבוסס SQL

מתוזמן נעוץ נעול הועבר תכנות
16 פוסטים 5 כותבים 383 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • OdedDvirO מנותק
    OdedDvirO מנותק
    OdedDvir
    השיב לדוד החדש ב נערך לאחרונה על ידי OdedDvir
    #6

    @דוד-החדש כתב באקסס מבוסס SQL:

    אבל אני קצת מפחד לעשות שינויים על חי במסד פעיל

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

    א. הנוהל הנכון הוא להקים סביבת טסט, כלומר לשכפל את מסד הנתונים הקיים ל-db נוסף (אפשרי על אותו השרת), וכן ליצור עותק של ה-frontend של אקסס ולקשר אותו ל-db של הטסט. זה יוצר סביבת טסט מלאה ואוטונומית מהייצור לחלוטין, ומאפשר לך לבצע שינויים כרצונך שם, הן ב-backend והן ב-frontend, ורק לאחר בדיקת שפיות - אתה מעביר את השינויים לסביבה שבייצור.
    למעשה אתה הצעת משהו דומה, ליצור סביבת פיתוח לוקאלית אצלך, ולא אצל הלקוח. וכך באמת נוהגים בעולם האמיתי: מקימים (לפחות) 3 סביבות: פיתוח, טסט וייצור.

    ב. לעולם אין להעביר את הדאטא מהטסט לייצור, וכ"ש מסביבת הפיתוח, רק את השינויים בסכמה (מבנה הטבלאות, stored procedures וכו') או מטא-דאטא כגון טבלאות ערכים (ValueSets) שמתארות את הנתונים. למשל סוג לקוח:

    Id Description
    1 Admin
    2 User
    דוד החדשד תגובה 1 תגובה אחרונה
    3
    • דוד החדשד מנותק
      דוד החדשד מנותק
      דוד החדש
      השיב לOdedDvir ב נערך לאחרונה על ידי
      #7

      @OdedDvir כתב באקסס מבוסס SQL:

      ב. לעולם אין להעביר את הדאטא מהטסט לייצור, וכ"ש מסביבת הפיתוח, רק את השינויים בסכמה (מבנה הטבלאות, stored procedures וכו')

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

      אגב, לדעתי הבעלים של זה לא יודע את פרטי הכניסה של ה-SERVER שלו כי הוא עובד ישירות על אקסס, יש דרך לדעת את זה או דרך להעתיק את המסד בצורה אחרת?

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

        @דוד-החדש כתב באקסס מבוסס SQL:

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

        במקרים פשוטים, אתה פשוט חוזר על הצעדים בדיוק.
        @OdedDvir וכנראה גם @yossiz כנראה תיארו לעצמם שתכתוב משפטי SQL ותשנה צעד אחד צעד בDB של הפיתוח, אח"כ אתה מריץ את כל משפטי הSQL הללו בDB של היייצור.
        אני כפי ששמתי לב אמרתי אחרת שתעבוד ישירות על המסד, אבל אני לא יודע מה יהיה יותר קל לך כי כל אפשרות פה כרוכה באתגרים.

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

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

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

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

          @dovid כתב באקסס מבוסס SQL:

          במקרים פשוטים, אתה פשוט חוזר על הצעדים בדיוק.
          @OdedDvir וכנראה גם @yossiz כנראה תיארו לעצמם שתכתוב משפטי SQL ותשנה צעד אחד צעד בDB של הפיתוח, אח"כ אתה מריץ את כל משפטי הSQL הללו בDB של היייצור.

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

          @dovid כתב באקסס מבוסס SQL:

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

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

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

            אכן, זה מה שאני חושב שהם התכוונו. יש כלים משוכללים שנקראים db migration או versioning אבל הם לא פשוטים.

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

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

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

            תגובה 1 תגובה אחרונה
            1
            • OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              השיב לדוד החדש ב נערך לאחרונה על ידי OdedDvir
              #11

              @דוד-החדש כתב באקסס מבוסס SQL:

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

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

              אגב, אם יש לך אפשרות להתחבר ישירות לשרת ה-SQL של הלקוח מהמחשב שלך, ולא רק דרך RDP, ל-VS יש כלים שיכולים לעזור לך לנהל גרסאות של SQL, להשוות סכמות של שני db, ליצור script של כל השינויים הנדרשים, ולהריץ אותו על ה-db הרצוי.

              לגבי הסיסמה ל-SQL, ניתן בקלות לשלוף אותה מתוך האקסס, וזהו, אגב, אחד מהחסרונות של האריכטקטורה הזו. פשוט תריץ את השאילתא הבאה:

              SELECT Connect FROM MSysObjects WHERE Type=4
              
              דוד החדשד תגובה 1 תגובה אחרונה
              2
              • דוד החדשד מנותק
                דוד החדשד מנותק
                דוד החדש
                השיב לOdedDvir ב נערך לאחרונה על ידי
                #12

                @OdedDvir כתב באקסס מבוסס SQL:

                SELECTConnectFROM MSysObjects WHERE Type=6

                אני לא מצליח להריץ את הקוד. כותבים אותו בשאילתה רגילה באקסס?

                @OdedDvir כתב באקסס מבוסס SQL:

                אגב, אם יש לך אפשרות להתחבר ישירות לשרת ה-SQL של הלקוח מהמחשב שלך, ולא רק דרך RDP, ל-VS יש כלים שיכולים לעזור לך לנהל גרסאות של SQL, להשוות סכמות של שני db, ליצור script של כל השינויים הנדרשים, ולהריץ אותו על ה-db הרצוי.

                איך אני יכול לדעת את זה מראש לפני שאני מגיע אליו להעתיק את הכל?
                אני כרגע משתמש ב-SSMS ומחובר לSERVER שנמצא על המחשב שלי ולא ברשת. בשביל להתחבר לשרת מרוחק צריך יותר מאשר להזין בפרטי הכניסה את שם ה-SERVER והסיסמה?

                M OdedDvirO 2 תגובות תגובה אחרונה
                0
                • M מנותק
                  M מנותק
                  mekev
                  השיב לדוד החדש ב נערך לאחרונה על ידי mekev
                  #13
                  פוסט זה נמחק!
                  תגובה 1 תגובה אחרונה
                  0
                  • OdedDvirO מנותק
                    OdedDvirO מנותק
                    OdedDvir
                    השיב לדוד החדש ב נערך לאחרונה על ידי
                    #14

                    @דוד-החדש כתב באקסס מבוסס SQL:

                    אני לא מצליח להריץ את הקוד. כותבים אותו בשאילתה רגילה באקסס?

                    כן.

                    איך אני יכול לדעת את זה מראש לפני שאני מגיע אליו להעתיק את הכל?

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

                    M תגובה 1 תגובה אחרונה
                    0
                    • M מנותק
                      M מנותק
                      mekev
                      השיב לOdedDvir ב נערך לאחרונה על ידי
                      #15

                      @OdedDvir
                      ניסיתי אצלי בגרסת 2019
                      השאילתא כולל התנאי לא מחזירה תוצאה

                      ובלי משפט התנאי
                      מחזירה רק את המחרוזת חיבור
                      ללא השם משתמש והסיסמא

                      OdedDvirO תגובה 1 תגובה אחרונה
                      0
                      • OdedDvirO מנותק
                        OdedDvirO מנותק
                        OdedDvir
                        השיב לmekev ב נערך לאחרונה על ידי OdedDvir
                        #16

                        @mekev כתב באקסס מבוסס SQL:

                        השאילתא כולל התנאי לא מחזירה תוצאה

                        אתה צודק, זו היתה טעות שלי. הערך 6 בשדה Type מציין טבלה מקושרת בבסיס נתונים אקסס או אקסל (והשדה יציג את הסיסמה אליו...).
                        עבור טבלאות מקושרות השוכנות בבסיס של SQL הערך של Type שווה ל-4.
                        כך:

                        SELECT Connect FROM MSysObjects WHERE Type=4
                        

                        שיניתי גם במקור.
                        ולעצם העניין, אם יש לך Connection-String - היא אמורה להכיל כל פרטי ההתחברות כולל את הסיסמה.

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

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

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

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