bool duckdb_trans_begin(std::string &error_msg)
{ if (!m_con)
{
error_msg= "DuckDB connection is not available"; returntrue;
} if (m_con->HasActiveTransaction()) returnfalse;
auto result= duckdb_query(*m_con, "BEGIN"); if (result->HasError())
{
error_msg= result->GetError(); returntrue;
} returnfalse;
}
bool duckdb_trans_commit(std::string &error_msg)
{ if (!m_con) returntrue;
if (m_con->HasActiveTransaction())
{ auto result= duckdb_query(*m_con, "COMMIT"); if (result->HasError())
{
error_msg= result->GetError().c_str(); returntrue;
}
}
set_batch_state(BatchState::UNDEFINED); returnfalse;
}
bool duckdb_trans_rollback(std::string &error_msg)
{ if (m_appenders)
{
m_appenders->discard_all();
m_appenders.reset();
}
if (!m_con) returntrue;
if (m_con->HasActiveTransaction())
{ auto result= duckdb_query(*m_con, "ROLLBACK"); if (result->HasError())
{
error_msg= result->GetError().c_str(); returntrue;
}
}
set_batch_state(BatchState::UNDEFINED); returnfalse;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.