You are here

public function Connection::pushTransaction in Drupal driver for SQL Server and SQL Azure 4.0.x

Same name and namespace in other branches
  1. 4.2.x src/Driver/Database/sqlsrv/Connection.php \Drupal\sqlsrv\Driver\Database\sqlsrv\Connection::pushTransaction()
  2. 3.1.x src/Driver/Database/sqlsrv/Connection.php \Drupal\sqlsrv\Driver\Database\sqlsrv\Connection::pushTransaction()
  3. 4.1.x src/Driver/Database/sqlsrv/Connection.php \Drupal\sqlsrv\Driver\Database\sqlsrv\Connection::pushTransaction()

Using SQL Server query syntax.

Overrides Connection::pushTransaction

File

src/Driver/Database/sqlsrv/Connection.php, line 473

Class

Connection
Sqlsvr implementation of \Drupal\Core\Database\Connection.

Namespace

Drupal\sqlsrv\Driver\Database\sqlsrv

Code

public function pushTransaction($name) {
  if (!$this
    ->supportsTransactions()) {
    return;
  }
  if (isset($this->transactionLayers[$name])) {
    throw new TransactionNameNonUniqueException($name . " is already in use.");
  }

  // If we're already in a transaction then we want to create a savepoint
  // rather than try to create another transaction.
  if ($this
    ->inTransaction()) {
    $this
      ->queryDirect('SAVE TRANSACTION ' . $name);
  }
  else {
    $this->connection
      ->beginTransaction();
  }
  $this->transactionLayers[$name] = $name;
}