Class DBI::BaseStatement
In: lib/dbi/base_classes/statement.rb
Parent: Base

StatementHandles are used to encapsulate the process of managing a statement (DDL or DML) and its parameters, sending it to the database, and gathering any results from the execution of that statement.

As with the other `Base` classes, the terms "DBD Required" and "DBD Optional" are defined in DBI::BaseDatabase.


[]   []=   bind_param   bind_params   cancel   column_info   execute   fetch   fetch_all   fetch_many   fetch_scroll   finish   new  

Public Class methods

Public Instance methods

Get statement attributes.

Set statement attributes. DBD Optional.

Bind a parameter to the statement. DBD Required.

The parameter number is numeric and indexes starting at 1. This corresponds to the question marks (?) in the statement from the left-most part of the statement moving forward.

The value may be any ruby type. How these are handled is DBD-dependent, but the vast majority of DBDs will convert these to string inside the query.

Take a list of bind variables and bind them successively using bind_param.

Cancel any result cursors. DBD Optional, but intentionally does not raise any exception as it‘s used internally to maintain consistency.

returns result-set column information as array of hashs, where each hash represents one column. See BaseDatabase#columns. DBD Required.

Execute the statement with the known binds. DBD Required.

Fetch the next row in the result set. DBD Required.

DBI::Row is responsible for formatting the data the DBD provides it.

Fetch all available rows. Result is Array of DBI::Row.

fetch x rows. The result is Array of DBI::Row.

fetch_scroll is provided with a direction and offset and works similar to how seek() is used on files.

The constants available for direction are as follows:

  • SQL_FETCH_NEXT: fetch the next result.
  • SQL_FETCH_LAST: fetch the last result, period.
  • SQL_FETCH_RELATIVE: fetch the result at the offset.

Other constants can be used, but if this method is not supplied by the driver, they will result in a raise of DBI::NotSupportedError.

Close the statement and any result cursors. DBD Required.

Note:Most implementations will fail miserably if you forget to finish your statement handles.