参考以下示例:http://www.r-bloggers.com/a-shiny-example-sap-hana-r-and-shiny/
在以下示例中,他们在获得所需的表后运行odbcClose(ch)
。将表加载到工作区后使用odbcClose(channel)
是一种好习惯吗?在Shiny
应用程序中使用SQL连接时,是否应该做任何不同的事情?
library("shiny")
library("RODBC")
ch<-odbcConnect("HANA_TK",uid="SYSTEM",pwd="manager")
odbcQuery(ch,"SELECT table_name from SYS.CS_TABLES_ where schema_name = 'SFLIGHT'")
tables<-sqlGetResults(ch)
**odbcClose(ch)**
shinyUI(pageWithSidebar(
headerPanel("SAP HANA and R using Shiny"),
sidebarPanel(
selectInput("Table", "Choose a table:",
choices = tables$TABLE_NAME),
numericInput("Records", "Number of Records to view:", 10)
),
mainPanel(
tableOutput("view")
)
))
答案 0 :(得分:2)
如果我把它们打开,我还没有发现任何问题。我认为R最终将关闭所有未使用的连接。
我不确定是否有系统级别的好处,但我养成了尽快关闭我的频道的习惯。
当我的系统管理员需要执行某些任务时,他可能需要关闭服务器,如果有人正在访问数据,他会尝试不要这样做。一个打开的连接对他来说就好像有人正在访问数据一样,所以他等到连接关闭才能关闭服务器。如果我离开了一个流浪的连接,他可能永远不会觉得他可以做他的维护。
所以,通过专业礼貌的轶事,我尽快关闭我的联系。