Tim Bunce wrote:
> 
> On Thu, Feb 07, 2002 at 11:13:22AM +0100, Steffen Goeldner wrote:

> > + sub sql_identifier_quote_char {
> > +     my $dbh = shift;
> > +     my $sth = $dbh->func('adSchemaDBInfoLiterals','OpenSchema');
> > +     while ( my $row = $sth->fetch ) {
> > +             return $row->[1] if $row->[0] eq 'QUOTE'; # XXX QUOTE_PREFIX, 
>QUOTE_SUFFIX
> > +     }
> > +     return undef;
> > + }
> 
> Probably need a $sth->finish in there.

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.


> > + sub sql_keywords {
> > +     my $dbh = shift;
> > +     my $sth = $dbh->func('adSchemaDBInfoKeywords','OpenSchema');
> > +     my @Keywords = ();
> > +     while ( my $row = $sth->fetch ) {
> > +             push @Keywords, $row->[0];
> > +     }
> > +     return join ',', @Keywords;
> > + }
> 
> Or maybe:
>     return join ',', @{ $dbh->selectcol_arrayref($sth)||[] };

It doesn't work. It would work if I drop the execute() in
selectcol_arrayref() ... ???


> > + %info = (
> > +      22 => \&sql_concat_null_behavior     # SQL_CONCAT_NULL_BEHAVIOR
> > + ,     6 => 'DBD/ADO.pm'                   # SQL_DRIVER_NAME               # XXX
> 
> Maybe $INC{"DBD/ADO.pm"} instead.

Ok.

> > --- DBD-ADO-2.4.02/lib/DBD/ADO.pm     Wed Feb 06 20:20:22 2002
> >
> > +     sub get_info {
> > +             my($dbh, $info_type) = @_;
> > +             require DBD::ADO::GetInfo;
> > +             if ( exists $DBD::ADO::GetInfo::odbc2ado{$info_type} ) {
> 
> int($info_type) like:

Sorry, I forgot that.


Steffen
MSDAORA
-------

ADO\OpenSchema adSchemaDBInfoLiterals

Literal                  Literal Invalid Invalid  Literal Supported Maxlen
Name                     Value   Chars   Starting
                                         Chars
------------------------ ------- ------- -------- ------- --------- ----------
BINARY_LITERAL                                          1         1       4000
CATALOG_NAME                                            2         1 4294967295
CATALOG_SEPARATOR         @                             3         1          1
CHAR_LITERAL                                            4         1       4000
COLUMN_ALIAS                                            5         1         30
COLUMN_NAME                                             6         1         30
CORRELATION_NAME                                        7         1         30
CURSOR_NAME                                             8         1         30
ESCAPE_PERCENT            \%                            9         1          2
ESCAPE_UNDERSCORE         \_                           10         1          2
INDEX_NAME                                             11         1         30
LIKE_PERCENT              %                            12         1          1
LIKE_UNDERSCORE           _                            13         1          1
PROCEDURE_NAME                                         14         1         61
SCHEMA_NAME                                            16         1         30
TABLE_NAME                                             17         1         30
TEXT_COMMAND                                           18         1 4294967295
USER_NAME                                              19         1         30
VIEW_NAME                                              20         1         30
QUOTE                     "                            15         1          1
QUOTE_SUFFIX              "                            28         1          1
SCHEMA_SEPARATOR          .                            27         1          1


Microsoft.Jet.OLEDB.4.0
-----------------------

ADO\OpenSchema adSchemaDBInfoLiterals

Literal                  Literal Invalid Invalid  Literal Supported Maxlen
Name                     Value   Chars   Starting
                                         Chars
------------------------ ------- ------- -------- ------- --------- ----------
BINARY_LITERAL                                          1         1        255
CHAR_LITERAL                     .!`[]                  4         1        255
COLUMN_ALIAS                     .!`[]                  5         1         64
COLUMN_NAME                      .!`[]                  6         1         64
ESCAPE_PERCENT           [                              9         1          1
ESCAPE_UNDERSCORE        [                             10         1          1
ESCAPE_PERCENT_SUFFIX    ]                             29         1          1
ESCAPE_UNDERSCORE_SUFFIX ]                             30         1          1
INDEX_NAME                       .!`[]                 11         1         64
LIKE_PERCENT             %                             12         1          1
LIKE_UNDERSCORE          _                             13         1          1
PROCEDURE_NAME                   .!`[]                 14         1         64
TABLE_NAME                       .!`[]                 17         1         64
TEXT_COMMAND                     .!`[]                 18         1 4294967295
QUOTE                    `                             15         1          1
QUOTE_SUFFIX             `                             28         1          1

Reply via email to