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=58ac36f79898456d5e8e0d48bfb2144dc3a2a18b;hpb=9c5411701b749216630298f5e9056de2ac0a30fe;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 58ac36f..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::Sybase + 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