【问题标题】:How do I create a datasource and to connect this from R?如何创建数据源并从 R 连接它?
【发布时间】:2019-12-21 10:44:22
【问题描述】:

我不知道我的代码错误在哪里。我创建了一个数据源,然后包含在一个 RODBC 函数中。

数据源配置为:

  • 名称:sqldatabases
  • 驱动程序:SQL Server Native Client 11.0
  • 服务器:BRDCVMDB01
  • SQL Server 中的数据库:ANALYTICS_FA_CP_SPRO

我希望你能帮助我!

谢谢!

第一次尝试

library(RODBC)

connect <- odbcDriverConnect(connection="Driver={SQL Server Native Client 11.0};server=sqldatabases;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;")

警告消息:1:在 odbcDriverConnect(connection = "Driver={SQL 服务器本机客户端 11.0};服务器=数据库;数据库=ANALYTICS_FA_CP_SPRO;可信连接=是;") :[RODBC] 错误:状态 08001,代码 53,消息 [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: 无法打开 连接到 SQL Server [53]。 2:在 odbcDriverConnect(连接 = "驱动程序={SQL Server Native Client 11.0};服务器=数据库;数据库=ANALYTICS_FA_CP_SPRO;可信连接=是;") :[RODBC] 错误:状态 HYT00,代码 0,消息 [Microsoft][SQL Server Native Client 11.0]登录超时过期 3: In odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};服务器=数据库;数据库=ANALYTICS_FA_CP_SPRO;可信连接=是;") :[RODBC] 错误:状态 08001,代码 53,消息 [Microsoft][SQL Server Native Client 11.0]与网络相关或特定于实例的错误 在建立与 SQL Server 的连接时发生。服务器是 未找到或无法访问。检查实例名称是否正确以及是否 SQL Server 配置为允许远程连接。更多 有关信息,请参阅 SQL Server 联机丛书。 4进 odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};服务器=数据库;数据库=ANALYTICS_FA_CP_SPRO;可信连接=是;") : ODBC 连接失败

第二次尝试

cn <- odbcDriverConnect(connection="Driver={SQL Server Native Client 11.0};server=BRDCVMDB01;database=databases;trusted_connection=yes;")

警告信息: 1: In for (i in seq_along(args)) { : 关闭未使用 RODBC 句柄 14 2: In for (i in seq_along(args)) { : 关闭未使用 RODBC 句柄 12 3: In for (i in seq_along(args)) { : 关闭未使用 RODBC 句柄 8 4:在 odbcDriverConnect(connection = "Driver={SQL 服务器本机客户端 11.0};server=BRDCVMDB01;database=databases;trusted_connection=yes;"):[RODBC] 错误:状态 28000,代码 18456,消息 [Microsoft][SQL Server Native Client 11.0][SQL Server]用户“ATRAME\mjordao”登录失败。 5:在odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};server=BRDCVMDB01;database=databases;trusted_connection=yes;"):[RODBC] 错误:状态 42000,代码 4060,消息 [Microsoft][SQL Server Native Client 11.0][SQL Server]无法打开数据库“databases” 登录请求。登录失败。 6:在 odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};server=BRDCVMDB01;database=databases;trusted_connection=yes;") : ODBC 连接失败

第三次尝试

cn <- odbcDriverConnect(connection="Driver={SQL Server Native Client 11.0};server=BRDCVMDB01;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;")

cn <- odbcDriverConnect(connection="Driver={SQL Server Native Client 11.0};server=sqldatabases;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;")

警告信息: 1:在odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};server=sqldatabases;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;") : [RODBC] 错误:状态 08001,代码 53,消息 [Microsoft][SQL Server Native Client 11.0]命名管道提供程序:无法打开 连接到 SQL Server [53]。 2:在odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};server=sqldatabases;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;") : [RODBC] 错误:状态 HYT00,代码 0,消息 [Microsoft][SQL Server Native Client 11.0]登录超时已过期 3:在odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};server=sqldatabases;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;") : [RODBC] 错误:状态 08001,代码 53,消息 [Microsoft][SQL Server Native Client 11.0]与网络相关或特定于实例的错误 在建立与 SQL Server 的连接时发生。服务器是 未找到或无法访问。检查实例名称是否正确以及是否 SQL Server 配置为允许远程连接。更多 有关信息,请参阅 SQL Server 联机丛书。 4:在odbcDriverConnect(connection = "Driver={SQL Server Native Client 11.0};server=sqldatabases;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;") : ODBC 连接失败

【问题讨论】:

  • 检查你的连接字符串,它们很混乱(数据库=数据库?)
  • 试试trusted_connection =no。有时它在 R 中有点古怪。此外,如果您在 Linux 中运行它,请使用 ipaddress 而不是 sqldatabases

标签: sql r sql-server datasource sqldatasource


【解决方案1】:

我之前遇到过这个错误,我建议检查实际运行的驱动程序的名称(例如,我的实际名称是 SQL Server 而不是 SQL Server Native Client,我花了一段时间才弄明白)。并且您要确保您的 SQL 服务器正在运行。

对于代码,我建议进行以下小改动:

您的原件:

odbcDriverConnect(connection="Driver={SQL Server Native Client 11.0};server=BRDCVMDB01;database=databases;trusted_connection=yes;")

改为:

odbcDriverConnect('Driver=SQL Server Native Client 11.0;server=BRDCVMDB01;database=ANALYTICS_FA_CP_SPRO;trusted_connection=TRUE;')

我希望这可以帮助:)

【讨论】:

    【解决方案2】:

    使用 ODBC,有两种主要的连接方式:使用您指定使用的数据源名称 (DSN) 或无 DSN 驱动程序版本。在 RODBC 中,这与 odbcConnectodbcDriverConnect 两种方法不同。请参阅docs 中的用法部分。

    现在,您在运行无 DSN 驱动程序连接但引用 DSN 时将两者混为一谈。只需连接适当的设置。实际上,您的一个编码行(第 3 次尝试中的第一次)没有警告消息应该可能有效:

    # DSN CONNECTION
    cn <-odbcConnect('sqldatabases;trusted_connection=yes')
    
    # DRIVER CONNECTION
    cn <- odbcDriverConnect("Driver={SQL Server Native Client 11.0};server=BRDCVMDB01;database=ANALYTICS_FA_CP_SPRO;trusted_connection=yes;")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多