Class DBI::BaseDatabase
In: lib/dbi/base_classes/database.rb
Parent: Base

Provides the core-level functionality for DatabaseHandles.

If the method description says "DBD Required", it‘s the DBD‘s responsibility to create this method.

Required methods unimplemented by the DBD will raise DBD::NotImplementedError.

"DBD Optional" methods are methods that do not have a default implementation but are optional due to the fact that many databases may not support these features (and emulating them would be prohibitive).

These methods raise DBI::NotSupportedError.

Otherwise, DBI will provide a general alternative which should meet the expectations of the documentation. However, DBDs can override every method in this class.


[]   []=   columns   commit   disconnect   do   execute   new   ping   prepare   rollback   tables  

Public Class methods

Public Instance methods

Get an attribute from the DatabaseHandle. These are DBD specific and embody things like Auto-Commit support for transactional databases.

DBD Authors:This messes with @attr directly.

Set an attribute on the DatabaseHandle. DBD Optional.

Return a map of the columns that exist in the provided table name. DBD Required.

The result should be an array of DBI::ColumnInfo objects which have, at minimum, the following fields:

  • name:: the name of the column.
  • type:: This is not a field name in itself. You have two options:
    • type_name:: The name of the type as returned by the database
    • dbi_type:: A DBI::Type-conforming class that can be used to convert to a native type.
  • precision:: the precision (generally length) of the column
  • scale:: the scale (generally a secondary attribute to precision that helps indicate length) of the column

Schedule a commit to the database immediately. DBD Optional.

Disconnect from the database. DBD Required.

Execute and complete the statement with the binds provided. Returns the row modified count (via BaseStatement#rows). Finishes the statement handle for you.

Roughly equivalent to:

  sth = dbh.prepare("my statement)
  sth.execute(my, bind, vars)
  result = sth.rows

Returning the value stored in `result`.

Execute a statement with the binds provided. Returns the statement handle unfinished.

This is roughly equivalent to:

  sth = dbh.prepare("my statement")
  sth.execute(my, bind, vars)

Ping the database to ensure the connection is still alive. Boolean return, true for success. DBD Required.

Prepare a cached statement, returning a StatementHandle. DBD Required.

Schedule a rollback to the database immediately. DBD Optional.

Return the tables available to the database connection.

Note:the basic implementation returns an empty array.