有时,从由唯一父对象创建的函数返回连接、语句或流会很有用。 这些助手将唯一父对象的生命周期与其子对象绑定在一起,以便父对象在子对象之后可预测地立即释放。 这些函数将使对先前 R 对象的所有引用无效。
参数
- connection
使用
adbc_connection_init()
创建的连接- database
使用
adbc_database_init()
创建的数据库- statement
使用
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()