Я переписываю функцию , которая по выбору принимает объект подключения. Параметр должен быть проверен, что это допустимое соединение / канал. Как мне сделать это надежно с пакетом DBI
? (В частности, я использую пакет odbc
.)
Мне бы хотелось что-то, что вмещало бы все DBI объекты соединений, но я остановлюсь только на объектах соединения odbc
Выполнение чего-то подобного не приводит к значению, которое я знаю, как запросить с помощью inherits()
.
library(DBI)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
class(con)
# [1] "SQLiteConnection"
# attr(,"package")
# [1] "RSQLite"
DBI::dbDisconnect(con)
Напротив, RODBC и пул возвращают класс, который я могу получить лучше ( т.е. , RODBC
и Pool
).
Если это поможет, вот больше внутренних компонентов от этого конкретного соединения DBI.
> str(con)
Formal class 'SQLiteConnection' [package "RSQLite"] with 7 slots
..@ ptr :<externalptr>
..@ dbname : chr ":memory:"
..@ loadable.extensions: logi TRUE
..@ flags : int 70
..@ vfs : chr ""
..@ ref :<environment: 0x0000000000000000>
..@ bigint : chr "integer64"