【问题标题】: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。

在网络上的其他地方,人们报告说,在调整连接字符串中的服务器名称后,它可以正常工作,例如 herehere。甚至 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 连接字符串。这本书大约是六个月前出版的。

标签: delphi azure oledb ado azure-sql-database


【解决方案1】:

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

【讨论】:

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

【讨论】:

猜你喜欢
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多