Wraps objects of the DBIDriver class to include connection options. The purpose of this class is to store both the driver and the connection options. A database connection can be established with a call to dbConnect(), passing only that object without additional arguments.

Details

To prevent leakage of passwords and other credentials, this class supports delayed evaluation. All arguments can optionally be a function (callable without arguments). In such a case, the function is evaluated transparently when connecting in dbGetConnectArgs().

See also

Examples

# Create a connector:
cnr <- new("DBIConnector",
  .drv = RSQLite::SQLite(),
  .conn_args = list(dbname = ":memory:")
)
cnr
#> <DBIConnector><SQLiteDriver>
#> Arguments:
#> $dbname
#> [1] ":memory:"
#> 

# Establish a connection through this connector:
con <- dbConnect(cnr)
con
#> <SQLiteConnection>
#>   Path: :memory:
#>   Extensions: TRUE

# Access the database through this connection:
dbGetQuery(con, "SELECT 1 AS a")
#>   a
#> 1 1
dbDisconnect(con)