The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

DBD::InterBase - DBI driver for InterBase RDBMS server

SYNOPSIS

  use DBI;
  
  $dbpath = '/home/edwin/perl_example.gdb';
  $dsn = "DBI:InterBase:database=$dbpath;host=puskom-4;ib_dialect=3";

  $dbh = DBI->connect($dsn, '', '', {AutoCommit => 0}) 
    or die "$DBI::errstr";

  $dbh = DBI->connect($dsn, '', '', {RaiseError => 1}) 
    or die "$DBI::errstr";

  $sth = $dbh->prepare("select * from SIMPLE") or die $dbh->errstr;
  $sth->execute;

  while (@row = $sth->fetchrow_array))
  {
    print @row, "\n";
  }

  $dbh->commit or warn $dbh->errstr;
  $dbh->disconnect or warn $dbh->errstr;  

For more examples, see eg/ directory.

DESCRIPTION

This DBI driver currently is a wrapper around IBPerl, written in pure perl. It is based on the DBI 1.13 specification dan IBPerl 0.8p2.

Connecting with InterBase-specific optional parameters

InterBase allows you to connect with specifiying ib_role, ib_protocol, ib_cache, ib_charset, ib_separator, ib_dateformat, and ib_dialect. These parameters can be passed to InterBase via $dsn of DBI connect method. Eg:

  $dsn = 'dbi:InterBase:database=/path/to/data.gdb;ib_dialect=3';

PREREQUISITE

  • InterBase client

    Available at http://www.interbase.com/,

  • IBPerl 0.8 patch 2, by Bill Karwin

    Available at http://www.karwin.com/ibperl/

INSTALLATION

Run:

  # perl Makefile.PL

Here you will be prompted with some questions due to the database that will be used during 'make test'.

  # make
  # make test (optional)

The database you specify when running Makefile.PL should has been existed before running 'make test', otherwise you will get 'Invalid DBI handle -1' error message.

  # make install

WARNING

InterBase specific behaviour:

  • $sth->{NAME} available after the first fetch

  • $sth->{NUM_OF_FIELDS} available after the first fetch

  • $dbh->do() doesn't return number of records affected

  • $sth->execute() doesn't return number of records

TESTED PLATFORMS

This module has been tested on Linux (2.2.12-20), IBPerl 0.8p2, Perl 5.005_03, to access InterBase SuperServer 6.0 for Linux.

KNOWN BUGS

This sequence won't work:

  $dbh->do($stmt); #any statement on table TBL
  $dbh->commit;
  $dbh->do("drop table TBL");

Workaround: Change the commit with disconnect, and then connect again. This bug seems to occurs at IBPerl level. Try some examples in eg/ibperl directory.

BUG REPORTS

Please send any bug report and patches to dbi-users mailing list (http://www.isc.org/dbi-lists.html) Any bug report should be accompanied with the script that got the problem, and the output of DBI trace method.

HISTORY

Version 0.1, June 28, 2000

Several connect() attributes specific to InterBase now use ib_ prefix: ib_protocol, ib_role, ib_charset, ib_charset, and ib_cache.

Several bug fixes and features addition:

  • Separator and DateFormat are obsolete. Use ib_separator and ib_dateformat instead.

  • ib_dialect attribute in connect() method.

  • set_err in connect(), by Mark D. Anderson <mda@discerning.com>,

  • tables() method, by Michael Arnett <marnett@mediaone.net>,

  • ping() method, by Flemming Frandsen <dion@swamp.dk>, and Mike Shoyher <msh@e-labs.ru>.

  • AutoCommit=>0 causes segfault within mod_perl, by Mike Shoyher <msh@e-labs.ru>.

Version 0.021, September 19, 1999

Separator and DateFormat options works for prepare() and do(). bind_param() now works. One more fix to AutoCommit behaviour.

Version 0.02, July 31, 1999

Alpha code. Major enhancement from the previous pre-alpha code. Previous known problems have been fixed. AutoCommit attribute works as expected.

Version 0.01, July 23, 1999

Pre-alpha code. An almost complete rewrite of DBIx::IB in pure perl. Problems encountered during handles destruction phase.

DBIx::IB Version 0.01, July 22, 1999

DBIx::IB, a DBI emulation layer for IBPerl is publicly announced.

TODO

  • Rigorous test under mod_perl and Apache::DBI

  • An xs version should be much powerful, and simplify the installation process.

ACKNOWLEDGEMENTS

Bill Karwin - author of IBPerl, Tim Bunce - author of DBI.

AUTHOR

Copyright (c) 1999 Edwin Pratomo <ed.pratomo@computer.org>.

All rights reserved. This is a free code, available as-is; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

DBI(3), IBPerl(1).