X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FMSSQL.pm;h=d9cd2ee1332721676721f6f19bd0dd6290fffb7d;hb=4c0f4206348c9487fb0f55660e71ed9b5e150543;hp=a03e8a3d8b3339e4c442dd0dcb65baf9536e04a6;hpb=79e18edb81d20547f252c6c209037304dc63a745;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/MSSQL.pm b/lib/DBIx/Class/Storage/DBI/MSSQL.pm index a03e8a3..d9cd2ee 100644 --- a/lib/DBIx/Class/Storage/DBI/MSSQL.pm +++ b/lib/DBIx/Class/Storage/DBI/MSSQL.pm @@ -103,6 +103,23 @@ sub _fetch_identity { sub last_insert_id { shift->_identity } +# savepoint syntax is the same as in Sybase ASE + +sub _svp_begin { + my ($self, $name) = @_; + + $self->dbh->do("SAVE TRANSACTION $name"); +} + +# A new SAVE TRANSACTION with the same name releases the previous one. +sub _svp_release { 1 } + +sub _svp_rollback { + my ($self, $name) = @_; + + $self->dbh->do("ROLLBACK TRANSACTION $name"); +} + sub build_datetime_parser { my $self = shift; my $type = "DateTime::Format::Strptime";