default driver and connection
Thanks. Is there any way to discover whether SQLite or MySQL was loaded so that I can do something like this:
On 7/18/07, Seth Falcon <sfalcon at fhcrc.org> wrote:
Hi, [The following comments hold for RSQLite. I'm pretty sure they hold for all DBI, but haven't gone and looked to verify the code.] "Gabor Grothendieck" <ggrothendieck at gmail.com> writes:
Is there a way of finding out if the driver is loaded and if there are any open connections in RSQLite or other database and what they are?
The driver is implemented as a singleton so there is no need to worry
about multiple calls to dbDriver("SQLite") or more simply SQLite().
The driver gets loaded on first invocation of SQLite() and subsequent
calls simply return the existing instance.
Even better would be if the code below could work regardless
of whether an SQLite or MySQL connection was open. I have written pseudocode
in the places where I don't know how to access the functionality.
If all this exists is there an example? Thanks.
# returns first three rows of iris
# loading any driver and opening any connection if need be
f <- function(m, con, dbname = ":memory:") {
if (missing(m) {
m <- if (no.data.base.drivers.loaded)
dbDriver("SQLite")
else loaded.driver
}
if (missing(con)) {
con <- if (no.connections.open)
dbConnect(m, dbname)
active.connection
}
dbWriteTable(con, "iris", iris)
dbGetQuery(con, "select * from iris limit 3")
}
dbListConnections(SQLite()) will tell you about open connections to the SQLite driver.
Thanks. Is there also a way to discover whether SQLite or MySQL or neither has been loaded. Note that they could be loaded but not have an open connection. Thus, I would like to do this or similar processing: If only one of MySQL or SQLite is loaded then use that one. If neither is loaded use SQLite. Thanks.