【问题标题】:R ODBC nanodbc error when not using DSN不使用 DSN 时 R ODBC nanodbc 错误
【发布时间】: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


【解决方案1】:

当我从 Linux 切换到 R 的 Windows 机器时(注意没有其他变化)我得到了

"Error: nanodbc/nanodbc.cpp:950: IM002: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified" 

通过更改修复了 ODBC 连接问题

Driver = "ODBC Driver 17 for SQL Server"

Driver = "SQL Server"

希望这可以为您节省一些时间。

【讨论】:

    猜你喜欢
    • 2017-12-13
    • 2020-05-19
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多