$self->_rebless;
}
$self->connect_call_datetime_setup;
+ $self->connect_call_blob_setup;
}
}
}
my $self = shift;
$self->next::method(@_);
$self->connect_call_datetime_setup;
+ $self->connect_call_blob_setup;
1;
}
-{
- my $old_dbd_warned = 0;
+=head2 connect_call_blob_setup
+
+Used as:
+
+ on_connect_call => 'blob_setup'
+
+Does C<< $dbh->{syb_binary_images} = 1; >> to return C<IMAGE> data as raw binary
+instead of as a hex string.
+
+Recommended.
+
+=cut
+
+sub connect_call_blob_setup {
+ my $self = shift;
+ my $dbh = $self->_dbh;
+ $dbh->{syb_binary_images} = 1;
+}
=head2 connect_call_datetime_setup
=cut
+{
+ my $old_dbd_warned = 0;
+
sub connect_call_datetime_setup {
my $self = shift;
my $dbh = $self->_dbh;
}
}
+sub datetime_parser_type { "DateTime::Format::Sybase" }
+
sub _dbh_last_insert_id {
my ($self, $dbh, $source, $col) = @_;
return ($dbh->selectrow_array($sth))[0];
}
+=head2 count
+
+Counts for limited queries are emulated by executing select queries and
+returning the number of successful executions minus the offset.
+
+This is necessary due to the limitations of Sybase.
+
+=cut
+
sub count {
my $self = shift;
my ($source, $attrs) = @_;
return $count - $offset;
}
-sub datetime_parser_type { "DateTime::Format::Sybase" }
-
1;
=head1 NAME
But your queries will be cached.
+A recommended L<DBIx::Class::Storage::DBI/connect_info> setting:
+
+ on_connect_call => [qw/datetime_setup blob_setup/]
+
=head1 DATES
See L</connect_call_datetime_setup> to setup date formats
for L<DBIx::Class::InflateColumn::DateTime>.
+=head1 IMAGE AND TEXT COLUMNS
+
+See L</connect_call_blob_setup> for a L<DBIx::Class::Storage::DBI/connect_info>
+setting you need to work with C<IMAGE> columns.
+
+Due to limitations in L<DBD::Sybase> and this driver, it is only possible to
+select one C<TEXT> or C<IMAGE> column at a time.
+
=head1 AUTHORS
See L<DBIx::Class/CONTRIBUTORS>.