سؤال

في ال موقع MSDN انها تقول، "لا يتم دعم الاتصال بـ SQL Azure باستخدام OLE DB."

هناك أماكن أخرى على الويب حيث يبلغ الناس أنها تعمل بشكل جيد لهم بعد تغيير اسم الخادم في سلسلة الاتصال ، مثل هنا و هنا. حتى SQL Server تستخدم خدمات التحليل OLE DB للاتصال بـ SQL Azure!

أقوم بتطوير تطبيق أصلي/غير مُدار في Delphi يتصل بخادم SQL باستخدام ADO من خلال مزود OLE DB لخادم SQL. أنا أفكر في إضافة دعم SQL Azure. سيكون من المفيد حقًا أن أتمكن من إعادة استخدام غالبية الكود الخاص بي دون أن لا يكون الكثير من التغيير. ربما لن أفكر في الذهاب إلى هذا الاتجاه بطريقة أخرى.

سيكون من المفيد إذا كانت Microsoft أكثر وضوحًا حول سبب "Ole DB غير مدعوم". إذا كانت هناك قيود معينة في استخدام OLE DB ، فما هي؟ ربما يمكنني العمل من حولهم ، أو ربما لن يؤثر علي.

تذكر Microsoft أيضًا أن ODBC مدعوم. هل يمكنني استخدام "مزود OLE DB إلى ODBC" والتوصيل بهذه الطريقة؟ أم أن أي مزيج يتضمن OLE DB "غير مدعوم"؟

هل كانت مفيدة؟

المحلول

يمكنك استخدامه ، ومع ذلك لم يتم اختباره بدقة لجميع الحالات. في الأساس ، يجب أن تعمل في معظم الأشياء ، ولكن قد يكون هناك عدد قليل من الحالات التي لن تعمل فيها. حتى نوثق هذه الحالات ، يبقى غير مدعوم. ومع ذلك ، إذا كنت ستستخدم الأخطاء وتصادفها ، فسنحب أن نعرف ذلك وتحديد أولويات ذلك.

نصائح أخرى

يمكنك استخدام ADO باستخدام عميل SQL الأصلي على الرغم من أنه من الصعب العثور على هذه المعلومات http://msdn.microsoft.com/en-us/library/MS130978(SQL.110).aspx و هنا http://msdn.microsoft.com/en-us/library/MS131035(SQL.110).aspx.

في سلسلة الاتصال بدلاً من استخدام Provider = sqloledb ؛ يمكننا استخدام Provider = sqlncli10 ؛. يوصى أيضًا باستخدام توافق datatypeCipatibility = 80 ؛. لذا فإن سلسلة الاتصال المدعومة من العميل المدعوم من SQL ستبدو هكذا:

"Provider = sqlncli10 ؛ server = tcp: myservername.database.windows.net ؛ database = AdventureWorks2008r2 ؛ uid = myusername@myserverName ؛ pwd = mypa $$ w0rd ؛ ensrypt = yes ؛ datatypeCipalibility = 80 ؛"

يمكنك أيضًا إضافة "Mars Connection = True ؛" إلى سلسلة الاتصال لمجموعات السجلات المتعددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top