Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- With this hook, one can write SQL statements in chunks
- These statements will be transmitted to a Sybase server using the jTDS driver
- Results are printed in html
- To be used in an .Rmd file to generate a html_document
- ```{r setup, include=FALSE}
- SybaseGetQuery <- function(requete.simple, db) {
- require(RJDBC)
- require(htmltools)
- statement <- paste(unlist(requete.simple), collapse="\n")
- conn_string <- sprintf("jdbc:jtds:sybase://%s:%s/%s;user=%s;password=%s",
- server_sybase, port, db, user, password)
- drv <- JDBC("net.sourceforge.jtds.jdbc.Driver", loc_jtds, "`")
- conn <- dbConnect(drv, conn_string)
- tryCatch(resultat <- dbGetQuery(conn, statement = statement),
- finally = dbDisconnect(conn))
- return(resultat)
- }
- knitr::opts_hooks$set(sybase = function(options) {
- if (!is.null(options$sybase)) {
- options$eval <- FALSE
- options$echo <- TRUE
- options$results <- 'asis'
- options$`.class` <- "sql"
- }
- options
- })
- knitr::knit_hooks$set(sybase = function(before, options, envir) {
- if (before) {
- }
- else {
- paste0(
- # Print the query result in an html format:
- knitr::kable(
- SybaseGetQuery(options["code"], options$sybase),
- format = "html",
- table.attr = 'class="responsive-table highlight"', # Class for materialize.css
- row.names = TRUE,
- format.args = list(big.mark = " ", decimal.mark = ",", big.interval = 3L)), # European format
- collapse = NULL
- )}
- })
- loc_jtds <- "loc_jtds"
- server_sybase <- "server_name"
- port <- "a_port_number"
- user <- "username"
- password <- "password"
- knitr::opts_chunk$set(sybase="db_name")
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement