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 . 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).