dbSendQuery
Execute a statement on a given database connection.
The function dbSendQuery
only submits and synchronously executes the
SQL statement to the database engine. It does not extract any
records --- for that you need to use the function dbFetch
, and
then you must call dbClearResult
when you finish fetching the
records you need. For interactive use, you should almost always prefer
dbGetQuery
.
Usage
dbSendQuery(conn, statement, ...)
Arguments
- conn
- A
DBIConnection
object, as produced bydbConnect
. - statement
- a character vector of length 1 containing SQL.
- ...
- Other parameters passed on to methods.
Value
-
An object that inherits from
DBIResult
.
If the statement generates output (e.g., a SELECT
statement) the
result set can be used with dbFetch
to extract records.Once you have finished using a result, make sure to disconnect it
with dbClearResult
.
Side Effects
The statement is submitted to the database server and the DBMS executes the
statement, possibly generating vast amounts of data. Where these data live
is driver-specific: some drivers may choose to leave the output on the server
and transfer them piecemeal to R, others may transfer all the data to the
client -- but not necessarily to the memory that R manages. See individual
drivers dbSendQuery
documentation for details.
See Also
Other connection methods: dbDisconnect
,
dbExistsTable
,
dbGetException
, dbGetQuery
,
dbListFields
, dbListResults
,
dbListTables
, dbReadTable
,
dbRemoveTable
Examples
if (require("RSQLite")) {
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars)
res <- dbSendQuery(con, "SELECT * FROM mtcars WHERE cyl = 4;")
dbFetch(res)
dbClearResult(res)
dbDisconnect(con)
}