Thanks. I'll get back to you after next week. Tim.
On Thu, Jan 10, 2002 at 11:08:07AM +0100, Steffen Goeldner wrote: > Tim Bunce wrote: > > > > On Mon, Nov 26, 2001 at 09:21:49PM +0000, Tim Bunce wrote: > > > On Mon, Nov 26, 2001 at 04:25:16PM +0100, Steffen Goeldner wrote: > > > > > > On reflection I agree that DBI attributes should be consistently > > > fetched by name, not a numeric value. > > > > I'm having second thoughts about this. > > > > > The $h->get_info method is still open to question. Since we have > > > to provide a name to number mapping anyway then we could define the > > > $h->get_info method to support either. > > > > I think a name to number mapping could be optional. > > > > If we drop the use of handle-attributes as a way to access SQLGetInfo() > > No problem. For DBI.pm, we only have to provide another > documentation (see attachment). > > > values and just provide a $dbh->get_info($) method then that method > > would naturally take a number, as per SQLGetInfo() in ODBC & SQL/CLI. > > > > Then it's up to the developer to either pass a numeric value > > > > $rollback_behaviour = $dbh->get_info(24); # 24=SQL_CURSOR_ROLLBACK_BEHAVIOR > > > > or make use of an optional name to number mapping that the DBI can > > provide (but not use internally): > > > > use DBI qw(:get_info); > > $rollback_behaviour = $dbh->get_info(SQL_CURSOR_ROLLBACK_BEHAVIOR); > > Exporting these symbols depends on the implementation of the > get_info constants. If you accepted DBI::Const - see: > > http:[EMAIL PROTECTED]/msg00559.html > > - then DBI.pm will need it's own import() routine, e.g.: > > sub import > { > my $class = shift; > my $caller = caller; > my @exports = (); > > for my $tag ( @_ ) { > if ( $tag eq ':get_info') { > require DBI::Const; > while ( my ( $key, $val ) = each %DBI::Const::GetInfo ) { > *{ $caller . '::' . $key } = sub () { $val }; > } > } > else { > push @exports, $tag; > } > } > $class->export( $caller, @exports ); > } > > > Steffen > *** DBI-1.20.orig/DBI.pm Sat Aug 25 01:33:52 2001 > --- DBI.pm Wed Jan 09 20:11:54 2002 > *************** > *** 2625,2630 **** > --- 2625,2657 ---- > Apache::DBI module for one example usage. > > > + =item C<get_info> I<NEW> > + > + B<Warning:> This method is experimental and may change. > + > + $value = $dbh->get_info( $info_type ); > + > + Returns information about the implementation, i.e. driver and data source > + capabilities, restrictions etc. > + > + For more detailed information about the information types and their > + meanings, you can refer to: > + > + http://msdn.microsoft.com/library/en-us/odbc/htm/odbcsqlgetinfo.asp > + > + If that URL ceases to work then use the MSDN search facility at: > + > + http://search.microsoft.com/us/dev/ > + > + and search for C<SQLGetInfo returns> using the exact phrase option. > + The link you want will probably just be called C<SQLGetInfo> and will > + be part of the Data Access SDK. > + > + See also pages 95, 226, 328 of the current SQL/CLI Working Draft: > + > + >http://www.jtc1sc32.org/sc32/jtc1sc32.nsf/Attachments/DF86E81BE70151D58525699800643F56/$FILE/32N0595T.PDF > + > + > =item C<table_info> I<NEW> > > B<Warning:> This method is experimental and may change.