这些是用于测试连接的便捷方法。请注意,S3 分发始终在 db_or_con
上进行(即,驱动程序可以提供它们自己的实现)。
用法
read_adbc(db_or_con, query, ..., bind = NULL)
execute_adbc(db_or_con, query, ..., bind = NULL)
write_adbc(
tbl,
db_or_con,
target_table,
...,
mode = c("default", "create", "append"),
temporary = FALSE
)
参数
- db_or_con
一个 adbc_database 或 adbc_connection。如果是一个数据库,将会打开一个连接。对于
read_adbc()
,当生成的流被释放时,此连接将被关闭。- query
一个 SQL 查询
- ...
传递给 S3 方法。
- bind
一个 data.frame、nanoarrow_array 或 nanoarrow_array_stream 的绑定参数,或者 NULL 来跳过绑定/准备步骤。
- tbl
一个 data.frame、nanoarrow_array 或 nanoarrow_array_stream。
- target_table
应该向其写入
tbl
的目标表名。- mode
以下之一:"create" (创建),"append" (追加),或 "default" (默认) (如果 schema 不兼容则报错,否则追加)。
- temporary
使用 TRUE 将表创建为临时表。
返回值
read_adbc()
: 一个 nanoarrow_array_streamexecute_adbc()
:db_or_con
,不可见。write_adbc()
:tbl
,不可见。
示例
# On a database, connections are opened and closed
db <- adbc_database_init(adbc_driver_log())
#> LogDatabaseNew()
#> LogDatabaseInit()
try(read_adbc(db, "some sql"))
#> LogConnectionNew()
#> LogConnectionInit()
#> LogStatementNew()
#> LogStatementSetSqlQuery()
#> LogStatementRelease()
#> LogConnectionRelease()
#> Error in adbc_statement_set_sql_query(stmt, query) : NOT_IMPLEMENTED
try(execute_adbc(db, "some sql"))
#> LogConnectionNew()
#> LogConnectionInit()
#> LogStatementNew()
#> LogStatementSetSqlQuery()
#> LogStatementRelease()
#> LogConnectionRelease()
#> Error in adbc_statement_set_sql_query(stmt, query) : NOT_IMPLEMENTED
try(write_adbc(mtcars, db, "some_table"))
#> LogConnectionNew()
#> LogConnectionInit()
#> LogStatementNew()
#> LogStatementSetOption()
#> LogStatementBindStream()
#> LogStatementRelease()
#> LogConnectionRelease()
#> Error in adbc_statement_bind_stream(stmt, tbl) : NOT_IMPLEMENTED
# Also works on a connection
con <- adbc_connection_init(db)
#> LogConnectionNew()
#> LogConnectionInit()
try(read_adbc(con, "some sql"))
#> LogStatementNew()
#> LogStatementSetSqlQuery()
#> LogStatementRelease()
#> Error in adbc_statement_set_sql_query(stmt, query) : NOT_IMPLEMENTED
try(execute_adbc(con, "some sql"))
#> LogStatementNew()
#> LogStatementSetSqlQuery()
#> LogStatementRelease()
#> Error in adbc_statement_set_sql_query(stmt, query) : NOT_IMPLEMENTED
try(write_adbc(mtcars, con, "some_table"))
#> LogStatementNew()
#> LogStatementSetOption()
#> LogStatementBindStream()
#> LogStatementRelease()
#> Error in adbc_statement_bind_stream(stmt, tbl) : NOT_IMPLEMENTED