跳过内容

有时,从一个由唯一父项创建的函数中返回连接、语句或流会很有用。这些辅助函数将唯一父对象的生命周期与其子对象绑定,使得父对象在子对象之后可预测地立即释放。这些函数将使所有对先前 R 对象的引用失效。

用法

adbc_connection_join(connection, database)

adbc_statement_join(statement, connection)

参数

connection

使用 adbc_connection_init() 创建的连接

database

使用 adbc_database_init() 创建的数据库

语句

使用 adbc_statement_init() 创建的语句

返回值

输入(不可见)。

示例

# Use local_adbc to ensure prompt cleanup on error;
# use join functions to return a single object that manages
# the lifecycle of all three.
stmt <- local({
  db <- local_adbc(adbc_database_init(adbc_driver_log()))

  con <- local_adbc(adbc_connection_init(db))
  adbc_connection_join(con, db)

  stmt <- local_adbc(adbc_statement_init(con))
  adbc_statement_join(stmt, con)

  adbc_xptr_move(stmt)
})
#> LogDatabaseNew()
#> LogDatabaseInit()
#> LogConnectionNew()
#> LogConnectionInit()
#> LogStatementNew()

# Everything is released immediately when the last object is released
adbc_statement_release(stmt)
#> LogStatementRelease()
#> LogConnectionRelease()
#> LogDatabaseRelease()