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=35171e26b621bfc29ab3506bdae774341d598c3a;hpb=5608593ecfa387242316e6412fce7cad28be053f;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 35171e2..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,10 +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; @@ -29,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