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

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

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

אקסס מבוסס SQL

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

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

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

    אני אשמח מאוד לשמוע הדרכה בסיסית איך עושים את זה
    בתודה מראש

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

      א. עריכת מסד נתונים יכולה להתבצע ב"חי", ע"י פקודות של DML כמו ALTER DROP וכולי.
      אם רוצים לערוך ויזואלית כמו אקסס, יש כלי של Microsoft ששמו SSMS = SqlServer Management Studio, זו תכונה גדולה וכבדה (אין לי מושג למה) והיא מאפשרת עריכה ויצירה של טבלאות ויזואלית.
      ב. תתחבר מהבית, SQL SERVER זה שירות! זה לא אקסס וזה לא איזה קובץ שהולך בדיסק און קי. להעתיק מסד ולהחזיר יכול להפוך לכאב ראש מלבד ההשבתה שזה עלול לחייב.

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

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

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

        @dovid קודם כל תודה על ההתייחסות והתשובה.
        התקנתי אצלי את SSMS ואני באמת עשיתי איתו תרגולים, אבל אני קצת מפחד לעשות שינויים על חי במסד פעיל. אין אפשרות להעתיק מבנה, לשנות אותו ואז להחזיר את המבנה לנתונים (אני לא משנה עמודות של נתונים קיימים בטבלה אלא רק מוסיף עמודות וטבלאות).
        ב. הוא עובד ישירות באקסס ולא ב-SQL SERVR. השאלה אם יש לי דרך לדעת את פרטי הכניסה שלו.

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

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

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

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

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

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

            א. תאמין לי יותר מפחיד הרעיון שלך. באקסס זה פשוט, בSQL SERVER זה ממש לא.

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

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה
            1
            • 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
                                  • דף הבית
                                  • קטגוריות
                                  • פוסטים אחרונים
                                  • משתמשים
                                  • חיפוש
                                  • חוקי הפורום