跳到內容

這些是方便測試連線的方法。請注意,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_arraynanoarrow_array_stream

target_table

tbl 應該寫入的目標表格名稱。

mode

“create”、“append” 或 “default” 之一(如果結構描述不相容則出錯,否則附加)。

temporary

使用 TRUE 將表格建立為暫時表格。

  • read_adbc(): 一個 nanoarrow_array_stream

  • execute_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