
SQL scripts (i.e., multiple SQL statements separated by ';') and stored
procedures oftentimes generate multiple result sets. These generic
functions provide a means to process them sequentially. dbNextResult
fetches the next result from the sequence of pending results sets;
dbMoreResults
returns a logical to indicate whether there are
additional results to process.
dbNextResult(con, ...)# S4 method for MySQLConnection
dbNextResult(con, ...)
dbMoreResults(con, ...)
# S4 method for MySQLConnection
dbMoreResults(con, ...)
dbNextResult
returns a result set or NULL
.
dbMoreResults
returns a logical specifying whether or not there are
additional result sets to process in the connection.
a connection object (see dbConnect
).
any additional arguments to be passed to the dispatched method
if (mysqlHasDefault()) {
con <- dbConnect(RMySQL::MySQL(), dbname = "test", client.flag = CLIENT_MULTI_STATEMENTS)
dbWriteTable(con, "mtcars", datasets::mtcars, overwrite = TRUE)
sql <- "SELECT cyl FROM mtcars LIMIT 5; SELECT vs FROM mtcars LIMIT 5"
rs1 <- dbSendQuery(con, sql)
dbFetch(rs1, n = -1)
if (dbMoreResults(con)) {
rs2 <- dbNextResult(con)
dbFetch(rs2, n = -1)
}
dbClearResult(rs1)
dbClearResult(rs2)
dbRemoveTable(con, "mtcars")
dbDisconnect(con)
}
Run the code above in your browser using DataLab