Почему Microsoft не поддерживает подключения OLE DB к SQL Azure? - PullRequest
10 голосов
/ 21 июня 2010

На веб-сайте MSDN написано: " Соединение с SQL Azure с помощью OLE DB не поддерживается. "

В Интернете есть другие места, где люди сообщают, что после настройки имени сервера в строке подключения они работают нормально, например здесь и здесь . Даже службы аналитики SQL Server используют OLE DB для подключения к SQL Azure !

Я разрабатываю собственное / неуправляемое приложение в Delphi, которое подключается к SQL Server с помощью ADO через поставщика OLE DB для SQL Server. Я рассматриваю возможность добавления поддержки SQL Azure. Было бы очень полезно, если бы я мог повторно использовать большую часть своего кода без особых изменений. В противном случае я бы не стал идти в этом направлении.

Было бы полезно, если бы Microsoft лучше поняла, почему «OLE DB не поддерживается». Если существуют определенные ограничения в использовании OLE DB, каковы они? Может быть, я могу обойти их, или, может быть, это не повлияет на меня.

Microsoft также упоминает, что ODBC поддерживается. Так можно ли использовать «OLE DB провайдера для ODBC» и подключиться таким образом? Или любая комбинация, включающая OLE DB, «не поддерживается»?

Ответы [ 3 ]

7 голосов
/ 25 июня 2010

Вы можете использовать его, однако он не был тщательно протестирован для всех случаев.По сути, он должен работать для большинства вещей, но могут быть несколько крайних случаев, когда он не будет работать.Пока мы не задокументируем эти случаи, он не будет поддерживаться.При этом, если бы вы использовали и столкнулись с ошибками, мы хотели бы знать об этом и расставить приоритеты для исправления.

4 голосов
/ 17 марта 2012

Вы можете использовать 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 ;. Также рекомендуется использовать DataTypeCompatibility = 80 ;. Поэтому строка подключения, поддерживаемая собственным клиентом SQL, будет выглядеть следующим образом:

"Provider = SQLNCLI10; Server = TCP: MyServerName.database.windows.net; Database = AdventureWorks2008R2; Uid = MyUserName @ MyServerName; PWD = MyPa $$ w0rd; Encrypt = Да, DataTypeCompatibility = 80;"

Вы также можете добавить «MARS Connection = True;» к строке подключения для нескольких наборов записей.

4 голосов
/ 26 января 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...