/// <summary> /// Rolls back a transaction from a pending state. /// </summary> public override void Rollback() { CheckDisposed(); if (_conn == null) { throw new InvalidOperationException(resman.GetString("Exception_NoTransaction")); } NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "Rollback"); NpgsqlCommand.ExecuteBlindSuppressTimeout(_conn.Connector, NpgsqlQuery.RollbackTransaction); _conn.Connector.Transaction = null; _conn = null; }
/// <summary> /// Rolls back a transaction from a pending savepoint state. /// </summary> public void Rollback(String savePointName) { CheckDisposed(); if (_conn == null) { throw new InvalidOperationException(resman.GetString("Exception_NoTransaction")); } if (!_conn.Connector.SupportsSavepoint) { throw new InvalidOperationException(resman.GetString("Exception_SavePointNotSupported")); } if (savePointName.Contains(";")) { throw new InvalidOperationException(resman.GetString("Exception_SavePointWithSemicolon")); } NpgsqlCommand.ExecuteBlindSuppressTimeout(_conn.Connector, string.Format("ROLLBACK TO SAVEPOINT {0}", savePointName)); }