=head1 SYNOPSIS
-All functionality is provided by L<DBIx::Class::Storage::DBI::Interbase>, see
+Most functionality is provided by L<DBIx::Class::Storage::DBI::Interbase>, see
that module for details.
To build the ODBC driver for Firebird on Linux for unixODBC, see:
=cut
-__PACKAGE__->sql_maker_class('DBIx::Class::SQLAHacks::ODBC::Firebird');
+# XXX seemingly no equivalent to ib_time_all in DBD::InterBase via ODBC
+sub connect_call_datetime_setup { 1 }
-sub datetime_parser_type { __PACKAGE__ }
+# from MSSQL
-my $datetime_parser;
-
-sub parse_datetime {
- shift;
- require DateTime::Format::Strptime;
- $datetime_parser ||= DateTime::Format::Strptime->new(
- pattern => '%F %H:%M:%S',
- on_error => 'croak',
- );
- $datetime_parser->parse_datetime(shift);
+sub build_datetime_parser {
+ my $self = shift;
+ my $type = "DateTime::Format::Strptime";
+ eval "use ${type}";
+ $self->throw_exception("Couldn't load ${type}: $@") if $@;
+ return $type->new(
+ pattern => '%Y-%m-%d %H:%M:%S', # %F %T
+ on_error => 'croak',
+ );
}
+# we don't need DBD::InterBase-specific initialization
+sub _init { 1 }
+
+# ODBC uses dialect 3 by default, good
+sub _set_sql_dialect { 1 }
+
1;
+=head1 CAVEATS
+
+=over 4
+
+=item *
+
+This driver (unlike L<DBD::InterBase>) does not currently support reading or
+writing C<TIMESTAMP> values with sub-second precision.
+
+=back
+
=head1 AUTHOR
See L<DBIx::Class/AUTHOR> and L<DBIx::Class/CONTRIBUTORS>.