Die verfügbaren Argumente hängen vom Backend ab, weshalb dbConnect
nur Treiber und ...
Argumente anzeigt.
Bevor Sie fortfahren, laden Sie die für die Datenbankverbindung erforderlichen Pakete (RSQLite
, RPostgreSQL
, RMySQL
oder was auch immer).
Um den Namen des Fahrers
Dies soll das gleiche sein wie der Name des Datenbank-Backend zu finden. Derzeit unterstützte Werte umfassen "SQLite"
, "PostgreSQL"
, "MySQL"
, "Oracle"
, "JDBC"
.
Die Zeichenfolge muss immer der Name einer Funktion im DB-Paket sein. Wenn Sie also im Zweifelsfall das Paket durchsuchen (z. B. ls("package:RSQLite")
), raten Sie auf Namen, die plausibel erscheinen.
Für die ... args
Sie können die Methoden zur Verfügung, für den Anschluss siehe showMethods
verwenden.
showMethods("dbConnect")
## Function: dbConnect (package DBI)
## drv="character"
## drv="PostgreSQLConnection"
## drv="PostgreSQLDriver"
## drv="SQLiteConnection"
## drv="SQLiteDriver"
die Methode für die entsprechende Backend holen mit Driver
im Namen.
getMethod(dbConnect, "PostgreSQLDriver")
# The 'Method Definition' section of the output
## function (drv, ...)
## postgresqlNewConnection(drv, ...)
Die verfügbaren Argumente sind diejenigen der Funktion, die innerhalb der vorherigen Methodendefinition aufgerufen wird.
?postgresqlNewConnection
args(postgresqlNewConnection)
## function (drv, user = "", password = "", host = "", dbname = "",
## port = "", tty = "", options = "", forceISOdate = TRUE)
SQLite und MySQL Aufruf lokal definierten Funktionen, die ein bisschen nervig sind programmatisch zuzugreifen.
?SQLite
args(body(getMethod("dbConnect", "SQLiteDriver"))[[2]][[3]])
## function (drv, dbname = "", ..., loadable.extensions = TRUE,
## cache_size = NULL, synchronous = "off", flags = SQLITE_RWC,
## vfs = NULL)
## function (...)
?MySQL
args(body(getMethod("dbConnect", "MySQLDriver"))[[2]][[3]])
## function (drv, dbname = NULL, username = NULL, password = NULL,
## host = NULL, unix.socket = NULL, port = 0, client.flag = 0,
## groups = "rs-dbi", default.file = NULL, ...
?OraSupport
# Oracle
args(.oci.Connect)
## function(drv, username = "", password = "", dbname = "", prefetch = FALSE,
## bulk_read = 1000L, stmt_cache = 0L, external_credentials = FALSE,
## sysdba = FALSE)
RJDBC
etwas anders funktioniert. Anstatt eine andere Unterfunktion aufzurufen, akzeptiert die Methode dbConnect
zusätzliche benannte Argumente.
formalArgs(getMethod(dbConnect, "JDBCDriver"))
## [1] "drv" "url" "user" "password" "..."
Leider scheinen Links zu r-inside.org tot zu sein. Außerdem kann ich weder 'sqliteNewConnection' noch' mysqlNewConnection' finden (seit v0.10 nicht mehr exportiert https://github.com/r-dbi/RMySQL/blob/7c3ba1dc8bd59ba972350401f4c421b12da03253/NEWS.md#version-010) –