2010-06-21 62 views
10

在它说MSDN website使用OLE DB连接到SQL Azure是不支持的。为什么Microsoft不支持到SQL Azure的OLE DB连接?

有网络上的其他地方,人们报告说,它在调整服务器名称后工作正常,他们连接字符串,如herehere。即使SQL Server的Analysis Services uses OLE DB to connect to SQL Azure

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

如果微软更清楚地说明“为什么不支持OLE DB”这将有所帮助。如果在使用OLE DB时存在某些限制,它们是什么?也许我可以解决他们,或者它不会影响我。

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

+0

我刚刚在书“Windows Azure平台”中发现,在SQL Azure门户上提供了一个OLE DB连接字符串。这本书是在六个月前出版的。 – Troy 2010-06-21 15:27:33

回答

7

您可以使用它,但是并未对所有情况进行全面测试。从本质上讲,它应该适用于大多数情况,但可能会出现一些无法工作的边缘情况。在我们记录这些情况之前,它仍然不受支持。这就是说,如果你要使用和遇到错误,我们很想知道它,并确定优先级,以便修复。

+0

谢谢,dunnry。这有帮助。我会试一试。我对OLE DB的使用将非常有限(对于光标游标和更新命令)。如果我确实遇到了不一致的情况,那么让Microsoft的正确产品团队知道的最有效方法是什么? – Troy 2010-06-25 12:15:12

+0

我会直接通过博客 - http://blogs.msdn.com/sqlazure与SQL Azure团队联系。或者,您可以随时通过我的方式发送电子邮件(通过dunnry.com),我将重定向。 – dunnry 2010-06-27 17:15:03

4

您可以使用ADO使用SQL Native客户端虽然这些信息是很难找到的,你可以读到这里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 ;加密=是; DataTypeCompatibility = 80;”

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

+2

谢谢;这很有帮助。注意,如果密码字段包含分号等保留字符,则可以在密码字段周围引用单引号。请参阅http://stackoverflow.com/questions/3177861/escape-quote-in-web-config-connection-string – 2012-08-31 17:08:40

相关问题