Subject Re: [ib-support] Re: Installing Perl DBD on a client machine
Author Adam Clarke
----- Original Message -----
From: "Bill Karwin" <bill@...>
Sent: Wednesday, August 29, 2001 1:18 PM


Good to see you here Bill :)

> I first developed IBPerl in 1996, when Tim Bunce's DBI specification
> was poorly documented and changing constantly. It was too unstable
> for me, so I wrote something independently. I also had the
> opportunity to surface some IB-specific features (like decoupling
> transactions from connections, which most database interfaces like
> ODBC/JDBC/BDE assume are inseparable).

And it was a fine thing too.

> There actually is a way to extend the DBI interface in vendor-
> specific ways, though I haven't fully figured it out yet. So one
> could in theory use DBD::InterBase, but also add a few optional
> methods to permit access to the good stuff. The best of both worlds!

This has been started already with better access to InterBase's transaction
behaviour. Here is an excerpt from the DBD::InterBase documentation (v
0.28.4).

set_tx_param

$dbh->func(
-access_mode => 'read_write',
-isolation_level => 'read_committed',
-lock_resolution => 'wait',
'set_tx_param'
);

Valid value for "-access_mode" is "read_write", or "read_only".
Valid value for "-lock_resolution" is "wait", or "no_wait".
"-isolation_level" may be: "read_committed", "snapshot",
"snapshot_table_stability".
If "read_committed" is to be used with "record_version" or
"no_record_version",
then they should be inside an anonymous array:

$dbh->func(
-isolation_level => ['read_committed', 'record_version']
'set_tx_param'
);

Currently, table reservation is not yet supported.

Note also that recently a PPM (binary) version of the driver has been
compiled (it's on the sourceforge site) so those using ActiveState Perl can
get easy access to the latest and greatest DBD::InterBase without having
access to an appropriate compiler.