זוכר את הימים התמימים בילדותך, כשלמדת לראשונה את אותיות האלפבית? נסה לחשוב עליהם כשנסקור את גירסת מסד הנתונים של האלפבית. הסעיפים הבאים מתארים את היסודות ומסבירים כיצד ניתן להגיע למסד נתונים באמצעות מחרוזות חיבור ולהשתמש בממשק תיכנות מסדי נתונים עבור קוד VBA ב- Access.
במאמר זה
שימוש במנהל התקן ODBC או בספק OLE DB
יצירת ממשק תוכניתי ל- SQL Server מ- Access
שימוש במנהל התקן ODBC או בספק OLE DB
מחרוזות חיבור קיימות כבר זמן רב. ניתן להגדיר מחרוזת חיבור מעוצבת בממשק המשתמש של Access או בקוד VBA. מחרוזת חיבור (ODBC או OLE DB) מעבירה מידע ישירות למסד הנתונים, כגון מיקום השרת, שם מסד הנתונים, סוג האבטחה ואפשרויות שימושיות אחרות. לדוגמה:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
בתחילת הדרך, היה לנו את SQL Server Native Client (SNAC), שמהווה ספריה עצמאית שהכילה טכנולוגיות ODBC ו- OLEDB, אשר עדיין זמין עבור גירסאות 2005 עד 2012 של SQL Server. יישומים רבים מדור קודם השתמשו ב- SNAC, והוא עדיין נתמך לצורך תאימות לאחור, אך לא מומלץ להשתמש בו לצורך פיתוח יישומים חדשים. יש להשתמש בגירסאות מתקדמות יותר של מנהלי ההתקנים של ODBC, אשר מסופקות בנפרד וניתנות להורדה.
מנהלי התקנים של ODBC
קישוריות מסד נתונים פתוחה (ODBC) מהווה פרוטוקול שבו ניתן להשתמש כדי לחבר מסד נתונים של Access למקור נתונים חיצוני, כגון Microsoft SQL Server. בדרך כלל, יש להשתמש במקורות נתונים של קובץ (הנקראים גם קבצי DSN) כדי להוסיף מחרוזת חיבור; במקרה זה, נעשה שימוש במילת המפתח FILEDSN במחרוזת החיבור. ניתן גם לאחסן ברישום; במקרה זה, נעשה שימוש במילת המפתח DSN. לחלופין, ניתן להשתמש ב- VBA כדי להגדיר מאפיינים אלו באמצעות מחרוזת חיבור "נטולת DSN".
במהלך השנים, מנהלי התקנים של ODBC סופקו בשלושה שלבים:
-
לפני 2005, מנהלי התקנים של ODBC סופקו באמצעות Windows Data Access Components (WDAC), אשר נקרא במקור Microsoft Data Access Components (MDAC). רכיבים אלו עדיין כלולים ב- Windows לצורך תאימות לאחור. לקבלת מידע נוסף, ראה Microsoft Data Access Components או Windows Data Access Components.
-
מנהלי התקנים של ODBC סופקו עם SNAC עבור SQL Server 2005 עד SQL Server 2012.
-
לאחר SQL Server 2012, מנהלי התקנים של ODBC סופקו בנפרד, והם מכילים תמיכה עבור תכונות חדשות של SQL Server.
לצורך פיתוח חדש, הימנע משימוש במנהלי התקנים של ODBC משני השלבים הראשונים, והקפד להשתמש במנהלי התקנים של ODBC מהשלב השלישי.
ספקי OLE DB
קישור והטבעה של אובייקטים, מסד נתונים (OLE DB) מהווה פרוטוקול עדכני יותר שבו ניתן להשתמש כדי לחבר מסד נתונים של Access למקור נתונים חיצוני, כגון Microsoft SQL Server. OLE DB אינו מחייב שימוש ב- DSN וכן מספק גישה מלאה למקורות נתונים של ODBC ולמנהלי התקנים של ODBC.
עצה בדרך כלל, יש להשתמש בתיבת הדו-שיח מאפייני קישור נתונים כדי להוסיף מחרוזת חיבור של OLE DB. למרות שאין דרך לפתוח את תיבת הדו-שיח מאפייני קישור נתונים מ- Access, ניתן להשתמש בסייר Windows: צור קובץ .txt ריק, שנה את סוג הקובץ ל- .udl ולאחר מכן לחץ פעמיים על הקובץ. לאחר יצירת מחרוזת חיבור, שנה את סוג הקובץ בחזרה ל- .txt
במהלך השנים, ספקי OLE DB סופקו בשלושה שלבים:
-
לפני 2005, ספקי OLE DB סופקו באמצעות Windows Data Access Components (WDAC), אשר נקרא במקור Microsoft Data Access Components (MDAC).
-
ספקי OLE DB סופקו עם SQL Server 2005 עד SQL Server 2017. ספקי OLE DB יצאו משימוש ב- 2011.
-
ב- 2017, ספקי OLE DB של SQL Server חזרו לשימוש.
הגירסה המומלצת הנוכחית לצורך פיתוח פתרונות חדשים היא OLE DB Driver 18 for SQL Server.
כיצד למטב את הביצועים באמצעות מחרוזת חיבור של ODBC
כדי למטב את הביצועים, הפחת את תעבורת הרשת, צמצם גישת ריבוי-משתמשים למסד הנתונים של SQL Server, והשתמש במחרוזות חיבור מועטות ככל האפשר על-ידי שימוש באותן מחרוזות חיבור בכמה ערכות של רשומות. למרות ש- ACE פשוט מעביר מחרוזת חיבור לשרת, הוא מבין את מילות המפתח הבאות ומשתמש בהן: DSN, DATABASE, UID, PWD ו- DRIVER כדי לצמצם את התקשורת בין הלקוח לשרת.
הערה אם חיבור ODBC למקור נתונים חיצוני מתנתק, Access מנסה להתחבר אליו מחדש באופן אוטומטי. אם הניסיון החוזר מסתיים בהצלחה, ניתן להמשיך לעבוד. אם הניסיון החוזר נכשל, ניתן עדיין לעבוד עם אובייקטים שאינם מסתמכים על החיבור. כדי להתחבר מחדש, סגור את Access ופתח אותו מחדש.
המלצות בעת שימוש גם ב- ODBC וגם ב- OLE DB
הימנע משילוב של טכנולוגיות גישה למסדי נתונים ומחרוזות חיבור. השתמש במחרוזת חיבור של ODBC עבור DAO. השתמש במחרוזת חיבור של OLE DB עבור ADO. אם היישום שלך מכיל קוד VBA שמשתמש גם ב- DAO וגם ב- ADO, השתמש במנהל התקן ODBC עבור DAO ובספק OLE DB עבור ADO. הקפד לקבל את התכונות והתמיכה העדכניות ביותר עבור ODBC ו- OLEDB.
ODBC משתמש במונח Driver, ו- OLE DB משתמש במונח Provider. המונחים מתארים את אותו סוג של רכיב תוכנה, אך לא ניתן להחליף ביניהם בתחביר מחרוזת החיבור. השתמש בערך הנכון בהתאם לתיעוד.
יצירת ממשק תוכניתי ל- SQL Server מ- Access
קיימות שתי דרכים עיקריות ליצירת ממשק תוכניתי למסד נתונים של SQL Server מ- Access.
DAO
אובייקט גישה לנתונים (DAO) מספק ממשק מופשט למסד נתונים. 'אובייקטי גישה לנתונים (DAO) של Microsoft' הוא מודל האובייקטים התוכניתי המקורי שמאפשר לך להגיע לליבה של Access ו- SQL Server כדי ליצור, למחוק, לשנות ולפרט אובייקטים, טבלאות, שדות, אינדקסים, קשרים, שאילתות, מאפיינים ומסדי נתונים חיצוניים.
לקבלת מידע נוסף, ראה חומר עזר בנושא 'אובייקטי גישה לנתונים של Microsoft'.
ADO
ActiveX Data Objects (ADO) מספק מודל תיכנות ברמה גבוהה, והוא זמין ב- Access על-ידי הפניה לספריה של צד שלישי. קל ללמוד כיצד להשתמש ב- ADO, והוא מאפשר ליישומי לקוח לגשת לנתונים ולטפל בנתונים ממגוון מקורות, כולל Access ו- SQL Server. היתרונות העיקריים שלו הם קלות השימוש, המהירות הגבוהה, התקורה הנמוכה של הזיכרון וטביעת הרגל הקטנה של הדיסק. בנוסף, ADO תומך בתכונות עיקריות עבור בנייה ויישומים מבוססי אינטרנט.
לקבלת מידע נוסף, ראה חומר עזר בנושא Microsoft ActiveX Data Objects ו- Microsoft ActiveX Data Objects (ADO).
באיזה מהם עליך להשתמש?
בפתרון Access שמשתמש בקוד VBA, ניתן להשתמש ב- DAO, ב- ADO או בשניהם כטכנולוגיית ממשק מסד הנתונים. DAO ממשיך להיות ברירת המחדל ב- Access. לדוגמה, כל הטפסים והדוחות והשאילתות של Access משתמשים ב- DAO. אך בעת המעבר ל- SQL Server, שקול להשתמש ב- ADO כדי להפוך את הפתרון ליעיל יותר. להלן קווים מנחים כלליים שיעזרו לך להחליט מתי להשתמש ב- DAO או ב- ADO.
השתמש ב- DAO כאשר ברצונך:
-
ליצור טופס מאוגד של קריאה/כתיבה מבלי להשתמש ב- VBA.
-
להפעיל שאילתות בטבלאות מקומיות.
-
להוריד נתונים לטבלאות זמניות.
-
להשתמש בשאילתות מעבר כמקורות נתונים עבור דוחות או טפסים במצב קריאה בלבד.
-
להגדיר אובייקט TableDef או Querydef ולהשתמש בו ב- VBA.
השתמש ב- ADO כאשר ברצונך:
-
לנצל דרכים נוספות למיטוב, כגון ביצוע פעולות אסינכרוניות.
-
להפעיל שאילתות מעבר של DDL ו- DML.
-
להגיע לנתוני SQL Server ישירות דרך ערכות של רשומות ב- VBA.
-
לכתוב קוד פשוט יותר עבור משימות מסוימות, כגון הזרמת רכיבי Blob.
-
לבצע קריאה ישירה לפרוצדורה מאוחסנת, עם פרמטרים, באמצעות אובייקט פקודה ב- VBA.
סיכום הגירסאות של מנהלי ההתקנים של ODBC
הטבלה הבאה מסכמת מידע חשוב לגבי גירסאות מנהלי ההתקנים של ODBC, מיקומי ההורדה והתמיכה בתכונות. הקפד להשתמש בגירסת הסיביות הנכונה (64 סיביות או 32 סיביות) של מנהל ההתקן בהתבסס על Windows, ולא על Office. אם פועל אצלך Access של 32 סיביות ב- Windows של 64 סיביות, עליך להתקין מנהלי התקנים של 64 סיביות, שכוללים את רכיבי 32 הסיביות הדרושים עבור Access.
לקבלת מידע נוסף, ראה שימוש במילות מפתח של מחרוזות חיבור עם SQL Server Native Client, הערות מוצר של ODBC to SQL Server ב- Windows (גירסה 17) ותכונות Microsoft ODBC Driver for SQL Server ב- Windows (גירסה 13 ו- 11).
גירסאות מנהלי ההתקנים של ODBC |
גירסה |
הורדה |
תכונות חדשות |
ODBC Driver 17.0 עד ODBC Driver 17.3 |
SQL Server 2017 |
ODBC Driver 17.3 שימוש ב- Azure Active Directory עם מנהל התקן ODBC מגבלות של מנהל התקן ODBC בעת שימוש ב- Always Encrypted ODBC Driver 17.2 שימוש ב- Always Encrypted עם ODBC Driver for SQL Server תמיכה ב- Unicode ואיסוף של קידוד בשרת UTF-8 ODBC Driver 17.1 שימוש ב- Always Encrypted עם ODBC Driver for SQL Server ODBC Driver 17.0 UseFMTONLY כדי להשתמש במטה-נתונים מדור קודם במקרים מיוחדים שמחייבים טבלאות זמניות. ראה הערות מוצר עבור ODBC to SQL Server ב- Windows |
|
ODBC Driver 13.1 |
SQL Server 2016 SP1, SQL Azure |
מאגר חיבורים המודע למנהל התקן במנהל התקן ODBC עבור SQL Server |
|
ODBC Driver 13.0 |
SQL Server 2016 |
שם תחום בינלאומי (IDN) |
|
ODBC Driver 11.0 |
SQL Server 2005 עד SQL Server 2012 |
גמישות חיבור ב- Windows ODBC Driver |
סיכום הגירסאות של ספקי OLE DB
הטבלה הבאה מסכמת מידע חשוב לגבי גירסאות ספקי OLE DB, מיקומי ההורדה והתמיכה בתכונות. הקפד להשתמש בגירסת הסיביות הנכונה (64 סיביות או 32 סיביות) של מנהל ההתקן בהתבסס על Windows, ולא על Office. אם פועל אצלך Access של 32 סיביות ב- Windows של 64 סיביות, עליך להתקין מנהלי התקנים של 64 סיביות, שכוללים את רכיבי 32 הסיביות הדרושים עבור Access.
לקבלת מידע נוסף, ראה שימוש במילות מפתח של מחרוזות חיבור עם SQL Server Native Client.
ספק OLE DB |
גירסה |
הורדה |
תכונות חדשות |
OLE DB Driver 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
תכונות OLE DB Driver for SQL Server והערות מוצר עבור Microsoft OLE DB Driver for SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005 עד SQL Server 2012 |
יצא משימוש; נא לא להשתמש |
|
OLE DB Driver (SQLOLEDB) |
יצא משימוש; נא לא להשתמש |
סיכום מילות המפתח של ODBC
הטבלה הבאה מסכמת את מילות המפתח של ODBC שמזוהות על-ידי SQL Server ואת מטרתן. רק חלק מהן מזוהות על-ידי Access.
מילת מפתח |
תיאור |
Addr |
כתובת הרשת של השרת שפועל בו מופע של SQL Server. |
AnsiNPW |
מציינת שימוש באופני פעולה המוגדרים לפי ANSI לטיפול בהשוואות NULL, ריווח נתוני תווים, אזהרות ושרשור NULL (Yes או No). |
APP |
שם היישום שמבצע קריאה ל- SQLDriverConnect. |
ApplicationIntent |
מצהירה על סוג עומס העבודה של היישום בעת התחברות לשרת (ReadOnly או ReadWrite). |
AttachDBFileName |
שם הקובץ הראשי של מסד נתונים הניתן לצירוף. |
AutoTranslate |
מציינת אם מחרוזות תווי ANSI נשלחות בין הלקוח או השרת או מתורגמות ל- Unicode (Yes או No). |
Database |
שם מסד הנתונים. תיאור מטרת החיבור. Driver שם מנהל ההתקן כפי שהוחזר על-ידי SQLDrivers. |
DSN |
השם של משתמש ODBC קיים או מקור נתונים קיים של המערכת. Encrypt מציינת אם הנתונים אמורים להיות מוצפנים לפני שליחתם דרך הרשת (Yes או No). |
Failover_Partner |
שם השרת השותף למעבר לגיבוי בעת כשל שבו יש להשתמש אם לא ניתן לבצע חיבור לשרת הראשי. |
FailoverPartnerSPN |
ה- SPN עבור השותף למעבר לגיבוי בעת כשל. |
Fallback |
מילת מפתח שיצאה משימוש. |
FileDSN |
השם של מקור נתונים קיים של קובץ עבור ODBC. Language שפת SQL Server. |
MARS_Connection |
מציינת ערכות תוצאות פעילות מרובות (MARS) בחיבור עבור SQL Server 2005 (9.x) ואילך (Yes או No). |
MultiSubnetFailover |
מציינת אם יש להתחבר אל המאזין לקבוצת הזמינות של קבוצת זמינות של SQL Server או למופע של אשכול מעבר לגיבוי בעת כשל (Yes או No). |
Net |
dbnmpntw מציין רכיבי Named Pipe, ו- dbmssocn מציין TCP/IP. |
PWD |
סיסמת הכניסה של SQL Server. |
QueryLog_On |
מציינת את הרישום של שאילתות בעלות הפעלה מתמשכת (Yes או No). |
QueryLogFile |
הנתיב המלא ושם הקובץ של קובץ שבו יש להשתמש כדי לבצע רישום נתונים בשאילתות בעלות הפעלה מתמשכת. |
QueryLogTime |
מחרוזת תווים מספרית שמציינת את הסף (באלפיות שניה) לרישום שאילתות בעלות הפעלה מתמשכת. |
QuotedId |
מציינת אם SQL Server משתמש בכללי ISO לגבי השימוש במרכאות במשפטי SQL (Yes או No). |
Regional |
מציינת אם מנהל התקן ODBC של SQL Server Native Client משתמש בהגדרות הלקוח בעת המרת נתוני מטבע, תאריך או שעה לנתוני תווים (Yes או No). |
SaveFile |
השם של קובץ מקור נתונים של ODBC שבו נשמרות תכונות החיבור הנוכחי אם החיבור התבצע בהצלחה. |
Server |
שם המופע של SQL Server: שרת ברשת, כתובת IP או כינוי של מנהל התצורה. |
ServerSPN |
ה- SPN עבור השרת. |
StatsLog_On |
מאפשרת לכידה של נתוני הביצועים עבור מנהל התקן ODBC של SQL Server Native Client. |
StatsLogFile |
הנתיב המלא ושם הקובץ של קובץ המשמש לתיעוד סטטיסטיקות הביצועים עבור מנהל התקן ODBC של SQL Server Native Client. |
Trusted_Connection |
מציינת אם נעשה שימוש במצב אימות Windows או בשם משתמש/סיסמה של SQL Server לצורך אימות הכניסה (Yes או No). |
TrustServerCertificate |
בעת שימוש עם Encrypt, מאפשרת הצפנה באמצעות אישור שרת בחתימה עצמית. |
UID |
שם הכניסה של SQL Server. |
UseProcForPrepare |
מילת מפתח שיצאה משימוש. |
WSID |
מזהה תחנת העבודה, שם הרשת של המחשב שבו נמצא היישום. |
סיכום מילות המפתח של OLE DB
הטבלה הבאה מסכמת את מילות המפתח של OLE DB שמזוהות על-ידי SQL Server ואת מטרתן. רק חלק מהן מזוהות על-ידי Access.
מילת מפתח |
תיאור |
Addr |
כתובת הרשת של השרת שפועל בו מופע של SQL Server. |
APP |
המחרוזת שמזהה את היישום. |
ApplicationIntent |
מצהירה על סוג עומס העבודה של היישום בעת התחברות לשרת (ReadOnly או ReadWrite). |
AttachDBFileName |
שם הקובץ הראשי של מסד נתונים הניתן לצירוף. |
AutoTranslate |
קובעת את תצורת תרגום התווים של OEM/ANSI (True או False). |
Connect Timeout |
משך הזמן (בשניות) להמתנה לסיום האתחול של מקור הנתונים. |
Current Language |
שם השפה של SQL Server. |
Data Source |
שם המופע של SQL Server בארגון. |
Database |
שם מסד הנתונים. |
DataTypeCompatibility |
מספר שמציין את מצב הטיפול בסוג נתונים שבו ייעשה שימוש. |
Encrypt |
מציינת אם הנתונים אמורים להיות מוצפנים לפני שליחתם דרך הרשת (Yes או No). |
FailoverPartner |
שם השרת למעבר לגיבוי בעת כשל המשמש לשיקוף מסד נתונים. |
FailoverPartnerSPN |
ה- SPN עבור השותף למעבר לגיבוי בעת כשל. |
Initial Catalog |
שם מסד הנתונים. |
Initial File Name |
שם הקובץ הראשי (כולל שם הנתיב המלא) של מסד נתונים הניתן לצירוף. |
Integrated Security |
משמשת עבור אימות Windows (SSPI). |
Language |
שפת SQL Server. |
MarsConn |
מציינת ערכות תוצאות פעילות מרובות (MARS) בחיבור עבור SQL Server 2005 (9.x) ואילך (Yes או No). |
Net |
ספריית הרשת שבה נעשה שימוש כדי ליצור חיבור למופע של SQL Server בארגון. |
Network Address |
כתובת הרשת של מופע של SQL Server בארגון. |
PacketSize |
גודל המנה ברשת. ברירת המחדל היא 4096. |
Persist Security Info |
מציינת אם המאפיין Persist Security זמין (True או False). |
PersistSensitive |
מציינת אם המאפיין Persist Sensitive זמין (True או False). |
Provider |
עבור SQL Server Native Client, הערך צריך להיות SQLNCLI11. |
PWD |
סיסמת הכניסה של SQL Server. |
Server |
שם המופע של SQL Server: שרת ברשת, כתובת IP או כינוי של מנהל התצורה. |
ServerSPN |
ה- SPN עבור השרת. |
Timeout |
משך הזמן (בשניות) להמתנה לסיום האתחול של מקור הנתונים. |
Trusted_Connection |
מציינת אם נעשה שימוש במצב אימות Windows או בשם משתמש/סיסמה של SQL Server לצורך אימות הכניסה (Yes או No). |
TrustServerCertificate |
מציינת אם אישור שרת מאומת (True או False). |
UID |
שם הכניסה של SQL Server. |
Use Encryption for Data |
מציינת אם הנתונים אמורים להיות מוצפנים לפני שליחתם דרך הרשת (True או False). |
UseProcForPrepare |
מילת מפתח שיצאה משימוש. |
WSID |
מזהה תחנת העבודה, שם הרשת של המחשב שבו נמצא היישום. |