为啥 Microsoft 不支持到 SQL Azure 的 OLE DB 连接?

Posted

技术标签:

【中文标题】为啥 Microsoft 不支持到 SQL Azure 的 OLE DB 连接?【英文标题】:Why doesn't Microsoft support OLE DB connections to SQL Azure?为什么 Microsoft 不支持到 SQL Azure 的 OLE DB 连接? 【发布时间】:2011-03-06 09:00:44 【问题描述】:

MSDN website 上写着“不支持使用 OLE DB 连接到 SQL Azure。

在网络上的其他地方,人们报告说,在调整连接字符串中的服务器名称后,它可以正常工作,例如 here 和 here。甚至 SQL Server 的Analysis Services uses OLE DB to connect to SQL Azure!

我在 Delphi 中开发了一个本机/非托管应用程序,该应用程序使用 ADO 通过 SQL Server 的 OLE DB 提供程序连接到 SQL Server。我正在考虑添加 SQL Azure 支持。如果我可以重用我的大部分代码而不做太多更改,那将非常有帮助。否则我可能不会考虑朝这个方向发展。

如果 Microsoft 能够更清楚地说明“不支持 OLE DB”的原因,将会很有帮助。如果在使用 OLE DB 时存在某些限制,它们是什么?也许我可以解决它们,或者它不会影响我。

Microsoft 还提到支持 ODBC。那么我可以使用“OLE DB provider to ODBC”并以这种方式连接吗?还是“不支持”包含 OLE DB 的任何组合?

【问题讨论】:

我刚刚注意到在“Windows Azure 平台”一书中,曾经在 SQL Azure 门户上提供了一个 OLE DB 连接字符串。这本书大约是六个月前出版的。 【参考方案1】:

您可以使用它,但它并未针对所有情况进行全面测试。本质上,它应该适用于大多数事情,但可能有一些边缘情况它不起作用。在我们记录这些案例之前,它仍然不受支持。话虽如此,如果您使用并遇到错误,我们很乐意了解它并优先解决。

【讨论】:

谢谢,邓瑞。这有帮助。我会试一试。我对 OLE DB 的使用将非常有限(对于 firehose 游标和更新命令)。如果我确实遇到了分歧,让微软合适的产品团队知道的最有效方法是什么? 我会通过博客直接联系 SQL Azure 团队 - blogs.msdn.com/sqlazure。或者,您可以随时以我的方式(通过 dunnry.com)发送电子邮件,我将重定向。【参考方案2】:

在此处投票支持 OleDB 对 Azure 的支持:

http://www.mygreatwindowsazureidea.com/forums/34685-sql-azure-feature-voting/suggestions/407269-ole-db-provider-for-connecting-to-sql-azure?ref=title

【讨论】:

【参考方案3】:

您可以使用 SQL Native Client 来使用 ADO,尽管很难找到此信息,您可以在此处 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 Native Client 支持的连接字符串如下所示:

"Provider=SQLNCLI10;Server=tcp:MyServerName.database.windows.net;Database=AdventureWorks2008R2;Uid=MyUserName@MyServerName;Pwd=MyPa$$w0rd;Encrypt=Yes;DataTypeCompatibility=80;"

您也可以添加“MARS Connection=True;”到多个记录集的连接字符串。

【讨论】:

谢谢;这很有帮助。请注意,如果密码字段包含保留字符(如分号),您可以在密码字段周围加上单引号。见***.com/questions/3177861/…

以上是关于为啥 Microsoft 不支持到 SQL Azure 的 OLE DB 连接?的主要内容,如果未能解决你的问题,请参考以下文章

为啥sqlserver 数据库还原不成功?

Microsoft 认知服务 SST 支持哪些音频格式?为啥 16 位 PCM x.wav 成功而 32 位 PCM y.wav 不成功?

为啥 Spark SQL 认为索引的支持不重要?

为啥 SQL Server 不支持无符号数据类型?

为啥SQL数据库不能用SQL Server身份登录 提示用户sa登录失败。(Microsoft SQL server,错误18456)

为啥 ASP.Net Identity 不支持删除