RODBC无法连接闪亮 - odbcValidChannel(通道)不是TRUE
问题描述:
我知道有很多类似的问题关于连接到RODBC闪亮。但是,他们的解决方案都不适合我。RODBC无法连接闪亮 - odbcValidChannel(通道)不是TRUE
我已经连接到我的SQL服务器本地没有问题,但发布的闪亮的应用程序无法连接。
当本地运行的应用程序,我使用:
myData <- reactive({
##connect to database
myServer <- "***"
myUser <- "***"
myPassword <- "**"
myDatabase <- "lto"
myDriver <- "ODBC Driver 13 for SQL Server"
connectionString <- paste0(
"Driver=", myDriver,
";Server=", myServer,
";Database=", myDatabase,
";Uid=", myUser,
";Pwd=", myPassword)
conn <- odbcDriverConnect(connectionString)
dbhandle <- odbcDriverConnect(connectionString)
query='SELECT [menu_item_id]
,[primary_brand_id],[Q1],[Q2],[Q3]
,[Q4],[Q5],[Q6],[Q7],[brand],[brand_parent]
,[menu_item_name],[course_category],[day_part]
,[description],[display_name],[display_with_brand]
,[meal_part],[product_category],[reported]
,[month],[year],[year_month],[period],[respondent_id]
,[generation],[gender],[ethnicity],[income]
,[eater_archetype],[survey_type]
FROM [dbo].[vw_menu_item_responses]
WHERE [month]=?'
#month<-3
#store results
res <- sqlExecute(channel = dbhandle,
query = query,
data = list(input$month),
fetch = TRUE,
stringsAsFactors = FALSE)
#close the connection
odbcClose(dbhandle)
#return results
res
})
output$table<- renderDataTable({
d<-myData()
head(d)
})
当试图发布应用程序,我使用:
myData <- reactive({
##connect to database
myServer <- "***"
myUser <- "***"
myPassword <- "**"
myDatabase <- "lto"
myDriver <- "FreeTDS;TDS_Version=9.0"
connectionString <- paste0(
"Driver=", myDriver,
";Server=", myServer,
";Database=", myDatabase,
";Uid=", myUser,
";Pwd=", myPassword)
conn <- odbcDriverConnect(connectionString)
dbhandle <- odbcDriverConnect(connectionString)
#build query
#query = "SELECT * FROM [my_db].[dbo].[my_table] where [CATEGORY] = '1070'"
#query = "SELECT * FROM [my_db].[dbo].[my_table] where [CATEGORY] = ?"
query='SELECT [menu_item_id]
,[primary_brand_id],[Q1],[Q2],[Q3]
,[Q4],[Q5],[Q6],[Q7],[brand],[brand_parent]
,[menu_item_name],[course_category],[day_part]
,[description],[display_name],[display_with_brand]
,[meal_part],[product_category],[reported]
,[month],[year],[year_month],[period],[respondent_id]
,[generation],[gender],[ethnicity],[income]
,[eater_archetype],[survey_type]
FROM [dbo].[vw_menu_item_responses]
WHERE [month]=?'
#month<-3
#store results
res <- sqlExecute(channel = dbhandle,
query = query,
data = list(input$month),
fetch = TRUE,
stringsAsFactors = FALSE)
#close the connection
odbcClose(dbhandle)
#return results
res
})
注意我也曾尝试不同的TDS版本(7.0,8.0)。此外,问题不在于我的输入$月变量,因为我试图将其设置为常量,它仍然无法正常工作。
欢迎任何建议。请帮忙。
也明显我的用户ID,密码和服务器实际上不是星号,但信息保密,我不想分享:)
答
回答我的问题:
我需要包括港我的连接字符串!!
我改变:
“;数据库=”,MYDATABASE,
到:
“端口= 1433;数据库=”,MYDATABASE,
还用我的最终解决方案TDS_Version 7.0,我不确定这是否是问题的一部分。