Tim Bunce wrote: > > On Fri, Feb 08, 2002 at 03:16:38PM +0100, Steffen Goeldner wrote:
> > > > Ok. Or, I'm thinking about a method ado_schema_dbinfo_literal(), caching > > all data of the adSchemaDBInfoLiterals pseudo-table, ... > > Attached are some results for the MSDAORA and Jet Provider. > > Seems like a good idea. Fine! Here a code snippet: sub ado_schema_dbinfo_literal { my($dbh, $literal_name) = @_; my $cache = $dbh->{ado_schema_dbinfo_literal_cache}; unless ( defined $cache ) { $cache = $dbh->{ado_schema_dbinfo_literal_cache} = {}; my $sth = $dbh->func('adSchemaDBInfoLiterals','OpenSchema'); while ( my $row = $sth->fetch ) { $cache->{$row->[0]} = [ @$row ]; } } my $row = $cache->{$literal_name}; return $row->[1] unless wantarray; # literal value return @$row; } Now, in DBD::ADO::GetInfo, we can use it: sub sql_identifier_quote_char { my $dbh = shift; DBD::ADO::db::ado_schema_dbinfo_literal($dbh,'QUOTE') || DBD::ADO::db::ado_schema_dbinfo_literal($dbh,'QUOTE_PREFIX') ||'"'; } sub sql_catalog_name_separator { my $dbh = shift; DBD::ADO::db::ado_schema_dbinfo_literal($dbh,'CATALOG_SEPARATOR') ||'.'; } Steffen