The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::SQLEngine::Driver::Informix - Support DBD::Informix and DBD::ODBC/Informix

SYNOPSIS

DBI Wrapper: Adds methods to a DBI database handle.

  my $sqldb = DBIx::SQLEngine->new( 'dbi:Informix:test_data@my_server' );

Portability Subclasses: Uses driver's idioms or emulation.

  $sqldb->do_insert(                          # use SERIAL column
    table => 'students', sequence => 'id',        
    values => { 'name'=>'Dave', 'age'=>'19', 'status'=>'minor' },
  );

DESCRIPTION

This package provides a subclass of DBIx::SQLEngine which compensates for Informix's idiosyncrasies.

About Driver Subclasses

You do not need to use this package directly; when you connect to a database, the SQLEngine object is automatically re-blessed in to the appropriate subclass.

For more information about the underlying driver class, see DBD::Informix.

Under Development

Note that this driver class has been added recently and not yet tested in real-world conditions.

To Do: Add missing functionality from related CPAN modules. See DBD::Informix::Summary, DBIx::SearchBuilder::Handle::Informix and maybe Dimedis::SqlDriver::Informix.

FETCHING DATA (SQL DQL)

Methods Used By Complex Queries

sql_limit()

Not yet supported. Perhaps we should use "first $maxrows" and throw out the first $offset?

EDITING DATA (SQL DML)

Insert to Add Data

do_insert_with_sequence()
  $sqldb->do_insert_with_sequence( $sequence_name, %sql_clauses ) : $row_count

Implemented using _seq_do_insert_postfetch and seq_fetch_current.

seq_fetch_current()
  $sqldb->seq_fetch_current( ) : $current_value

Implemented using DBD::Informix's ix_sqlerrd attribute.

Note that this doesn't fetch the current sequence value for a given table, since it doesn't respect the table and field arguments, but merely returns the last sequencial value created during this session.

DEFINING STRUCTURES (SQL DDL)

Column Type Methods

dbms_create_column_types()
  $sqldb->dbms_create_column_types () : %column_type_codes

Implemented using Informix's byte and SERIAL types.

dbms_create_column_text_long_type()
  $sqldb->dbms_create_column_text_long_type () : $col_type_str

Implemented using Informix's text type.

ADVANCED CAPABILITIES

Call, Create and Drop Stored Procedures

fetch_storedproc()
  $sqldb->fetch_storedproc( $proc_name, @arguments ) : $rows

Calls fetch_sql with "execute procedure", the procedure name, and the arguments using placeholders.

do_storedproc()
  $sqldb->do_storedproc( $proc_name, @arguments ) : $row_count

Calls do_sql with "execute procedure", the procedure name, and the arguments using placeholders.

create_storedproc()
  $sqldb->create_storedproc( $proc_name, $definition )

Calls do_sql with "create procedure", the procedure name, and the definition.

drop_storedproc()
  $sqldb->drop_storedproc( $proc_name )

Calls do_sql with "drop procedure" and the procedure name.

SEE ALSO

See DBIx::SQLEngine for the overall interface and developer documentation.

See DBIx::SQLEngine::Docs::ReadMe for general information about this distribution, including installation and license information.