doc tweak
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Sybase / Microsoft_SQL_Server.pm
index d4485a3..b0462f9 100644 (file)
@@ -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,10 +34,7 @@ DBD::Sybase
 
 =head1 SYNOPSIS
 
-This subclass supports MSSQL connected via L<DBD::Sybase>.
-
-  $schema->storage_type('::DBI::Sybase::Microsoft_SQL_Server');
-  $schema->connect_info('dbi:Sybase:....', ...);
+This subclass supports MSSQL server connections via L<DBD::Sybase>.
 
 =head1 CAVEATS
 
@@ -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<DBIx::Class::Storage::DBI::ODBC::Microsoft_SQL_Server>.
 
-Brandon L Black <blblack@gmail.com>
+=head1 AUTHORS
 
-Justin Hunter <justin.d.hunter@gmail.com>
+See L<DBIx::Class/CONTRIBUTORS>.
 
 =head1 LICENSE