36 : client{attachment.getClient()}
43 StatusWrapper statusWrapper{client, status.get()};
45 auto tpbBuilder = fbUnique(master->getUtilInterface()->getXpbBuilder(&statusWrapper, fb::IXpbBuilder::TPB,
46 reinterpret_cast<const std::uint8_t*
>(options.
getTpb().data()),
47 static_cast<unsigned>(options.
getTpb().size())));
51 switch (accessMode.value())
53 case TransactionAccessMode::READ_ONLY:
54 tpbBuilder->insertTag(&statusWrapper, isc_tpb_read);
57 case TransactionAccessMode::READ_WRITE:
58 tpbBuilder->insertTag(&statusWrapper, isc_tpb_write);
69 switch (waitMode.value())
71 case TransactionWaitMode::NO_WAIT:
72 tpbBuilder->insertTag(&statusWrapper, isc_tpb_nowait);
75 case TransactionWaitMode::WAIT:
76 tpbBuilder->insertTag(&statusWrapper, isc_tpb_wait);
87 switch (isolationLevel.value())
89 case TransactionIsolationLevel::CONSISTENCY:
90 tpbBuilder->insertTag(&statusWrapper, isc_tpb_consistency);
93 case TransactionIsolationLevel::SNAPSHOT:
94 tpbBuilder->insertTag(&statusWrapper, isc_tpb_concurrency);
97 case TransactionIsolationLevel::READ_COMMITTED:
98 tpbBuilder->insertTag(&statusWrapper, isc_tpb_read_committed);
102 switch (readCommittedMode.value())
104 case TransactionReadCommittedMode::NO_RECORD_VERSION:
105 tpbBuilder->insertTag(&statusWrapper, isc_tpb_no_rec_version);
108 case TransactionReadCommittedMode::RECORD_VERSION:
109 tpbBuilder->insertTag(&statusWrapper, isc_tpb_rec_version);
127 tpbBuilder->insertTag(&statusWrapper, isc_tpb_no_auto_undo);
130 tpbBuilder->insertTag(&statusWrapper, isc_tpb_ignore_limbo);
133 tpbBuilder->insertTag(&statusWrapper, isc_tpb_restart_requests);
136 tpbBuilder->insertTag(&statusWrapper, isc_tpb_autocommit);
138 const auto tpbBuffer = tpbBuilder->getBuffer(&statusWrapper);
139 const auto tpbBufferLen = tpbBuilder->getBufferLength(&statusWrapper);
141 handle.reset(attachment.
getHandle()->startTransaction(&statusWrapper, tpbBufferLen, tpbBuffer));
145 : client{attachment.getClient()}
150 StatusWrapper statusWrapper{client, status.get()};
153 attachment.
getHandle()->execute(&statusWrapper,
nullptr,
static_cast<unsigned>(setTransactionCmd.length()),
154 setTransactionCmd.data(), SQL_DIALECT_V6,
nullptr,
nullptr,
nullptr,
nullptr));