update Changes
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Sybase / Microsoft_SQL_Server.pm
1 package DBIx::Class::Storage::DBI::Sybase::Microsoft_SQL_Server;
2
3 use strict;
4 use warnings;
5
6 use base qw/
7   DBIx::Class::Storage::DBI::Sybase::Base
8   DBIx::Class::Storage::DBI::ODBC::Microsoft_SQL_Server
9   DBIx::Class::Storage::DBI::NoBindVars
10 /;
11 use mro 'c3';
12
13 sub _rebless {
14   my $self = shift;
15   $self->disable_sth_caching(1);
16
17 # LongReadLen doesn't work with MSSQL through DBD::Sybase, and the default is
18 # huge on some versions of SQL server and can cause memory problems, so we
19 # fix it up here.
20   $self->set_textsize(
21     eval { $self->_dbi_connect_info->[-1]->{LongReadLen} } ||
22     32768 # the DBD::Sybase default
23   );
24 }
25
26 1;
27
28 =head1 NAME
29
30 DBIx::Class::Storage::DBI::Sybase::Microsoft_SQL_Server - Storage::DBI subclass for MSSQL via
31 DBD::Sybase
32
33 =head1 SYNOPSIS
34
35 This subclass supports MSSQL server connections via L<DBD::Sybase>.
36
37 =head1 CAVEATS
38
39 This storage driver uses L<DBIx::Class::Storage::DBI::NoBindVars> as a base.
40 This means that bind variables will be interpolated (properly quoted of course)
41 into the SQL query itself, without using bind placeholders.
42
43 More importantly this means that caching of prepared statements is explicitly
44 disabled, as the interpolation renders it useless.
45
46 The actual driver code for MSSQL is in
47 L<DBIx::Class::Storage::DBI::ODBC::Microsoft_SQL_Server>.
48
49 =head1 AUTHORS
50
51 See L<DBIx::Class/CONTRIBUTORS>.
52
53 =head1 LICENSE
54
55 You may distribute this code under the same terms as Perl itself.
56
57 =cut