【问题标题】:Connect to LocalDB with new ODBC Driver for SQL Server使用适用于 SQL Server 的新 ODBC 驱动程序连接到 LocalDB
【发布时间】:2016-03-01 19:30:32
【问题描述】:

更新:感谢 Dan Guzman,问题已得到解决。 我犯了一个错误,假设它是新的驱动程序,使用了旧的旧版 Driver={SQL Server};。相反,我应该使用Driver={ODBC Driver 11 for SQL Server},它是实际的新 ODBC 驱动程序。 我可以使用新驱动程序连接到 (Localdb)\v11.0


TL;TR:为什么我无法使用连接字符串中的新 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 连接字符串调用 SQLDriverConnect。如果我把驱动切换到SQL Server Native Client 11.0,突然就可以连接了。

我还测试了使用 %systemdrive%\Windows\System32\odbcad32.exe 生成 FILEDSN,我观察到完全相同的问题。

我可以与新的Driver={SQL Server} 连接的唯一本地数据库是Server=DEVBOX\SQLEXPRESS(如果在 C++ 代码中使用,当然要转义反斜杠)。

我找不到任何确认新的 SQL Server ODBC 驱动程序不支持 LocalDB。

仅在ODBC Driver for SQL Server for Linux的FAQ中注明

SQL Server 2012 的哪些功能做了这个版本的驱动 支持? Linux 上的 ODBC 驱动程序支持 SQL Server 2012 中除 LocalDB 之外的所有服务器功能。

如何在 Windows 上使用新的 ODBC 驱动程序连接到 LocalDB?

更新: 我正在使用 Windows 10 专业版 + VS2015。 我可以使用 SQL Server Management Studio 2016 (CTP) 连接到 (localdb)\v11.0DEVBOX\SQLEXPRESS。 (同样的问题已经在 MSDN 论坛上提出,here。)

【问题讨论】:

  • SQL-Native-Client 安装了吗?
  • @CPmunich 我相信我看到它在 odbcad32.exe 中列出的事实表明它已安装。顺便说一句,我已经添加了操作系统环境信息。

标签: sql-server odbc localdb


【解决方案1】:

ODBC 驱动程序SQL Server 是 Windows 附带的旧版 SQL Server ODBC 驱动程序,以实现向后兼容性。最新的 SQL Server ODBC 驱动程序是 ODBC Driver 11 for SQL Server。我相信这个 ODBC 驱动程序是随 SQL Server 2016 CTP 一起安装的。已发布的版本以separate download 的形式提供。

【讨论】:

  • 确实是我的错。我发现 MSDN 页面 (msdn.microsoft.com/en-us/library/jj730315.aspx) 确认:您在连接字符串中指定的驱动程序名称是 ODBC Driver 11 for SQL Server。
  • 只是一个更新:用于 SQL Server 的最新 ODBC 驱动程序现在是 13。您可以下载它here。我试图连接到 RODBC 中的本地数据库实例。使用旧版 {SQL Server} 驱动程序失败,使用 {ODBC Driver 13 for SQL Server} 成功。
猜你喜欢
  • 2017-04-08
  • 2018-09-30
  • 1970-01-01
  • 2020-06-01
  • 2016-03-04
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 2012-07-05
相关资源
最近更新 更多