[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