DBIx::Class::Storage::DBI::SQLAnywhere - Driver for SQL Anywhere


This class implements autoincrements for SQL Anywhere and provides DBIx::Class::InflateColumn::DateTime support and support for the uniqueidentifier type (via DBIx::Class::Storage::DBI::SQLAnywhere::Cursor.)

You need the DBD::SQLAnywhere driver that comes with the SQL Anywhere distribution, NOT the one on CPAN. It is usually under a path such as:


Recommended connect_info settings:

  on_connect_call => 'datetime_setup'



Used as:

    on_connect_call => 'datetime_setup'

In connect_info to set the date and timestamp formats (as temporary options for the session) for use with DBIx::Class::InflateColumn::DateTime.

The TIMESTAMP data type supports up to 6 digits after the decimal point for second precision. The full precision is used.

The DATE data type supposedly stores hours and minutes too, according to the documentation, but I could not get that to work. It seems to only store the date.

You will need the DateTime::Format::Strptime module for inflation to work.


A DBIx::Class application can use a lot of cursors, due to the usage of prepare_cached.

The default cursor maximum is 50, which can be a bit too low. This limit can be turned off (or increased) by the DBA by executing:

  set option max_statement_count = 0
  set option max_cursor_count    = 0

Highly recommended.


Check the list of additional DBIC resources.


This module is free software copyright by the DBIx::Class (DBIC) authors. You can redistribute it and/or modify it under the same terms as the DBIx::Class library.