Execute a query on a given database connection

Share:

Description

The function dbSendQuery only submits and synchronously executes the SQL query 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

1
dbSendQuery(conn, statement, ...)

Arguments

conn

A DBIConnection object, as produced by dbConnect.

statement

a character vector of length 1 containing SQL.

...

Other parameters passed on to methods.

Details

This function is for SELECT queries only. Some backends may support data manipulation queries through this function for compatibility reasons. However, callers are strongly advised to use dbSendStatement for data manipulation statements.

Value

An object that inherits from DBIResult. 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 query is submitted to the database server and the DBMS executes it, 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

For updates: dbSendStatement and dbExecute.

Other DBIConnection generics: DBIConnection-class, dbDataType, dbDisconnect, dbExecute, dbExistsTable, dbGetException, dbGetInfo, dbGetQuery, dbIsValid, dbListFields, dbListResults, dbListTables, dbReadTable, dbRemoveTable, dbSendStatement

Examples

1
2
3
4
5
6
7
8
con <- dbConnect(RSQLite::SQLite(), ":memory:")

dbWriteTable(con, "mtcars", mtcars)
rs <- dbSendQuery(con, "SELECT * FROM mtcars WHERE cyl = 4;")
dbFetch(rs)
dbClearResult(rs)

dbDisconnect(con)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.