नए Microsoft SQL सर्वर ODBC और OLEDB ड्राइवर को अलग करना
आप में से कुछ पहले से ही जानते होंगे कि Microsoft OLEDB के अपने नियोजित पदावनति पर पीछे हट गया और एक नया OLEDB ड्राइवर प्रदान किया। हालाँकि, यह पता लगाना एक सिर खुजलाने वाला हो सकता है कि आपको क्या उपयोग करना चाहिए। जब हम SQL सर्वर नेटिव क्लाइंट का उपयोग कर रहे थे, तो यह बहुत आसान था - नेटिव क्लाइंट के पास OLEDB और ODBC दोनों को एक ही DLL फ़ाइल में भेज दिया गया, जिससे आसान इंस्टॉलेशन हो सके। आपको बस यह सुनिश्चित करना है कि आप मूल ग्राहक के सही संस्करण का उपयोग कर रहे हैं।
SQL सर्वर अब Linux पर उपलब्ध है, अब मूल क्लाइंट को वितरित करने का कोई मतलब नहीं है, क्योंकि Linux सामान्य रूप से OLEDB का समर्थन नहीं करता है, जो मुख्य रूप से Microsoft उत्पादों द्वारा मुख्य रूप से उपयोग की जाने वाली Windows-only तकनीक है। इस कारण से, Microsoft ने ODBC और OLEDB दोनों को एक ही DLL में संयोजित करने का विकल्प नहीं चुना है। यदि आपके एप्लिकेशन में VBA कोड है जो DAO और ADO दोनों का उपयोग करता है, तो आपको दो इंस्टॉल करना होगा विभिन्न प्रदाताओं को क्रमशः ODBC और OLEDB दोनों के लिए नवीनतम सुविधा और समर्थन प्राप्त करने के लिए।
नामकरण परंपरा थोड़ी भ्रमित करने वाली हो सकती है क्योंकि बहुत से लोग विभिन्न ड्राइवरों को केवल "ODBC ड्राइवर" या "OLEDB प्रदाता" के रूप में संदर्भित करेंगे। तो चलिए सीधे नाम लेते हैं। हम बहिष्कृत संस्करणों की पहचान करने के साथ शुरू करेंगे और फिर वर्तमान संस्करणों को देखेंगे।
बहिष्कृत संस्करण
डिफ़ॉल्ट रूप से, विंडोज़ के सभी संस्करण दो SQL सर्वर डेटा एक्सेस क्लाइंट लाइब्रेरी के साथ पहले से इंस्टॉल आते हैं:
SQL सर्वर के लिए Microsoft OLE DB प्रदाता (जिसे SQLOLEDB के रूप में भी जाना जाता है)
Microsoft SQL Server ODBC ड्राइवर (जिसे SQLODBC भी कहा जाता है)
यह बहुत है यह नोट करना महत्वपूर्ण है कि वे बहिष्कृत . हैं . वे SQL Server 2000 को लक्षित कर रहे हैं और तब से पेश की गई नई सुविधाओं की कमी है। विंडोज़ नहीं किसी भी नए ड्राइवर को शिप करें या उसके विंडोज अपडेट के माध्यम से अपडेट करें। आगे बढ़ते हुए, आपको, एप्लिकेशन डेवलपर को, विंडोज द्वारा प्रदान किए गए लोगों पर निर्भर होने के बजाय, अपने एप्लिकेशन के साथ उपयोग करने के लिए उपयुक्त संस्करण के ड्राइवरों को प्रदान करना होगा। नहीं करें अपने वर्तमान विकास में उनका उपयोग करें।
वर्तमान संस्करण
उस रास्ते से बाहर, आइए सही ODBC ड्राइवर और OLEDB प्रदाता को देखें जिसका हम उपयोग करना चाहते हैं।
SQL सर्वर के लिए ODBC ड्राइवर 17
लेखन के समय, SQL सर्वर के लिए ODBC ड्राइवर 17 नवीनतम ड्राइवर है और इसे दिए गए लिंक में डाउनलोड किया जा सकता है। कनेक्शन स्ट्रिंग इस तरह दिखती है:
ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=myServer;DATABASE=myDatabase;
SQL सर्वर के लिए OLE DB ड्राइवर 18
लेखन के समय, OLEDB ड्राइवर 18 नवीनतम ड्राइवर है। भले ही संस्करण एक उच्चतर है, सुविधा सेट SQL सर्वर के लिए ODBC ड्राइवर 17 के बराबर है। कनेक्शन स्ट्रिंग इस तरह दिखती है:
Provider=MSOLEDBSQL;Server=myServer; Database=myDataBase;
32-बिट या 64-बिट?
एक सामान्य प्रश्न जो सामने आता है वह यह है कि क्या किसी को ड्राइवर के 64-बिट या 32-बिट संस्करणों को स्थापित करना चाहिए। उत्तर समान है, भले ही हम किन संस्करणों पर चर्चा कर रहे हों और यह हमेशा ओएस पर निर्भर होता है, कार्यालय पर नहीं। इसलिए, यदि आप 64-बिट विंडोज़ पर 32-बिट एक्सेस चला रहे हैं, तो आप 64-बिट ड्राइवर स्थापित करना चाहेंगे। इसमें 32-बिट एक्सेस के साथ चलने के लिए आवश्यक 32-बिट घटक शामिल होंगे।
क्या मैं SQL सर्वर नेटिव क्लाइंट का उपयोग कर सकता हूं?
आधिकारिक तौर पर, SQL सर्वर मूल क्लाइंट SQL Server 2012 तक समर्थित है। हालाँकि, आप अभी भी SQL सर्वर के नए संस्करणों से कनेक्ट करने के लिए इसका उपयोग कर सकते हैं। ऐसी कई विशेषताएं हैं जो मूल क्लाइंट से गायब हैं। जैसे-जैसे समय आगे बढ़ेगा, वे आपकी आवश्यकताओं के लिए तेजी से अनुपयुक्त हो जाएंगे, विशेष रूप से Azure तकनीक के साथ। यद्यपि आप अपने मौजूदा अनुप्रयोगों के लिए इसका उपयोग जारी रखने में सक्षम हो सकते हैं, हम प्रोत्साहित करते हैं कि आप अलग ओडीबीसी और ओएलडीडीबी ड्राइवरों का उपयोग करके नए विकास की योजना बनाएं और जब संभव हो तो अपने मौजूदा अनुप्रयोगों को माइग्रेट करें। आपको तब माइग्रेट करना होगा जब नई तकनीकों का उपयोग करने की आवश्यकता हो जो केवल उन नए ड्राइवरों द्वारा समर्थित हों (उदाहरणों में Azure प्रमाणीकरण या हमेशा एन्क्रिप्टेड सुविधा शामिल हैं)।
क्या मुझे दोनों की आवश्यकता है?
केवल अगर आप डीएओ और एडीओ दोनों का उपयोग करते हैं। सामान्यतया, सभी प्रपत्र और रिपोर्ट और एक्सेस प्रश्न हमेशा डीएओ का उपयोग करते हैं। केवल एक बार जब आप ADO का उपयोग कर सकते हैं VBA कोड के भीतर है। इसलिए यदि आप एडीओ का उपयोग नहीं करते हैं, तो आप केवल ओडीबीसी चालक के साथ भाग सकते हैं और यह आपकी आवश्यकता के लिए पर्याप्त होना चाहिए। इसका मतलब है कि जब आप सामान्य रूप से अपनी तालिकाओं को लिंक करते हैं, तो आप निम्न के समान कोड का उपयोग करेंगे:
Dim db As DAO.Database
Dim tdf As DAO.TableDef
सेट db =CurrentDb
tdf =db.CreateTableDef सेट करें
tdf.Name ="MyRemoteTable"
tdf.SourceTableName ="dbo.MyRemoteTable"
tdf.Connect ="ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=myServer;DATABASE=myDatabase;"पी>
db.TableDefs.Append
Tdf.Connect के लिए उपयोग किया जाने वाला सिंटैक्स पास-थ्रू querydef या यहां तक कि DAO.Workspace.OpenDatabase विधि की कनेक्ट प्रॉपर्टी के लिए भी काम करता है।
ओडीबीसी का उपयोग करके एडीओ कनेक्शन खोलना कानूनी है लेकिन नकारात्मक पक्ष यह है कि आप अधिक परतों से गुजरते हैं क्योंकि आप ओडीबीसी के लिए ओडीबीसी प्रदाता का उपयोग एसक्यूएल सर्वर के लिए ओडीबीसी ड्राइवर 17 से कनेक्ट करने के लिए करेंगे। यदि आप अभी भी ODBC का उपयोग करना चाहते हैं, तो आप OLEDB पर ODBC का उपयोग करने के लिए निम्न कोड का उपयोग कर सकते हैं:
Dim con As ADODB.Connection
सेट con =नया ADODB.Connection
con.ConnectionString ="DRIVER=ODBC Driver 17 for SQL Server;SERVER=myServer;DATABASE=myDatabase;"
con.Open
अतिरिक्त परत से बचना और सीधे OLEDB का उपयोग करना बेहतर है। आप अपने एडीओ कोड के साथ सर्वश्रेष्ठ प्रदर्शन प्राप्त करने के लिए इस कोड का उपयोग कर सकते हैं:
Dim con As ADODB.Connection
सेट con =नया ADODB.Connection
con.ConnectionString ="प्रदाता =MSOLEDBSQL; सर्वर =myServer; डेटाबेस =myDataBase;”
con.Open
इस प्रकार, केवल तभी आपको SQL सर्वर के लिए नए OLEDB ड्राइवर की वास्तव में आवश्यकता होगी और उसका उपयोग तब होगा जब आपके एप्लिकेशन में ADO कोड होगा और आप ADO की पूर्ण क्षमता का उपयोग करना चाहते हैं, जिसे अंतर्निहित OLEDB ड्राइवर द्वारा सक्षम करने की आवश्यकता है।पी>
अतिरिक्त संदर्भ
माइक्रोसॉफ्ट डेटा एक्सेस टेक्नोलॉजी के लिए रोडमैप