The dbSendStatement() method only submits and synchronously executes the SQL data manipulation statement (e.g., UPDATE, DELETE, INSERT INTO, DROP TABLE, ...) to the database engine. To query the number of affected rows, call dbGetRowsAffected() on the returned result object. You must also call dbClearResult() after that. For interactive use, you should almost always prefer dbExecute().

Methods in other packages

  • DatabaseConnector::dbSendStatement("DatabaseConnectorConnection", "character")

# S4 method for DatabaseConnectorConnection,character
dbSendStatement(conn, statement, ...)



A DBIConnection object, as returned by dbConnect().


a character string containing SQL.


Other parameters passed on to methods.


dbSendStatement() returns an S4 object that inherits from DBIResult. The result set can be used with dbGetRowsAffected() to determine the number of rows affected by the query. Once you have finished using a result, make sure to clear it with dbClearResult(). An error is raised when issuing a statement over a closed or invalid connection, or if the statement is not a non-NA string. An error is also raised if the syntax of the query is invalid and all query parameters are given (by passing the params argument) or the immediate argument is set to TRUE.


dbSendStatement() comes with a default implementation that simply forwards to dbSendQuery(), to support backends that only implement the latter.