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.

Reply via email to