R闪亮的RODBC连接失败

时间:2014-04-24 16:54:01

标签: r shiny

我有一个R闪亮的应用程序在本地工作,但当我上传它时,我得到错误:

 first argument is not an open RODBC channel

这是我的代码:

conn<- suppressWarnings( odbcDriverConnect('driver={SQL Server};server=SWDCH;    database=GR;    trusted_connection=yes;uid=RUser , pwd=ruser'))
  data <- sqlQuery(conn,paste("exec Performance  @MetricType = '", MetricType ,"',@Metric = '", Metric ,"',   @Market = '", Market  , "', @StartDate = '", StartDate, "', @EndDate = '", EndDate, "';",sep =""),errors=FALSE)

我认为这个问题与conn对象有关,但不知道问题是什么?

2 个答案:

答案 0 :(得分:1)

我遇到了一个相同的问题,现在我已经解决了。如果这对您有用,请告诉我。

问题似乎是&#34;默认&#34;通过Shiny引用的连接。我正在运行以下在本地运行的代码,但是给了我相同的&#34; RODBC连接未打开&#34;

时出错

在Shiny中不起作用:
tdConnection2&lt; - odbcConnect(&#34; my_dsn&#34;,eid =&#34; ABC123&#34;,pw =&#34;密码)
结果&lt; - sqlQuery(&#34;运行此SQL&#34;)

我能够通过显式引用tdQuery()函数中引用的通道来修复所有内容,如下所示

在Shiny中工作:
tdConnection2&lt; - odbcConnect(&#34; my_dsn&#34;,eid =&#34; ABC123&#34;,pw =&#34;密码)
结果&lt; - sqlQuery(channel = tdConnection2,query =&#34;运行此SQL&#34;)

我通过像print(tdConnection2)这样的事情来诊断这个,这表明我已成功建立初始连接。由于R引用的默认版本的python,我的rPython无法正常工作,所以让我想一想Shiny可能引用的默认版本/驱动程序。希望这也能解决你的问题。

答案 1 :(得分:0)

在PC,ODBC数据源中创建sqlserver ODBC连接。 使用下面的代码片段将数据连接并存储到反应变量中。

 data <- reactive({
    ch <- odbcConnect(dsn = "DSNName", uid = "username", pwd = "password")
 sqlQuery(ch,paste('select  * from emp ')
  })

DSNName是创建的sql服务器ODBC的名称。