在MSDN website它说,“不支持使用OLE DB连接到SQL Azure。”
在网络上还有其他地方,人们在调整连接字符串中的服务器名称后报告它可以正常工作,例如here和here。甚至是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 :(得分:7)
您可以使用它,但尚未对所有情况进行全面测试。从本质上讲,它应该适用于大多数事情,但可能会有一些边缘情况不起作用。在我们记录这些案例之前,它仍然不受支持。话虽这么说,如果你使用并遇到错误,我们很乐意了解它,并优先考虑修复它。
答案 1 :(得分:4)
在这里投票支持Azure的OleDB:
答案 2 :(得分:4)
您可以使用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支持的连接字符串将如下所示:
“提供者= SQLNCLI10;服务器= TCP:MyServerName.database.windows.net;数据库= AdventureWorks2008R2; UID = MyUserName输入@ MyServerName; PWD =迈帕足球俱乐部$$ w0rd;加密=是; DataTypeCompatibility = 80;”
您还可以添加“MARS Connection = True;”到多个记录集的连接字符串。