X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FSybase%2FMicrosoft_SQL_Server.pm;h=b0462f9972214f5c99abb31b3ac4b204047020e7;hb=8c4b6c50e873a2b5993d1bfe0f40763d994b7da4;hp=2c49ea121b90fd884067621121c593d65d4227bb;hpb=f0070d01c1ebc3895551ff52580c544e180e7bcf;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm b/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm index 2c49ea1..b0462f9 100644 --- a/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm +++ b/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm @@ -4,9 +4,26 @@ use strict; use warnings; use base qw/ + DBIx::Class::Storage::DBI::Sybase::Base DBIx::Class::Storage::DBI::ODBC::Microsoft_SQL_Server DBIx::Class::Storage::DBI::NoBindVars /; +use mro 'c3'; + +sub _rebless { + my $self = shift; + $self->disable_sth_caching(1); + +# LongReadLen doesn't work with MSSQL through DBD::Sybase, and the default is +# huge on some versions of SQL server and can cause memory problems, so we +# fix it up here. + my $dbh = $self->_dbh; + + my $text_size = eval { $self->_dbi_connect_info->[-1]->{LongReadLen} } || + 32768; # the DBD::Sybase default + + $dbh->do("set textsize $text_size"); +} 1; @@ -28,11 +45,12 @@ into the SQL query itself, without using bind placeholders. More importantly this means that caching of prepared statements is explicitly disabled, as the interpolation renders it useless. -=head1 AUTHORS +The actual driver code for MSSQL is in +L. -Brandon L Black +=head1 AUTHORS -Justin Hunter +See L. =head1 LICENSE