【发布时间】:2018-05-02 17:03:34
【问题描述】:
在使用 DSN 与使用 R 包 ODBC 的非 DSN 之间遇到问题。
使用 DSN,我能够成功地连接到服务器并且代码消失了。但是,使用非 DSN odbc 连接字符串,我收到:
错误:nanodbc/nanodbc.cpp:950: IM002: [Microsoft][ODBC Driver Manager] Data >源名称未找到且未指定默认驱动程序
连接似乎在语法上是正确的,并且所有必填字段都根据多个函数文档填充,包括:https://support.rstudio.com/hc/en-us/articles/214510788-Setting-up-R-to-connect-to-SQL-Server-
odbc_con <- dbConnect(odbc::odbc(),
Driver = "SQLServer",
Server = server,
Database = test,
Uid = 'username',
Pwd = 'password',
Port = 1433)
服务器和测试都在前面的代码中定义。 我尝试删除 odbc:: 并仅使用 odbc()。 使用分号,去掉大写。
卡住了,有什么建议吗?
【问题讨论】:
-
你的操作系统是什么? Linux/Windows?如果是 Linux,请检查 DSN 的 odbc.ini 和驱动程序的 odbcinst.ini 是否正确对齐(假设使用了 unixODBC)。在 Windows 中,检查 DSN 文件(在记事本中打开)通常保存在 Documents 文件夹中作为 My Data Sources 以查看其驱动程序/服务器/用户凭据。还要检查 odbcad32.exe(在搜索中键入)以获取 SQL Server 驱动程序信息。通常,驱动程序名称中有空格。
-
我是否理解您的错误:要连接到数据库,需要提供 DSN,以便驱动程序管理器知道它应该使用哪个驱动程序。因此,您应该指定一个,如果没有,它将使用默认驱动程序(此处未设置)。
-
Parfait,你说对了。驱动程序名称中有一个空格。很棒的收获!
-
也许它可以帮助某人:我遇到了类似的错误,在我的情况下驱动程序已被删除。
标签: r sql-server odbc