Database Interface (DBI) Classes and drivers
These virtual classes and their methods define the interface to database management systems (DBMS). They are extended by packages or drivers that implement the methods in the context of specific DBMS (e.g., Berkeley DB, MySQL, Oracle, ODBC, PostgreSQL, SQLite).
dbDriver(drvName, ...) dbUnloadDriver(drv, ...) ## free up all resources
- character name of the driver to instantiate.
- an object that inherits from
DBIDriveras created by
- any other arguments are passed to the driver
The virtual class
DBIDriver defines the operations
for creating connections and defining data type mappings.
Actual driver classes, for instance
implement these operations in a DBMS-specific manner.
More generally, the DBI defines a very small set of classes and
methods that allows users and applications access DBMS with a common
interface. The virtual classes are
DBIDriver that individual
DBIConnection that represent instances of
DBMS connections, and
DBIResult that represent the result
of a DBMS statement. These three classes extend the basic class
DBIObject, which serves as the root or parent of the
- In the case of
dbDriver, an driver object whose class extends
DBIDriver. This object may be used to create connections to the actual DBMS engine. In the case of
dbUnloadDriver, a logical indicating whether the operation succeeded or not.
The client part of the database communication is initialized (typically
dynamically loading C code, etc.) but note that connecting to the
database engine itself needs to be done through calls to
See the Database Interface definition document
DBI.pdf in the base directory of this package
# create a MySQL instance for capacity of up to 25 simultaneous # connections. m <- dbDriver("MySQL", max.con = 25) p <- dbDriver("PgSQL") # open the connection using user, password, etc., as con <- dbConnect(m, user="ip", password = "traffic", dbname="iptraffic") rs <- dbSubmitQuery(con, "select * from HTTP_ACCESS where IP_ADDRESS = '127.0.0.1'") df <- fetch(rs, n = 50) df2 <- fetch(rs, n = -1) dbClearResult(rs) pcon <- dbConnect(p, "user", "password", "dbname") dbListTables(pcon)
``` Library( RPostrgeSQL) # Create a RPostrgesql Driver as pg pg = dbDriver("PostgreSQL") #Pass the database driver as pg in the connection function con = dbConnect(pg, user="Kalm", password="", host="localhost", port=5000, dbname="test_db") ```