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=8a63ef915fd406db061048c59f32a705edaa19f4;hpb=98464041fda64549ac43bb13393bf4f9a53e30cb;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 8a63ef9..b0462f9 100644 --- a/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm +++ b/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm @@ -3,7 +3,27 @@ package DBIx::Class::Storage::DBI::Sybase::Microsoft_SQL_Server; use strict; use warnings; -use base qw/DBIx::Class::Storage::DBI::ODBC::Microsoft_SQL_Server DBIx::Class::Storage::DBI::Sybase/; +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; @@ -14,21 +34,23 @@ DBD::Sybase =head1 SYNOPSIS -This subclass supports MSSQL connected via L. +This subclass supports MSSQL server connections via L. - $schema->storage_type('::DBI::Sybase::Microsoft_SQL_Server'); - $schema->connect_info('dbi:Sybase:....', ...); +=head1 CAVEATS -=head1 BUGS +This storage driver uses L as a base. +This means that bind variables will be interpolated (properly quoted of course) +into the SQL query itself, without using bind placeholders. -Currently, this doesn't work right unless you call C -after connecting. +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