Я пытаюсь создать простое приложение, чтобы показать, как писать sql запросов: пользователи могут вводить свои полные sql запросы и видеть результаты.
К сожалению, я не могу заставить приложение работать, если я добавляю строку к запросу, например, select * from iris where Species = 'setosa'
Это приносит error: unrecognized token: "'"
Вот повторение :
library(shiny)
library(RSQLite)
db_example <- RSQLite::datasetsDb()
# check this works outside of shiny:
#dbGetQuery(db_example, "SELECT * FROM iris WHERE Species = 'setosa' ; ")
ui<- fluidPage(
textInput(inputId = "sql_query",
label = "write your sql query:"),
actionButton(inputId = "submit", label = "Run"),
tableOutput(outputId = "my_table")
)
server <- function(input,output) {
my_result <- eventReactive(input$submit, {
dbGetQuery(db_example,
input$sql_query
)
})
output$my_table <- renderTable({
my_result()
})
}
shinyApp(ui, server)
Это прекрасно работает только для select * from iris
, но если вы попытаетесь добавить строковое условие, такое как select * from iris where Species = 'setosa'
, оно выдаст ошибку, даже если тот же синтаксис работает отлично вне Shiny.
Я пробовал использовать различный синтаксис, чтобы заставить цитату работать, как и ожидалось, без удачи (включая побег с) ... Есть идеи, как это сделать?
Вот мои подробности сеанса:
R версия 3.6.1 (2019-07-05)
Платформа: x86_64-apple-darwin15.6.0 (64-разрядная версия)
Работает под: macOS Mojave 10.14.6
packageVersion ("блестящий")
[1] '1.3.2'
packageVersion ("RSQLite")
[1] '2.1.1'
ОБНОВЛЕНИЕ: Кажется, это проблема, связанная со спецификой платформы c, так как я получил тот же код, который отлично работает на нашем сервере ... так что эта проблема в macOS Mojave 10.14.6 остается загадкой ...