DBI::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.
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. |
# File lib/dbi/base_classes/database.rb, line 126 def [](attr) @attr[attr] end
Set an attribute on the DatabaseHandle. DBD Optional.
# File lib/dbi/base_classes/database.rb, line 131 def []=(attr, value) raise NotSupportedError end
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
# File lib/dbi/base_classes/database.rb, line 59 def columns(table) raise NotImplementedError end
Schedule a commit to the database immediately. DBD Optional.
# File lib/dbi/base_classes/database.rb, line 68 def commit raise NotSupportedError end
Disconnect from the database. DBD Required.
# File lib/dbi/base_classes/database.rb, line 28 def disconnect raise NotImplementedError end
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 sth.finish
Returning the value stored in `result`.
# File lib/dbi/base_classes/database.rb, line 113 def do(statement, *bindvars) stmt = execute(statement, *bindvars) res = stmt.rows stmt.finish return res end
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)
# File lib/dbi/base_classes/database.rb, line 93 def execute(statement, *bindvars) stmt = prepare(statement) stmt.bind_params(*bindvars) stmt.execute stmt end
Ping the database to ensure the connection is still alive. Boolean return, true for success. DBD Required.
# File lib/dbi/base_classes/database.rb, line 34 def ping raise NotImplementedError end
Prepare a cached statement, returning a StatementHandle. DBD Required.
# File lib/dbi/base_classes/database.rb, line 40 def prepare(statement) raise NotImplementedError end
Generated with the Darkfish Rdoc Generator 2.