חיבור אקסס ל-SQL

חיבור אקסס ל-SQL

שלום לכולם,

האם מישהו מכיר דרך לשלוף נתונים מתוך אקסס בעבודה דרך SQL Server Management Studio...?
אולי חיבור של קובץ האקסס כ linked server...?

תודה,
יואב
 

כלליים

New member
למה לא בדרך המקובלת

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

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

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

כלליים

New member
אולי תתקין את השאלתות האלו באקסס?

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

אני אני בונה DW ב-SQL. ויש לי כלים אחרים (BI) שעובדים מול ה-SQL על ה-DW.
לצערי, הם לא עובדים מול אקסס, רק מול ה-SQL.
 

כלליים

New member
אבל לא אמרת

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

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

מה שאני מחפש לדעת זה כיצד אני מקשר את הטבלאות (או כל ה-DB) של האקסס ב-SQL.
 

lj101

New member
נכון שהנתונים נשמרים ב-SQL...

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

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

lj101

New member
זה בעייתי, ניתן לייבא/לקשר טבלאות...

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

השיטה השניה שדווקה אימצתי כאן בעקבות המלצת החברים היה ע"י יצירת שאילתות מעבר, מול שרת ה-SQL בשימוש ע"י חיבור ODBC,

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

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

אתה יכול לתת לי כיוון/סקריפט של נושא קישור הטבלאות?
 

כלליים

New member
מה הבעיה בקדומת

_DBO?
אפשר למחוק אותה ידנית, או בסקריפט.

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

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

lj101

New member
שאלת הדיוטות, איך אני מוחק את הקידומת DBO_

באמת מעניין אותי, את זה לא ידעתי.
 

pitoach

New member
תמכור: תבצע מה שרצית מההתחלה. זו הדרך הנכונה

תגדיר linked server ומאותו רגע תוכל לעבוד ב SQL עם האקסס מאחורי הקלעים בלי להרגיש שהוא קיים.

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

1) אין לי יכולת נכון להיום להמיר את האקסס ל-SQL, זה כן נמצא בתוכנית העבודה להמשך.
2) חלק מהטבלאות באקסס כבר הועברו ל-SQL, כאמור, הנושא נמצא בתהליך עבודה... אבל הדרך עוד ארוכה.
3) linked server לשרת SQL אני יודע לעשות... איך עושים זאת לקובץ אקסס? יש לך סקריפט לשלוח לי? מדובר בעצם על שני אקססים (אחד אקסס 97... כן כן אתם קוראים נכון, והשני אקסס 2007)
 

pitoach

New member
אתה יכול ליצור linked server לכל מקור נתונים

שאיתו עובדים OLE DB בעזרת OLE DB. פשוט בשרשרת ההתחברות צריך לרשום את הנתונים הנכונים

כמה זמן השקעת כדי למצוא תשובה לשאלה לפני שרשמת אותה?!?
נסה לרשום בגוגל:
sql linked server to access
נסה את הקישור השני... נראה מדריך טוב מאוד.
http://www.aspfree.com/c/a/microsof...d-microsoft-access-server-on-sql-2005-server/

* דרך אגב, יש בSSMS דוגמאות של template. תפתח את החלון של ה template Browser. כנס לתקייה של linked server ותראה שם דוגמה מוכנה של linked server לאקסס

** ייתכן שיהיה עלייך לבצע פעולה נוספת אם אתה עובד עם מערכת 64 ביט והאקסס שלך הוא 32 ביט. תוכל להעזר בקישור הבא להסבר:
http://ariely.info/Blog/tabid/83/EntryId/35/MS-Access-with-64-bit.aspx

*** הסבר כללי מקוצר על linked server תוכל למצוא כאן
חלק ראשון: http://ariely.info/Blog/tabid/83/EntryId/46/linked-server.aspx
חלק שני: http://ariely.info/dnn/Blog/tabid/83/EntryId/47/linked-server-part-2.aspx

אני מקווה שזה עוזר...
 

pitoach

New member
אתה לא מספק ממש אינפורמציה כדי שנוכל לעזור

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

עם עוד אינפורמציה אולי נוכל לעזור יותר כאן בפורום.
 
למעלה