更新:感谢Dan Guzman的帮助,问题已解决。
我犯了一个错误,使用了旧的传统Driver={SQL Server};
,认为它是新的驱动程序。相反,我应该使用实际的新ODBC驱动Driver={ODBC Driver 11 for SQL Server}
。
我可以使用新驱动程序连接到(Localdb)\v11.0。
简要概述:为什么我无法使用新的Driver={SQL Server};
在连接字符串中连接到(Localdb)\v11.0,但如果我将驱动程序切换到旧的Driver={SQL Server Native Client 11.0};
就可以连接?
我使用的其余连接字符串参数(如果在C++代码中使用,请进行反斜杠转义):
Server=(localdb)\v11.0;Integrated Security=True;
我正在尝试通过ODBC访问SQL Server,并使用DSN-less连接字符串调用SQLDriverConnect
。如果将驱动程序切换到SQL Server Native Client 11.0,则突然可以连接。
我还测试了使用%systemdrive%\Windows\System32\odbcad32.exe
生成FILEDSN,并观察到完全相同的问题。
我可以使用新的Driver={SQL Server}
连接到唯一的本地数据库是Server=DEVBOX\SQLEXPRESS
(当然,在C++代码中使用反斜杠进行转义)。
我找不到任何证实新版ODBC Driver for SQL Server不支持LocalDB的确认。
只在Linux上的ODBC Driver for SQL Server FAQ中指出。
这个驱动程序版本支持SQL Server 2012的哪些功能? Linux上的ODBC驱动程序支持SQL Server 2012中的所有服务器特性,除了LocalDB。
如何使用新的ODBC驱动程序在Windows上连接到LocalDB?
更新:
我正在使用Windows 10 Pro + VS2015。
我可以使用SQL Server Management Studio 2016 (CTP)连接到(localdb)\v11.0
和DEVBOX\SQLEXPRESS
。
(同样的问题已在MSDN论坛上提问,这里。)