X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FODBC%2FMicrosoft_SQL_Server.pm;h=b2db13f5facb085c6dfd56b1162718ca91de2d70;hb=153a03985a7f299a10f70dbfba9c628579cd9db6;hp=1b51b573f0de5a7cf8bcd954fdc11a0b9ef6cca3;hpb=322ac74746c0ec7bb03f9241241ce7d0b928f929;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm b/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm index 1b51b57..b2db13f 100644 --- a/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm +++ b/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm @@ -4,9 +4,9 @@ use warnings; use base qw/DBIx::Class::Storage::DBI::MSSQL/; use mro 'c3'; - -use List::Util(); -use Scalar::Util (); +use Scalar::Util 'reftype'; +use Try::Tiny; +use namespace::clean; __PACKAGE__->mk_group_accessors(simple => qw/ _using_dynamic_cursors @@ -37,7 +37,7 @@ Use as: on_connect_call => 'use_dynamic_cursors' -in your L as one way to enable multiple +in your L as one way to enable multiple concurrent statements. Will add C<< odbc_cursortype => 2 >> to your DBI connection attributes. See @@ -66,7 +66,7 @@ sub connect_call_use_dynamic_cursors { my $dbi_attrs = $self->_dbi_connect_info->[-1]; - unless (ref($dbi_attrs) && Scalar::Util::reftype($dbi_attrs) eq 'HASH') { + unless (ref($dbi_attrs) && reftype $dbi_attrs eq 'HASH') { $dbi_attrs = {}; push @{ $self->_dbi_connect_info }, $dbi_attrs; } @@ -84,18 +84,17 @@ sub _set_dynamic_cursors { my $self = shift; my $dbh = $self->_get_dbh; - eval { + try { local $dbh->{RaiseError} = 1; local $dbh->{PrintError} = 0; $dbh->do('SELECT @@IDENTITY'); - }; - if ($@) { + } catch { $self->throw_exception (<<'EOF'); Your drivers do not seem to support dynamic cursors (odbc_cursortype => 2), if you're using FreeTDS, make sure to set tds_version to 8.0 or greater. EOF - } + }; $self->_using_dynamic_cursors(1); $self->_identity_method('@@identity'); @@ -175,14 +174,6 @@ sub connect_call_use_MARS { } } -sub _get_mssql_version { - my $self = shift; - - my ($version) = $self->_get_dbh->get_info(18) =~ /^(\d+)/; - - return $version; -} - 1; =head1 AUTHOR