beginTransaction method

int beginTransaction(
  1. int connectionId,
  2. int isolationLevel, {
  3. int savepointDialect = 0,
  4. int accessMode = 0,
  5. int lockTimeoutMs = 0,
})
inherited

Begins a new transaction with the specified isolation level.

The connectionId must be a valid active connection. The isolationLevel should be a numeric value (0-3) corresponding to isolation level enum values (0=ReadUncommitted, 1=ReadCommitted, 2=RepeatableRead, 3=Serializable). The savepointDialect is the wire code from SavepointDialect.code (default 0 = auto, resolved by the Rust engine via SQLGetInfo). The accessMode is the wire code from TransactionAccessMode.code (default 0 = readWrite). Sprint 4.1. The lockTimeoutMs is the per-transaction lock timeout in milliseconds (default 0 = engine default). Sprint 4.2.

Returns a transaction ID on success, 0 on failure.

Implementation

int beginTransaction(
  int connectionId,
  int isolationLevel, {
  int savepointDialect = 0,
  int accessMode = 0,
  int lockTimeoutMs = 0,
}) =>
    _captureSync(
      'beginTransaction',
      () => _native.transactionBegin(
        connectionId,
        isolationLevel,
        savepointDialect: savepointDialect,
        accessMode: accessMode,
        lockTimeoutMs: lockTimeoutMs,
      ),
      failed: (value) => value == 0,
      nativeConnectionId: connectionId,
    );