[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dbi-dev
Subject:    DBI: get_info()
From:       Steffen Goeldner <s.goeldner () eurodata ! de>
Date:       2001-11-19 9:27:54
[Download RAW message or body]

Both, SQL/CLI and ODBC define a function 'SQLGetInfo' for obtaining
information about the implementation:

  SQLRETURN SQLGetInfo
  (
    SQLHDBC       ConnectionHandle
  , SQLUSMALLINT  InfoType
  , SQLPOINTER    InfoValuePtr
  , SQLSMALLINT   BufferLength
  , SQLSMALLINT*  StringLengthPtr
  );

A perlish interface (which already exists) may look like:

  $value = $dbh->get_info( $info_type );

To be even more perlish, Tim suggests that these values are
available as database handle attributes too:

  $value = $dbh->{ $info_type };

See http://archive.develooper.com/dbi-dev@perl.org/msg00499.html
for more information.

- ODBC defines more information types than SQL/CLI:

                                         ODBC SQL/CLI
  ----------------------------------- ------- -------
  SQL_ACTIVE_CONNECTIONS                    0        
  SQL_MAXIMUM_DRIVER_CONNECTIONS            0       0
  SQL_MAX_DRIVER_CONNECTIONS                0        
  SQL_INFO_FIRST                            0        
  SQL_ACTIVE_STATEMENTS                     1        
  SQL_MAX_CONCURRENT_ACTIVITIES             1        
  SQL_MAXIMUM_CONCURRENT_ACTIVITIES         1       1
  SQL_DATA_SOURCE_NAME                      2       2
  SQL_DRIVER_HDBC                           3        
  SQL_DRIVER_HENV                           4        
  SQL_DRIVER_HSTMT                          5        
  SQL_DRIVER_NAME                           6        
  SQL_DRIVER_VER                            7        
  SQL_FETCH_DIRECTION                       8       8
  SQL_ODBC_API_CONFORMANCE                  9        
  SQL_ODBC_VER                             10        
  SQL_ROW_UPDATES                          11        
  SQL_ODBC_SAG_CLI_CONFORMANCE             12        
  SQL_SERVER_NAME                          13      13
  SQL_SEARCH_PATTERN_ESCAPE                14      14
  SQL_ODBC_SQL_CONFORMANCE                 15        
  SQL_DBMS_NAME                            17      17
  SQL_DBMS_VER                             18        
  SQL_DBMS_VERSION                                 18
  SQL_ACCESSIBLE_TABLES                    19        
  SQL_ACCESSIBLE_PROCEDURES                20        
  SQL_PROCEDURES                           21        
  SQL_CONCAT_NULL_BEHAVIOR                 22        
  SQL_CURSOR_COMMIT_BEHAVIOR               23      23
  SQL_CURSOR_ROLLBACK_BEHAVIOR             24        
  SQL_DATA_SOURCE_READ_ONLY                25      25
  SQL_DEFAULT_TXN_ISOLATION                26        
  SQL_DEFAULT_TRANSACTION_ISOLATION                26
  SQL_EXPRESSIONS_IN_ORDERBY               27        
  SQL_IDENTIFIER_CASE                      28      28
  SQL_IDENTIFIER_QUOTE_CHAR                29        
  SQL_MAXIMUM_COLUMN_NAME_LENGTH           30      30
  SQL_MAX_COLUMN_NAME_LEN                  30        
  SQL_MAXIMUM_CURSOR_NAME_LENGTH           31      31
  SQL_MAX_CURSOR_NAME_LEN                  31        
  SQL_MAX_OWNER_NAME_LEN                   32        
  SQL_MAXIMUM_SCHEMA_NAME_LENGTH           32      32
  SQL_MAX_SCHEMA_NAME_LEN                  32        
  SQL_MAX_PROCEDURE_NAME_LEN               33        
  SQL_MAX_CATALOG_NAME_LEN                 34        
  SQL_MAXIMUM_CATALOG_NAME_LENGTH          34      34
  SQL_MAX_QUALIFIER_NAME_LEN               34        
  SQL_MAX_TABLE_NAME_LEN                   35        
  SQL_MAXIMUM_TABLE_NAME_LENGTH                    35
  SQL_MULT_RESULT_SETS                     36        
  SQL_MULTIPLE_ACTIVE_TXN                  37        
  SQL_OUTER_JOINS                          38        
  SQL_OWNER_TERM                           39        
  SQL_SCHEMA_TERM                          39        
  SQL_PROCEDURE_TERM                       40        
  SQL_CATALOG_NAME_SEPARATOR               41        
  SQL_QUALIFIER_NAME_SEPARATOR             41        
  SQL_QUALIFIER_TERM                       42        
  SQL_CATALOG_TERM                         42        
  SQL_SCROLL_CONCURRENCY                   43      43
  SQL_SCROLL_OPTIONS                       44        
  SQL_TABLE_TERM                           45        
  SQL_TXN_CAPABLE                          46        
  SQL_TRANSACTION_CAPABLE                  46      46
  SQL_USER_NAME                            47      47
  SQL_CONVERT_FUNCTIONS                    48        
  SQL_NUMERIC_FUNCTIONS                    49        
  SQL_STRING_FUNCTIONS                     50        
  SQL_SYSTEM_FUNCTIONS                     51        
  SQL_TIMEDATE_FUNCTIONS                   52        
  SQL_CONVERT_BIGINT                       53        
  SQL_CONVERT_BINARY                       54        
  SQL_CONVERT_BIT                          55        
  SQL_CONVERT_CHAR                         56        
  SQL_CONVERT_DATE                         57        
  SQL_CONVERT_DECIMAL                      58        
  SQL_CONVERT_DOUBLE                       59        
  SQL_CONVERT_FLOAT                        60        
  SQL_CONVERT_INTEGER                      61        
  SQL_CONVERT_LONGVARCHAR                  62        
  SQL_CONVERT_NUMERIC                      63        
  SQL_CONVERT_REAL                         64        
  SQL_CONVERT_SMALLINT                     65        
  SQL_CONVERT_TIME                         66        
  SQL_CONVERT_TIMESTAMP                    67        
  SQL_CONVERT_TINYINT                      68        
  SQL_CONVERT_VARBINARY                    69        
  SQL_CONVERT_VARCHAR                      70        
  SQL_CONVERT_LONGVARBINARY                71        
  SQL_TXN_ISOLATION_OPTION                 72        
  SQL_TRANSACTION_ISOLATION_OPTION         72      72
  SQL_INTEGRITY                            73      73
  SQL_ODBC_SQL_OPT_IEF                     73        
  SQL_CORRELATION_NAME                     74        
  SQL_NON_NULLABLE_COLUMNS                 75        
  SQL_DRIVER_HLIB                          76        
  SQL_DRIVER_ODBC_VER                      77        
  SQL_LOCK_TYPES                           78        
  SQL_POS_OPERATIONS                       79        
  SQL_POSITIONED_STATEMENTS                80        
  SQL_GETDATA_EXTENSIONS                   81      81
  SQL_BOOKMARK_PERSISTENCE                 82        
  SQL_STATIC_SENSITIVITY                   83        
  SQL_FILE_USAGE                           84        
  SQL_NULL_COLLATION                       85      85
  SQL_ALTER_TABLE                          86      86
  SQL_COLUMN_ALIAS                         87        
  SQL_GROUP_BY                             88        
  SQL_KEYWORDS                             89        
  SQL_ORDER_BY_COLUMNS_IN_SELECT           90      90
  SQL_OWNER_USAGE                          91        
  SQL_SCHEMA_USAGE                         91        
  SQL_QUALIFIER_USAGE                      92        
  SQL_CATALOG_USAGE                        92        
  SQL_QUOTED_IDENTIFIER_CASE               93        
  SQL_SPECIAL_CHARACTERS                   94      94
  SQL_SUBQUERIES                           95        
  SQL_UNION_STATEMENT                      96        
  SQL_UNION                                96        
  SQL_MAXIMUM_COLUMNS_IN_GROUP_BY          97      97
  SQL_MAX_COLUMNS_IN_GROUP_BY              97        
  SQL_MAXIMUM_COLUMNS_IN_INDEX             98        
  SQL_MAX_COLUMNS_IN_INDEX                 98        
  SQL_MAX_COLUMNS_IN_ORDER_BY              99        
  SQL_MAXIMUM_COLUMNS_IN_ORDER_BY          99      99
  SQL_MAX_COLUMNS_IN_SELECT               100        
  SQL_MAXIMUM_COLUMNS_IN_SELECT           100     100
  SQL_MAXIMUM_COLUMNS_IN_TABLE                    101
  SQL_MAX_COLUMNS_IN_TABLE                101        
  SQL_MAXIMUM_INDEX_SIZE                  102        
  SQL_MAX_INDEX_SIZE                      102        
  SQL_MAX_ROW_SIZE_INCLUDES_LONG          103        
  SQL_MAX_ROW_SIZE                        104        
  SQL_MAXIMUM_ROW_SIZE                    104        
  SQL_MAX_STATEMENT_LEN                   105        
  SQL_MAXIMUM_STATEMENT_LENGTH            105        
  SQL_MAXIMUM_TABLES_IN_SELECT            106     106
  SQL_MAX_TABLES_IN_SELECT                106        
  SQL_MAX_USER_NAME_LEN                   107        
  SQL_MAXIMUM_USER_NAME_LENGTH            107     107
  SQL_MAX_CHAR_LITERAL_LEN                108        
  SQL_TIMEDATE_ADD_INTERVALS              109        
  SQL_TIMEDATE_DIFF_INTERVALS             110        
  SQL_NEED_LONG_DATA_LEN                  111        
  SQL_MAX_BINARY_LITERAL_LEN              112        
  SQL_LIKE_ESCAPE_CLAUSE                  113        
  SQL_INFO_LAST                           114        
  SQL_QUALIFIER_LOCATION                  114        
  SQL_CATALOG_LOCATION                    114        
  SQL_OUTER_JOIN_CAPABILITIES             115     115
  SQL_ACTIVE_ENVIRONMENTS                 116        
  SQL_ALTER_DOMAIN                        117        
  SQL_SQL_CONFORMANCE                     118        
  SQL_DATETIME_LITERALS                   119        
  SQL_BATCH_ROW_COUNT                     120        
  SQL_BATCH_SUPPORT                       121        
  SQL_CONVERT_WCHAR                       122        
  SQL_CONVERT_INTERVAL_DAY_TIME           123        
  SQL_CONVERT_INTERVAL_YEAR_MONTH         124        
  SQL_CONVERT_WLONGVARCHAR                125        
  SQL_CONVERT_WVARCHAR                    126        
  SQL_CREATE_ASSERTION                    127        
  SQL_CREATE_CHARACTER_SET                128        
  SQL_CREATE_COLLATION                    129        
  SQL_CREATE_DOMAIN                       130        
  SQL_CREATE_SCHEMA                       131        
  SQL_CREATE_TABLE                        132        
  SQL_CREATE_TRANSLATION                  133        
  SQL_CREATE_VIEW                         134        
  SQL_DRIVER_HDESC                        135        
  SQL_DROP_ASSERTION                      136        
  SQL_DROP_CHARACTER_SET                  137        
  SQL_DROP_COLLATION                      138        
  SQL_DROP_DOMAIN                         139        
  SQL_DROP_SCHEMA                         140        
  SQL_DROP_TABLE                          141        
  SQL_DROP_TRANSLATION                    142        
  SQL_DROP_VIEW                           143        
  SQL_DYNAMIC_CURSOR_ATTRIBUTES1          144        
  SQL_DYNAMIC_CURSOR_ATTRIBUTES2          145        
  SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1     146        
  SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2     147        
  SQL_INDEX_KEYWORDS                      148        
  SQL_INFO_SCHEMA_VIEWS                   149        
  SQL_KEYSET_CURSOR_ATTRIBUTES1           150        
  SQL_KEYSET_CURSOR_ATTRIBUTES2           151        
  SQL_ODBC_INTERFACE_CONFORMANCE          152        
  SQL_PARAM_ARRAY_ROW_COUNTS              153        
  SQL_PARAM_ARRAY_SELECTS                 154        
  SQL_SQL92_DATETIME_FUNCTIONS            155        
  SQL_SQL92_FOREIGN_KEY_DELETE_RULE       156        
  SQL_SQL92_FOREIGN_KEY_UPDATE_RULE       157        
  SQL_SQL92_GRANT                         158        
  SQL_SQL92_NUMERIC_VALUE_FUNCTIONS       159        
  SQL_SQL92_PREDICATES                    160        
  SQL_SQL92_RELATIONAL_JOIN_OPERATORS     161        
  SQL_SQL92_REVOKE                        162        
  SQL_SQL92_ROW_VALUE_CONSTRUCTOR         163        
  SQL_SQL92_STRING_FUNCTIONS              164        
  SQL_SQL92_VALUE_EXPRESSIONS             165        
  SQL_STANDARD_CLI_CONFORMANCE            166        
  SQL_STATIC_CURSOR_ATTRIBUTES1           167        
  SQL_STATIC_CURSOR_ATTRIBUTES2           168        
  SQL_AGGREGATE_FUNCTIONS                 169        
  SQL_DDL_INDEX                           170        
  SQL_DM_VER                              171        
  SQL_INSERT_STATEMENT                    172        
  SQL_CONVERT_GUID                        173        
  SQL_INFO_DRIVER_START                  1000        
  SQL_XOPEN_CLI_YEAR                    10000        
  SQL_CURSOR_SENSITIVITY                10001   10001
  SQL_DESCRIBE_PARAMETER                10002   10002
  SQL_CATALOG_NAME                      10003   10003
  SQL_COLLATING_SEQUENCE                        10004
  SQL_COLLATION_SEQ                     10004        
  SQL_MAXIMUM_IDENTIFIER_LENGTH         10005   10005
  SQL_MAX_IDENTIFIER_LEN                10005        
  SQL_ASYNC_MODE                        10021        
  SQL_MAX_ASYNC_CONCURRENT_STATEMENTS   10022        
  SQL_MAXIMUM_STMT_OCTETS                       20000
  SQL_MAXIMUM_STMT_OCTETS_DATA                  20001
  SQL_MAXIMUM_STMT_OCTETS_SCHEMA                20002
  SQL_OJ_CAPABILITIES                   65003        

  Luckily, for the same symbolic name they define the same code.

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


Steffen

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic