<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># $Id: ODBC.pm 11373 2008-06-02 19:01:33Z Tim $
#
# Copyright (c) 2002  Tim Bunce  Ireland
#
# Constant data describing Microsoft ODBC info types and return values
# for the SQLGetInfo() method of ODBC.
#
# You may distribute under the terms of either the GNU General Public
# License or the Artistic License, as specified in the Perl README file.

package DBI::Const::GetInfo::ODBC;

=head1 NAME

DBI::Const::GetInfo::ODBC - ODBC Constants for GetInfo

=head1 SYNOPSIS

 The API for this module is private and subject to change.

=head1 DESCRIPTION

Information requested by GetInfo().

The API for this module is private and subject to change.

=head1 REFERENCES

  MDAC SDK 2.6
  ODBC version number (0x0351)

  sql.h
  sqlext.h

=cut

my
$VERSION = "2.011374";

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

=head2 %ReturnTypes

See: mk:@MSITStore:X:\dm\cli\mdac\sdk26\Docs\odbc.chm::/htm/odbcsqlgetinfo.htm

  =&gt;     : alias
  =&gt; !!! : edited

=cut

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

=head2 %ReturnValues

See: sql.h, sqlext.h
Edited:
  SQL_TXN_ISOLATION_OPTION

=cut

$ReturnValues{SQL_AGGREGATE_FUNCTIONS} =
{
  SQL_AF_AVG                                =&gt; 0x00000001
, SQL_AF_COUNT                              =&gt; 0x00000002
, SQL_AF_MAX                                =&gt; 0x00000004
, SQL_AF_MIN                                =&gt; 0x00000008
, SQL_AF_SUM                                =&gt; 0x00000010
, SQL_AF_DISTINCT                           =&gt; 0x00000020
, SQL_AF_ALL                                =&gt; 0x00000040
};
$ReturnValues{SQL_ALTER_DOMAIN} =
{
  SQL_AD_CONSTRAINT_NAME_DEFINITION         =&gt; 0x00000001
, SQL_AD_ADD_DOMAIN_CONSTRAINT              =&gt; 0x00000002
, SQL_AD_DROP_DOMAIN_CONSTRAINT             =&gt; 0x00000004
, SQL_AD_ADD_DOMAIN_DEFAULT                 =&gt; 0x00000008
, SQL_AD_DROP_DOMAIN_DEFAULT                =&gt; 0x00000010
, SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED  =&gt; 0x00000020
, SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE =&gt; 0x00000040
, SQL_AD_ADD_CONSTRAINT_DEFERRABLE          =&gt; 0x00000080
, SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE      =&gt; 0x00000100
};
$ReturnValues{SQL_ALTER_TABLE} =
{
  SQL_AT_ADD_COLUMN                         =&gt; 0x00000001
, SQL_AT_DROP_COLUMN                        =&gt; 0x00000002
, SQL_AT_ADD_CONSTRAINT                     =&gt; 0x00000008
, SQL_AT_ADD_COLUMN_SINGLE                  =&gt; 0x00000020
, SQL_AT_ADD_COLUMN_DEFAULT                 =&gt; 0x00000040
, SQL_AT_ADD_COLUMN_COLLATION               =&gt; 0x00000080
, SQL_AT_SET_COLUMN_DEFAULT                 =&gt; 0x00000100
, SQL_AT_DROP_COLUMN_DEFAULT                =&gt; 0x00000200
, SQL_AT_DROP_COLUMN_CASCADE                =&gt; 0x00000400
, SQL_AT_DROP_COLUMN_RESTRICT               =&gt; 0x00000800
, SQL_AT_ADD_TABLE_CONSTRAINT               =&gt; 0x00001000
, SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE      =&gt; 0x00002000
, SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT     =&gt; 0x00004000
, SQL_AT_CONSTRAINT_NAME_DEFINITION         =&gt; 0x00008000
, SQL_AT_CONSTRAINT_INITIALLY_DEFERRED      =&gt; 0x00010000
, SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE     =&gt; 0x00020000
, SQL_AT_CONSTRAINT_DEFERRABLE              =&gt; 0x00040000
, SQL_AT_CONSTRAINT_NON_DEFERRABLE          =&gt; 0x00080000
};
$ReturnValues{SQL_ASYNC_MODE} =
{
  SQL_AM_NONE                               =&gt; 0
, SQL_AM_CONNECTION                         =&gt; 1
, SQL_AM_STATEMENT                          =&gt; 2
};
$ReturnValues{SQL_ATTR_MAX_ROWS} =
{
  SQL_CA2_MAX_ROWS_SELECT                   =&gt; 0x00000080
, SQL_CA2_MAX_ROWS_INSERT                   =&gt; 0x00000100
, SQL_CA2_MAX_ROWS_DELETE                   =&gt; 0x00000200
, SQL_CA2_MAX_ROWS_UPDATE                   =&gt; 0x00000400
, SQL_CA2_MAX_ROWS_CATALOG                  =&gt; 0x00000800
# SQL_CA2_MAX_ROWS_AFFECTS_ALL              =&gt;
};
$ReturnValues{SQL_ATTR_SCROLL_CONCURRENCY} =
{
  SQL_CA2_READ_ONLY_CONCURRENCY             =&gt; 0x00000001
, SQL_CA2_LOCK_CONCURRENCY                  =&gt; 0x00000002
, SQL_CA2_OPT_ROWVER_CONCURRENCY            =&gt; 0x00000004
, SQL_CA2_OPT_VALUES_CONCURRENCY            =&gt; 0x00000008
, SQL_CA2_SENSITIVITY_ADDITIONS             =&gt; 0x00000010
, SQL_CA2_SENSITIVITY_DELETIONS             =&gt; 0x00000020
, SQL_CA2_SENSITIVITY_UPDATES               =&gt; 0x00000040
};
$ReturnValues{SQL_BATCH_ROW_COUNT} =
{
  SQL_BRC_PROCEDURES                        =&gt; 0x0000001
, SQL_BRC_EXPLICIT                          =&gt; 0x0000002
, SQL_BRC_ROLLED_UP                         =&gt; 0x0000004
};
$ReturnValues{SQL_BATCH_SUPPORT} =
{
  SQL_BS_SELECT_EXPLICIT                    =&gt; 0x00000001
, SQL_BS_ROW_COUNT_EXPLICIT                 =&gt; 0x00000002
, SQL_BS_SELECT_PROC                        =&gt; 0x00000004
, SQL_BS_ROW_COUNT_PROC                     =&gt; 0x00000008
};
$ReturnValues{SQL_BOOKMARK_PERSISTENCE} =
{
  SQL_BP_CLOSE                              =&gt; 0x00000001
, SQL_BP_DELETE                             =&gt; 0x00000002
, SQL_BP_DROP                               =&gt; 0x00000004
, SQL_BP_TRANSACTION                        =&gt; 0x00000008
, SQL_BP_UPDATE                             =&gt; 0x00000010
, SQL_BP_OTHER_HSTMT                        =&gt; 0x00000020
, SQL_BP_SCROLL                             =&gt; 0x00000040
};
$ReturnValues{SQL_CATALOG_LOCATION} =
{
  SQL_CL_START                              =&gt; 0x0001  # SQL_QL_START
, SQL_CL_END                                =&gt; 0x0002  # SQL_QL_END
};
$ReturnValues{SQL_CATALOG_USAGE} =
{
  SQL_CU_DML_STATEMENTS                     =&gt; 0x00000001  # SQL_QU_DML_STATEMENTS
, SQL_CU_PROCEDURE_INVOCATION               =&gt; 0x00000002  # SQL_QU_PROCEDURE_INVOCATION
, SQL_CU_TABLE_DEFINITION                   =&gt; 0x00000004  # SQL_QU_TABLE_DEFINITION
, SQL_CU_INDEX_DEFINITION                   =&gt; 0x00000008  # SQL_QU_INDEX_DEFINITION
, SQL_CU_PRIVILEGE_DEFINITION               =&gt; 0x00000010  # SQL_QU_PRIVILEGE_DEFINITION
};
$ReturnValues{SQL_CONCAT_NULL_BEHAVIOR} =
{
  SQL_CB_NULL                               =&gt; 0x0000
, SQL_CB_NON_NULL                           =&gt; 0x0001
};
$ReturnValues{SQL_CONVERT_} =
{
  SQL_CVT_CHAR                              =&gt; 0x00000001
, SQL_CVT_NUMERIC                           =&gt; 0x00000002
, SQL_CVT_DECIMAL                           =&gt; 0x00000004
, SQL_CVT_INTEGER                           =&gt; 0x00000008
, SQL_CVT_SMALLINT                          =&gt; 0x00000010
, SQL_CVT_FLOAT                             =&gt; 0x00000020
, SQL_CVT_REAL                              =&gt; 0x00000040
, SQL_CVT_DOUBLE                            =&gt; 0x00000080
, SQL_CVT_VARCHAR                           =&gt; 0x00000100
, SQL_CVT_LONGVARCHAR                       =&gt; 0x00000200
, SQL_CVT_BINARY                            =&gt; 0x00000400
, SQL_CVT_VARBINARY                         =&gt; 0x00000800
, SQL_CVT_BIT                               =&gt; 0x00001000
, SQL_CVT_TINYINT                           =&gt; 0x00002000
, SQL_CVT_BIGINT                            =&gt; 0x00004000
, SQL_CVT_DATE                              =&gt; 0x00008000
, SQL_CVT_TIME                              =&gt; 0x00010000
, SQL_CVT_TIMESTAMP                         =&gt; 0x00020000
, SQL_CVT_LONGVARBINARY                     =&gt; 0x00040000
, SQL_CVT_INTERVAL_YEAR_MONTH               =&gt; 0x00080000
, SQL_CVT_INTERVAL_DAY_TIME                 =&gt; 0x00100000
, SQL_CVT_WCHAR                             =&gt; 0x00200000
, SQL_CVT_WLONGVARCHAR                      =&gt; 0x00400000
, SQL_CVT_WVARCHAR                          =&gt; 0x00800000
, SQL_CVT_GUID                              =&gt; 0x01000000
};
$ReturnValues{SQL_CONVERT_BIGINT             } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_BINARY             } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_BIT                } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_CHAR               } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_DATE               } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_DECIMAL            } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_DOUBLE             } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_FLOAT              } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_GUID               } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_INTEGER            } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_INTERVAL_DAY_TIME  } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_INTERVAL_YEAR_MONTH} = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_LONGVARBINARY      } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_LONGVARCHAR        } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_NUMERIC            } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_REAL               } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_SMALLINT           } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_TIME               } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_TIMESTAMP          } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_TINYINT            } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_VARBINARY          } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_VARCHAR            } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_WCHAR              } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_WLONGVARCHAR       } = $ReturnValues{SQL_CONVERT_};
$ReturnValues{SQL_CONVERT_WVARCHAR           } = $ReturnValues{SQL_CONVERT_};

$ReturnValues{SQL_CONVERT_FUNCTIONS} =
{
  SQL_FN_CVT_CONVERT                        =&gt; 0x00000001
, SQL_FN_CVT_CAST                           =&gt; 0x00000002
};
$ReturnValues{SQL_CORRELATION_NAME} =
{
  SQL_CN_NONE                               =&gt; 0x0000
, SQL_CN_DIFFERENT                          =&gt; 0x0001
, SQL_CN_ANY                                =&gt; 0x0002
};
$ReturnValues{SQL_CREATE_ASSERTION} =
{
  SQL_CA_CREATE_ASSERTION                   =&gt; 0x00000001
, SQL_CA_CONSTRAINT_INITIALLY_DEFERRED      =&gt; 0x00000010
, SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE     =&gt; 0x00000020
, SQL_CA_CONSTRAINT_DEFERRABLE              =&gt; 0x00000040
, SQL_CA_CONSTRAINT_NON_DEFERRABLE          =&gt; 0x00000080
};
$ReturnValues{SQL_CREATE_CHARACTER_SET} =
{
  SQL_CCS_CREATE_CHARACTER_SET              =&gt; 0x00000001
, SQL_CCS_COLLATE_CLAUSE                    =&gt; 0x00000002
, SQL_CCS_LIMITED_COLLATION                 =&gt; 0x00000004
};
$ReturnValues{SQL_CREATE_COLLATION} =
{
  SQL_CCOL_CREATE_COLLATION                 =&gt; 0x00000001
};
$ReturnValues{SQL_CREATE_DOMAIN} =
{
  SQL_CDO_CREATE_DOMAIN                     =&gt; 0x00000001
, SQL_CDO_DEFAULT                           =&gt; 0x00000002
, SQL_CDO_CONSTRAINT                        =&gt; 0x00000004
, SQL_CDO_COLLATION                         =&gt; 0x00000008
, SQL_CDO_CONSTRAINT_NAME_DEFINITION        =&gt; 0x00000010
, SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED     =&gt; 0x00000020
, SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE    =&gt; 0x00000040
, SQL_CDO_CONSTRAINT_DEFERRABLE             =&gt; 0x00000080
, SQL_CDO_CONSTRAINT_NON_DEFERRABLE         =&gt; 0x00000100
};
$ReturnValues{SQL_CREATE_SCHEMA} =
{
  SQL_CS_CREATE_SCHEMA                      =&gt; 0x00000001
, SQL_CS_AUTHORIZATION                      =&gt; 0x00000002
, SQL_CS_DEFAULT_CHARACTER_SET              =&gt; 0x00000004
};
$ReturnValues{SQL_CREATE_TABLE} =
{
  SQL_CT_CREATE_TABLE                       =&gt; 0x00000001
, SQL_CT_COMMIT_PRESERVE                    =&gt; 0x00000002
, SQL_CT_COMMIT_DELETE                      =&gt; 0x00000004
, SQL_CT_GLOBAL_TEMPORARY                   =&gt; 0x00000008
, SQL_CT_LOCAL_TEMPORARY                    =&gt; 0x00000010
, SQL_CT_CONSTRAINT_INITIALLY_DEFERRED      =&gt; 0x00000020
, SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE     =&gt; 0x00000040
, SQL_CT_CONSTRAINT_DEFERRABLE              =&gt; 0x00000080
, SQL_CT_CONSTRAINT_NON_DEFERRABLE          =&gt; 0x00000100
, SQL_CT_COLUMN_CONSTRAINT                  =&gt; 0x00000200
, SQL_CT_COLUMN_DEFAULT                     =&gt; 0x00000400
, SQL_CT_COLUMN_COLLATION                   =&gt; 0x00000800
, SQL_CT_TABLE_CONSTRAINT                   =&gt; 0x00001000
, SQL_CT_CONSTRAINT_NAME_DEFINITION         =&gt; 0x00002000
};
$ReturnValues{SQL_CREATE_TRANSLATION} =
{
  SQL_CTR_CREATE_TRANSLATION                =&gt; 0x00000001
};
$ReturnValues{SQL_CREATE_VIEW} =
{
  SQL_CV_CREATE_VIEW                        =&gt; 0x00000001
, SQL_CV_CHECK_OPTION                       =&gt; 0x00000002
, SQL_CV_CASCADED                           =&gt; 0x00000004
, SQL_CV_LOCAL                              =&gt; 0x00000008
};
$ReturnValues{SQL_CURSOR_COMMIT_BEHAVIOR} =
{
  SQL_CB_DELETE                             =&gt; 0
, SQL_CB_CLOSE                              =&gt; 1
, SQL_CB_PRESERVE                           =&gt; 2
};
$ReturnValues{SQL_CURSOR_ROLLBACK_BEHAVIOR} = $ReturnValues{SQL_CURSOR_COMMIT_BEHAVIOR};

$ReturnValues{SQL_CURSOR_SENSITIVITY} =
{
  SQL_UNSPECIFIED                           =&gt; 0
, SQL_INSENSITIVE                           =&gt; 1
, SQL_SENSITIVE                             =&gt; 2
};
$ReturnValues{SQL_DATETIME_LITERALS} =
{
  SQL_DL_SQL92_DATE                         =&gt; 0x00000001
, SQL_DL_SQL92_TIME                         =&gt; 0x00000002
, SQL_DL_SQL92_TIMESTAMP                    =&gt; 0x00000004
, SQL_DL_SQL92_INTERVAL_YEAR                =&gt; 0x00000008
, SQL_DL_SQL92_INTERVAL_MONTH               =&gt; 0x00000010
, SQL_DL_SQL92_INTERVAL_DAY                 =&gt; 0x00000020
, SQL_DL_SQL92_INTERVAL_HOUR                =&gt; 0x00000040
, SQL_DL_SQL92_INTERVAL_MINUTE              =&gt; 0x00000080
, SQL_DL_SQL92_INTERVAL_SECOND              =&gt; 0x00000100
, SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH       =&gt; 0x00000200
, SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR         =&gt; 0x00000400
, SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE       =&gt; 0x00000800
, SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND       =&gt; 0x00001000
, SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE      =&gt; 0x00002000
, SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND      =&gt; 0x00004000
, SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND    =&gt; 0x00008000
};
$ReturnValues{SQL_DDL_INDEX} =
{
  SQL_DI_CREATE_INDEX                       =&gt; 0x00000001
, SQL_DI_DROP_INDEX                         =&gt; 0x00000002
};
$ReturnValues{SQL_DIAG_CURSOR_ROW_COUNT} =
{
  SQL_CA2_CRC_EXACT                         =&gt; 0x00001000
, SQL_CA2_CRC_APPROXIMATE                   =&gt; 0x00002000
, SQL_CA2_SIMULATE_NON_UNIQUE               =&gt; 0x00004000
, SQL_CA2_SIMULATE_TRY_UNIQUE               =&gt; 0x00008000
, SQL_CA2_SIMULATE_UNIQUE                   =&gt; 0x00010000
};
$ReturnValues{SQL_DROP_ASSERTION} =
{
  SQL_DA_DROP_ASSERTION                     =&gt; 0x00000001
};
$ReturnValues{SQL_DROP_CHARACTER_SET} =
{
  SQL_DCS_DROP_CHARACTER_SET                =&gt; 0x00000001
};
$ReturnValues{SQL_DROP_COLLATION} =
{
  SQL_DC_DROP_COLLATION                     =&gt; 0x00000001
};
$ReturnValues{SQL_DROP_DOMAIN} =
{
  SQL_DD_DROP_DOMAIN                        =&gt; 0x00000001
, SQL_DD_RESTRICT                           =&gt; 0x00000002
, SQL_DD_CASCADE                            =&gt; 0x00000004
};
$ReturnValues{SQL_DROP_SCHEMA} =
{
  SQL_DS_DROP_SCHEMA                        =&gt; 0x00000001
, SQL_DS_RESTRICT                           =&gt; 0x00000002
, SQL_DS_CASCADE                            =&gt; 0x00000004
};
$ReturnValues{SQL_DROP_TABLE} =
{
  SQL_DT_DROP_TABLE                         =&gt; 0x00000001
, SQL_DT_RESTRICT                           =&gt; 0x00000002
, SQL_DT_CASCADE                            =&gt; 0x00000004
};
$ReturnValues{SQL_DROP_TRANSLATION} =
{
  SQL_DTR_DROP_TRANSLATION                  =&gt; 0x00000001
};
$ReturnValues{SQL_DROP_VIEW} =
{
  SQL_DV_DROP_VIEW                          =&gt; 0x00000001
, SQL_DV_RESTRICT                           =&gt; 0x00000002
, SQL_DV_CASCADE                            =&gt; 0x00000004
};
$ReturnValues{SQL_CURSOR_ATTRIBUTES1} =
{
  SQL_CA1_NEXT                              =&gt; 0x00000001
, SQL_CA1_ABSOLUTE                          =&gt; 0x00000002
, SQL_CA1_RELATIVE                          =&gt; 0x00000004
, SQL_CA1_BOOKMARK                          =&gt; 0x00000008
, SQL_CA1_LOCK_NO_CHANGE                    =&gt; 0x00000040
, SQL_CA1_LOCK_EXCLUSIVE                    =&gt; 0x00000080
, SQL_CA1_LOCK_UNLOCK                       =&gt; 0x00000100
, SQL_CA1_POS_POSITION                      =&gt; 0x00000200
, SQL_CA1_POS_UPDATE                        =&gt; 0x00000400
, SQL_CA1_POS_DELETE                        =&gt; 0x00000800
, SQL_CA1_POS_REFRESH                       =&gt; 0x00001000
, SQL_CA1_POSITIONED_UPDATE                 =&gt; 0x00002000
, SQL_CA1_POSITIONED_DELETE                 =&gt; 0x00004000
, SQL_CA1_SELECT_FOR_UPDATE                 =&gt; 0x00008000
, SQL_CA1_BULK_ADD                          =&gt; 0x00010000
, SQL_CA1_BULK_UPDATE_BY_BOOKMARK           =&gt; 0x00020000
, SQL_CA1_BULK_DELETE_BY_BOOKMARK           =&gt; 0x00040000
, SQL_CA1_BULK_FETCH_BY_BOOKMARK            =&gt; 0x00080000
};
$ReturnValues{     SQL_DYNAMIC_CURSOR_ATTRIBUTES1} = $ReturnValues{SQL_CURSOR_ATTRIBUTES1};
$ReturnValues{SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1} = $ReturnValues{SQL_CURSOR_ATTRIBUTES1};
$ReturnValues{      SQL_KEYSET_CURSOR_ATTRIBUTES1} = $ReturnValues{SQL_CURSOR_ATTRIBUTES1};
$ReturnValues{      SQL_STATIC_CURSOR_ATTRIBUTES1} = $ReturnValues{SQL_CURSOR_ATTRIBUTES1};

$ReturnValues{SQL_CURSOR_ATTRIBUTES2} =
{
  SQL_CA2_READ_ONLY_CONCURRENCY             =&gt; 0x00000001
, SQL_CA2_LOCK_CONCURRENCY                  =&gt; 0x00000002
, SQL_CA2_OPT_ROWVER_CONCURRENCY            =&gt; 0x00000004
, SQL_CA2_OPT_VALUES_CONCURRENCY            =&gt; 0x00000008
, SQL_CA2_SENSITIVITY_ADDITIONS             =&gt; 0x00000010
, SQL_CA2_SENSITIVITY_DELETIONS             =&gt; 0x00000020
, SQL_CA2_SENSITIVITY_UPDATES               =&gt; 0x00000040
, SQL_CA2_MAX_ROWS_SELECT                   =&gt; 0x00000080
, SQL_CA2_MAX_ROWS_INSERT                   =&gt; 0x00000100
, SQL_CA2_MAX_ROWS_DELETE                   =&gt; 0x00000200
, SQL_CA2_MAX_ROWS_UPDATE                   =&gt; 0x00000400
, SQL_CA2_MAX_ROWS_CATALOG                  =&gt; 0x00000800
, SQL_CA2_CRC_EXACT                         =&gt; 0x00001000
, SQL_CA2_CRC_APPROXIMATE                   =&gt; 0x00002000
, SQL_CA2_SIMULATE_NON_UNIQUE               =&gt; 0x00004000
, SQL_CA2_SIMULATE_TRY_UNIQUE               =&gt; 0x00008000
, SQL_CA2_SIMULATE_UNIQUE                   =&gt; 0x00010000
};
$ReturnValues{     SQL_DYNAMIC_CURSOR_ATTRIBUTES2} = $ReturnValues{SQL_CURSOR_ATTRIBUTES2};
$ReturnValues{SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2} = $ReturnValues{SQL_CURSOR_ATTRIBUTES2};
$ReturnValues{      SQL_KEYSET_CURSOR_ATTRIBUTES2} = $ReturnValues{SQL_CURSOR_ATTRIBUTES2};
$ReturnValues{      SQL_STATIC_CURSOR_ATTRIBUTES2} = $ReturnValues{SQL_CURSOR_ATTRIBUTES2};

$ReturnValues{SQL_FETCH_DIRECTION} =
{
  SQL_FD_FETCH_NEXT                         =&gt; 0x00000001
, SQL_FD_FETCH_FIRST                        =&gt; 0x00000002
, SQL_FD_FETCH_LAST                         =&gt; 0x00000004
, SQL_FD_FETCH_PRIOR                        =&gt; 0x00000008
, SQL_FD_FETCH_ABSOLUTE                     =&gt; 0x00000010
, SQL_FD_FETCH_RELATIVE                     =&gt; 0x00000020
, SQL_FD_FETCH_RESUME                       =&gt; 0x00000040
, SQL_FD_FETCH_BOOKMARK                     =&gt; 0x00000080
};
$ReturnValues{SQL_FILE_USAGE} =
{
  SQL_FILE_NOT_SUPPORTED                    =&gt; 0x0000
, SQL_FILE_TABLE                            =&gt; 0x0001
, SQL_FILE_QUALIFIER                        =&gt; 0x0002
, SQL_FILE_CATALOG                          =&gt; 0x0002  # SQL_FILE_QUALIFIER
};
$ReturnValues{SQL_GETDATA_EXTENSIONS} =
{
  SQL_GD_ANY_COLUMN                         =&gt; 0x00000001
, SQL_GD_ANY_ORDER                          =&gt; 0x00000002
, SQL_GD_BLOCK                              =&gt; 0x00000004
, SQL_GD_BOUND                              =&gt; 0x00000008
};
$ReturnValues{SQL_GROUP_BY} =
{
  SQL_GB_NOT_SUPPORTED                      =&gt; 0x0000
, SQL_GB_GROUP_BY_EQUALS_SELECT             =&gt; 0x0001
, SQL_GB_GROUP_BY_CONTAINS_SELECT           =&gt; 0x0002
, SQL_GB_NO_RELATION                        =&gt; 0x0003
, SQL_GB_COLLATE                            =&gt; 0x0004
};
$ReturnValues{SQL_IDENTIFIER_CASE} =
{
  SQL_IC_UPPER                              =&gt; 1
, SQL_IC_LOWER                              =&gt; 2
, SQL_IC_SENSITIVE                          =&gt; 3
, SQL_IC_MIXED                              =&gt; 4
};
$ReturnValues{SQL_INDEX_KEYWORDS} =
{
  SQL_IK_NONE                               =&gt; 0x00000000
, SQL_IK_ASC                                =&gt; 0x00000001
, SQL_IK_DESC                               =&gt; 0x00000002
# SQL_IK_ALL                                =&gt;
};
$ReturnValues{SQL_INFO_SCHEMA_VIEWS} =
{
  SQL_ISV_ASSERTIONS                        =&gt; 0x00000001
, SQL_ISV_CHARACTER_SETS                    =&gt; 0x00000002
, SQL_ISV_CHECK_CONSTRAINTS                 =&gt; 0x00000004
, SQL_ISV_COLLATIONS                        =&gt; 0x00000008
, SQL_ISV_COLUMN_DOMAIN_USAGE               =&gt; 0x00000010
, SQL_ISV_COLUMN_PRIVILEGES                 =&gt; 0x00000020
, SQL_ISV_COLUMNS                           =&gt; 0x00000040
, SQL_ISV_CONSTRAINT_COLUMN_USAGE           =&gt; 0x00000080
, SQL_ISV_CONSTRAINT_TABLE_USAGE            =&gt; 0x00000100
, SQL_ISV_DOMAIN_CONSTRAINTS                =&gt; 0x00000200
, SQL_ISV_DOMAINS                           =&gt; 0x00000400
, SQL_ISV_KEY_COLUMN_USAGE                  =&gt; 0x00000800
, SQL_ISV_REFERENTIAL_CONSTRAINTS           =&gt; 0x00001000
, SQL_ISV_SCHEMATA                          =&gt; 0x00002000
, SQL_ISV_SQL_LANGUAGES                     =&gt; 0x00004000
, SQL_ISV_TABLE_CONSTRAINTS                 =&gt; 0x00008000
, SQL_ISV_TABLE_PRIVILEGES                  =&gt; 0x00010000
, SQL_ISV_TABLES                            =&gt; 0x00020000
, SQL_ISV_TRANSLATIONS                      =&gt; 0x00040000
, SQL_ISV_USAGE_PRIVILEGES                  =&gt; 0x00080000
, SQL_ISV_VIEW_COLUMN_USAGE                 =&gt; 0x00100000
, SQL_ISV_VIEW_TABLE_USAGE                  =&gt; 0x00200000
, SQL_ISV_VIEWS                             =&gt; 0x00400000
};
$ReturnValues{SQL_INSERT_STATEMENT} =
{
  SQL_IS_INSERT_LITERALS                    =&gt; 0x00000001
, SQL_IS_INSERT_SEARCHED                    =&gt; 0x00000002
, SQL_IS_SELECT_INTO                        =&gt; 0x00000004
};
$ReturnValues{SQL_LOCK_TYPES} =
{
  SQL_LCK_NO_CHANGE                         =&gt; 0x00000001
, SQL_LCK_EXCLUSIVE                         =&gt; 0x00000002
, SQL_LCK_UNLOCK                            =&gt; 0x00000004
};
$ReturnValues{SQL_NON_NULLABLE_COLUMNS} =
{
  SQL_NNC_NULL                              =&gt; 0x0000
, SQL_NNC_NON_NULL                          =&gt; 0x0001
};
$ReturnValues{SQL_NULL_COLLATION} =
{
  SQL_NC_HIGH                               =&gt; 0
, SQL_NC_LOW                                =&gt; 1
, SQL_NC_START                              =&gt; 0x0002
, SQL_NC_END                                =&gt; 0x0004
};
$ReturnValues{SQL_NUMERIC_FUNCTIONS} =
{
  SQL_FN_NUM_ABS                            =&gt; 0x00000001
, SQL_FN_NUM_ACOS                           =&gt; 0x00000002
, SQL_FN_NUM_ASIN                           =&gt; 0x00000004
, SQL_FN_NUM_ATAN                           =&gt; 0x00000008
, SQL_FN_NUM_ATAN2                          =&gt; 0x00000010
, SQL_FN_NUM_CEILING                        =&gt; 0x00000020
, SQL_FN_NUM_COS                            =&gt; 0x00000040
, SQL_FN_NUM_COT                            =&gt; 0x00000080
, SQL_FN_NUM_EXP                            =&gt; 0x00000100
, SQL_FN_NUM_FLOOR                          =&gt; 0x00000200
, SQL_FN_NUM_LOG                            =&gt; 0x00000400
, SQL_FN_NUM_MOD                            =&gt; 0x00000800
, SQL_FN_NUM_SIGN                           =&gt; 0x00001000
, SQL_FN_NUM_SIN                            =&gt; 0x00002000
, SQL_FN_NUM_SQRT                           =&gt; 0x00004000
, SQL_FN_NUM_TAN                            =&gt; 0x00008000
, SQL_FN_NUM_PI                             =&gt; 0x00010000
, SQL_FN_NUM_RAND                           =&gt; 0x00020000
, SQL_FN_NUM_DEGREES                        =&gt; 0x00040000
, SQL_FN_NUM_LOG10                          =&gt; 0x00080000
, SQL_FN_NUM_POWER                          =&gt; 0x00100000
, SQL_FN_NUM_RADIANS                        =&gt; 0x00200000
, SQL_FN_NUM_ROUND                          =&gt; 0x00400000
, SQL_FN_NUM_TRUNCATE                       =&gt; 0x00800000
};
$ReturnValues{SQL_ODBC_API_CONFORMANCE} =
{
  SQL_OAC_NONE                              =&gt; 0x0000
, SQL_OAC_LEVEL1                            =&gt; 0x0001
, SQL_OAC_LEVEL2                            =&gt; 0x0002
};
$ReturnValues{SQL_ODBC_INTERFACE_CONFORMANCE} =
{
  SQL_OIC_CORE                              =&gt; 1
, SQL_OIC_LEVEL1                            =&gt; 2
, SQL_OIC_LEVEL2                            =&gt; 3
};
$ReturnValues{SQL_ODBC_SAG_CLI_CONFORMANCE} =
{
  SQL_OSCC_NOT_COMPLIANT                    =&gt; 0x0000
, SQL_OSCC_COMPLIANT                        =&gt; 0x0001
};
$ReturnValues{SQL_ODBC_SQL_CONFORMANCE} =
{
  SQL_OSC_MINIMUM                           =&gt; 0x0000
, SQL_OSC_CORE                              =&gt; 0x0001
, SQL_OSC_EXTENDED                          =&gt; 0x0002
};
$ReturnValues{SQL_OJ_CAPABILITIES} =
{
  SQL_OJ_LEFT                               =&gt; 0x00000001
, SQL_OJ_RIGHT                              =&gt; 0x00000002
, SQL_OJ_FULL                               =&gt; 0x00000004
, SQL_OJ_NESTED                             =&gt; 0x00000008
, SQL_OJ_NOT_ORDERED                        =&gt; 0x00000010
, SQL_OJ_INNER                              =&gt; 0x00000020
, SQL_OJ_ALL_COMPARISON_OPS                 =&gt; 0x00000040
};
$ReturnValues{SQL_OWNER_USAGE} =
{
  SQL_OU_DML_STATEMENTS                     =&gt; 0x00000001
, SQL_OU_PROCEDURE_INVOCATION               =&gt; 0x00000002
, SQL_OU_TABLE_DEFINITION                   =&gt; 0x00000004
, SQL_OU_INDEX_DEFINITION                   =&gt; 0x00000008
, SQL_OU_PRIVILEGE_DEFINITION               =&gt; 0x00000010
};
$ReturnValues{SQL_PARAM_ARRAY_ROW_COUNTS} =
{
  SQL_PARC_BATCH                            =&gt; 1
, SQL_PARC_NO_BATCH                         =&gt; 2
};
$ReturnValues{SQL_PARAM_ARRAY_SELECTS} =
{
  SQL_PAS_BATCH                             =&gt; 1
, SQL_PAS_NO_BATCH                          =&gt; 2
, SQL_PAS_NO_SELECT                         =&gt; 3
};
$ReturnValues{SQL_POSITIONED_STATEMENTS} =
{
  SQL_PS_POSITIONED_DELETE                  =&gt; 0x00000001
, SQL_PS_POSITIONED_UPDATE                  =&gt; 0x00000002
, SQL_PS_SELECT_FOR_UPDATE                  =&gt; 0x00000004
};
$ReturnValues{SQL_POS_OPERATIONS} =
{
  SQL_POS_POSITION                          =&gt; 0x00000001
, SQL_POS_REFRESH                           =&gt; 0x00000002
, SQL_POS_UPDATE                            =&gt; 0x00000004
, SQL_POS_DELETE                            =&gt; 0x00000008
, SQL_POS_ADD                               =&gt; 0x00000010
};
$ReturnValues{SQL_QUALIFIER_LOCATION} =
{
  SQL_QL_START                              =&gt; 0x0001
, SQL_QL_END                                =&gt; 0x0002
};
$ReturnValues{SQL_QUALIFIER_USAGE} =
{
  SQL_QU_DML_STATEMENTS                     =&gt; 0x00000001
, SQL_QU_PROCEDURE_INVOCATION               =&gt; 0x00000002
, SQL_QU_TABLE_DEFINITION                   =&gt; 0x00000004
, SQL_QU_INDEX_DEFINITION                   =&gt; 0x00000008
, SQL_QU_PRIVILEGE_DEFINITION               =&gt; 0x00000010
};
$ReturnValues{SQL_QUOTED_IDENTIFIER_CASE}   = $ReturnValues{SQL_IDENTIFIER_CASE};

$ReturnValues{SQL_SCHEMA_USAGE} =
{
  SQL_SU_DML_STATEMENTS                     =&gt; 0x00000001  # SQL_OU_DML_STATEMENTS
, SQL_SU_PROCEDURE_INVOCATION               =&gt; 0x00000002  # SQL_OU_PROCEDURE_INVOCATION
, SQL_SU_TABLE_DEFINITION                   =&gt; 0x00000004  # SQL_OU_TABLE_DEFINITION
, SQL_SU_INDEX_DEFINITION                   =&gt; 0x00000008  # SQL_OU_INDEX_DEFINITION
, SQL_SU_PRIVILEGE_DEFINITION               =&gt; 0x00000010  # SQL_OU_PRIVILEGE_DEFINITION
};
$ReturnValues{SQL_SCROLL_CONCURRENCY} =
{
  SQL_SCCO_READ_ONLY                        =&gt; 0x00000001
, SQL_SCCO_LOCK                             =&gt; 0x00000002
, SQL_SCCO_OPT_ROWVER                       =&gt; 0x00000004
, SQL_SCCO_OPT_VALUES                       =&gt; 0x00000008
};
$ReturnValues{SQL_SCROLL_OPTIONS} =
{
  SQL_SO_FORWARD_ONLY                       =&gt; 0x00000001
, SQL_SO_KEYSET_DRIVEN                      =&gt; 0x00000002
, SQL_SO_DYNAMIC                            =&gt; 0x00000004
, SQL_SO_MIXED                              =&gt; 0x00000008
, SQL_SO_STATIC                             =&gt; 0x00000010
};
$ReturnValues{SQL_SQL92_DATETIME_FUNCTIONS} =
{
  SQL_SDF_CURRENT_DATE                      =&gt; 0x00000001
, SQL_SDF_CURRENT_TIME                      =&gt; 0x00000002
, SQL_SDF_CURRENT_TIMESTAMP                 =&gt; 0x00000004
};
$ReturnValues{SQL_SQL92_FOREIGN_KEY_DELETE_RULE} =
{
  SQL_SFKD_CASCADE                          =&gt; 0x00000001
, SQL_SFKD_NO_ACTION                        =&gt; 0x00000002
, SQL_SFKD_SET_DEFAULT                      =&gt; 0x00000004
, SQL_SFKD_SET_NULL                         =&gt; 0x00000008
};
$ReturnValues{SQL_SQL92_FOREIGN_KEY_UPDATE_RULE} =
{
  SQL_SFKU_CASCADE                          =&gt; 0x00000001
, SQL_SFKU_NO_ACTION                        =&gt; 0x00000002
, SQL_SFKU_SET_DEFAULT                      =&gt; 0x00000004
, SQL_SFKU_SET_NULL                         =&gt; 0x00000008
};
$ReturnValues{SQL_SQL92_GRANT} =
{
  SQL_SG_USAGE_ON_DOMAIN                    =&gt; 0x00000001
, SQL_SG_USAGE_ON_CHARACTER_SET             =&gt; 0x00000002
, SQL_SG_USAGE_ON_COLLATION                 =&gt; 0x00000004
, SQL_SG_USAGE_ON_TRANSLATION               =&gt; 0x00000008
, SQL_SG_WITH_GRANT_OPTION                  =&gt; 0x00000010
, SQL_SG_DELETE_TABLE                       =&gt; 0x00000020
, SQL_SG_INSERT_TABLE                       =&gt; 0x00000040
, SQL_SG_INSERT_COLUMN                      =&gt; 0x00000080
, SQL_SG_REFERENCES_TABLE                   =&gt; 0x00000100
, SQL_SG_REFERENCES_COLUMN                  =&gt; 0x00000200
, SQL_SG_SELECT_TABLE                       =&gt; 0x00000400
, SQL_SG_UPDATE_TABLE                       =&gt; 0x00000800
, SQL_SG_UPDATE_COLUMN                      =&gt; 0x00001000
};
$ReturnValues{SQL_SQL92_NUMERIC_VALUE_FUNCTIONS} =
{
  SQL_SNVF_BIT_LENGTH                       =&gt; 0x00000001
, SQL_SNVF_CHAR_LENGTH                      =&gt; 0x00000002
, SQL_SNVF_CHARACTER_LENGTH                 =&gt; 0x00000004
, SQL_SNVF_EXTRACT                          =&gt; 0x00000008
, SQL_SNVF_OCTET_LENGTH                     =&gt; 0x00000010
, SQL_SNVF_POSITION                         =&gt; 0x00000020
};
$ReturnValues{SQL_SQL92_PREDICATES} =
{
  SQL_SP_EXISTS                             =&gt; 0x00000001
, SQL_SP_ISNOTNULL                          =&gt; 0x00000002
, SQL_SP_ISNULL                             =&gt; 0x00000004
, SQL_SP_MATCH_FULL                         =&gt; 0x00000008
, SQL_SP_MATCH_PARTIAL                      =&gt; 0x00000010
, SQL_SP_MATCH_UNIQUE_FULL                  =&gt; 0x00000020
, SQL_SP_MATCH_UNIQUE_PARTIAL               =&gt; 0x00000040
, SQL_SP_OVERLAPS                           =&gt; 0x00000080
, SQL_SP_UNIQUE                             =&gt; 0x00000100
, SQL_SP_LIKE                               =&gt; 0x00000200
, SQL_SP_IN                                 =&gt; 0x00000400
, SQL_SP_BETWEEN                            =&gt; 0x00000800
, SQL_SP_COMPARISON                         =&gt; 0x00001000
, SQL_SP_QUANTIFIED_COMPARISON              =&gt; 0x00002000
};
$ReturnValues{SQL_SQL92_RELATIONAL_JOIN_OPERATORS} =
{
  SQL_SRJO_CORRESPONDING_CLAUSE             =&gt; 0x00000001
, SQL_SRJO_CROSS_JOIN                       =&gt; 0x00000002
, SQL_SRJO_EXCEPT_JOIN                      =&gt; 0x00000004
, SQL_SRJO_FULL_OUTER_JOIN                  =&gt; 0x00000008
, SQL_SRJO_INNER_JOIN                       =&gt; 0x00000010
, SQL_SRJO_INTERSECT_JOIN                   =&gt; 0x00000020
, SQL_SRJO_LEFT_OUTER_JOIN                  =&gt; 0x00000040
, SQL_SRJO_NATURAL_JOIN                     =&gt; 0x00000080
, SQL_SRJO_RIGHT_OUTER_JOIN                 =&gt; 0x00000100
, SQL_SRJO_UNION_JOIN                       =&gt; 0x00000200
};
$ReturnValues{SQL_SQL92_REVOKE} =
{
  SQL_SR_USAGE_ON_DOMAIN                    =&gt; 0x00000001
, SQL_SR_USAGE_ON_CHARACTER_SET             =&gt; 0x00000002
, SQL_SR_USAGE_ON_COLLATION                 =&gt; 0x00000004
, SQL_SR_USAGE_ON_TRANSLATION               =&gt; 0x00000008
, SQL_SR_GRANT_OPTION_FOR                   =&gt; 0x00000010
, SQL_SR_CASCADE                            =&gt; 0x00000020
, SQL_SR_RESTRICT                           =&gt; 0x00000040
, SQL_SR_DELETE_TABLE                       =&gt; 0x00000080
, SQL_SR_INSERT_TABLE                       =&gt; 0x00000100
, SQL_SR_INSERT_COLUMN                      =&gt; 0x00000200
, SQL_SR_REFERENCES_TABLE                   =&gt; 0x00000400
, SQL_SR_REFERENCES_COLUMN                  =&gt; 0x00000800
, SQL_SR_SELECT_TABLE                       =&gt; 0x00001000
, SQL_SR_UPDATE_TABLE                       =&gt; 0x00002000
, SQL_SR_UPDATE_COLUMN                      =&gt; 0x00004000
};
$ReturnValues{SQL_SQL92_ROW_VALUE_CONSTRUCTOR} =
{
  SQL_SRVC_VALUE_EXPRESSION                 =&gt; 0x00000001
, SQL_SRVC_NULL                             =&gt; 0x00000002
, SQL_SRVC_DEFAULT                          =&gt; 0x00000004
, SQL_SRVC_ROW_SUBQUERY                     =&gt; 0x00000008
};
$ReturnValues{SQL_SQL92_STRING_FUNCTIONS} =
{
  SQL_SSF_CONVERT                           =&gt; 0x00000001
, SQL_SSF_LOWER                             =&gt; 0x00000002
, SQL_SSF_UPPER                             =&gt; 0x00000004
, SQL_SSF_SUBSTRING                         =&gt; 0x00000008
, SQL_SSF_TRANSLATE                         =&gt; 0x00000010
, SQL_SSF_TRIM_BOTH                         =&gt; 0x00000020
, SQL_SSF_TRIM_LEADING                      =&gt; 0x00000040
, SQL_SSF_TRIM_TRAILING                     =&gt; 0x00000080
};
$ReturnValues{SQL_SQL92_VALUE_EXPRESSIONS} =
{
  SQL_SVE_CASE                              =&gt; 0x00000001
, SQL_SVE_CAST                              =&gt; 0x00000002
, SQL_SVE_COALESCE                          =&gt; 0x00000004
, SQL_SVE_NULLIF                            =&gt; 0x00000008
};
$ReturnValues{SQL_SQL_CONFORMANCE} =
{
  SQL_SC_SQL92_ENTRY                        =&gt; 0x00000001
, SQL_SC_FIPS127_2_TRANSITIONAL             =&gt; 0x00000002
, SQL_SC_SQL92_INTERMEDIATE                 =&gt; 0x00000004
, SQL_SC_SQL92_FULL                         =&gt; 0x00000008
};
$ReturnValues{SQL_STANDARD_CLI_CONFORMANCE} =
{
  SQL_SCC_XOPEN_CLI_VERSION1                =&gt; 0x00000001
, SQL_SCC_ISO92_CLI                         =&gt; 0x00000002
};
$ReturnValues{SQL_STATIC_SENSITIVITY} =
{
  SQL_SS_ADDITIONS                          =&gt; 0x00000001
, SQL_SS_DELETIONS                          =&gt; 0x00000002
, SQL_SS_UPDATES                            =&gt; 0x00000004
};
$ReturnValues{SQL_STRING_FUNCTIONS} =
{
  SQL_FN_STR_CONCAT                         =&gt; 0x00000001
, SQL_FN_STR_INSERT                         =&gt; 0x00000002
, SQL_FN_STR_LEFT                           =&gt; 0x00000004
, SQL_FN_STR_LTRIM                          =&gt; 0x00000008
, SQL_FN_STR_LENGTH                         =&gt; 0x00000010
, SQL_FN_STR_LOCATE                         =&gt; 0x00000020
, SQL_FN_STR_LCASE                          =&gt; 0x00000040
, SQL_FN_STR_REPEAT                         =&gt; 0x00000080
, SQL_FN_STR_REPLACE                        =&gt; 0x00000100
, SQL_FN_STR_RIGHT                          =&gt; 0x00000200
, SQL_FN_STR_RTRIM                          =&gt; 0x00000400
, SQL_FN_STR_SUBSTRING                      =&gt; 0x00000800
, SQL_FN_STR_UCASE                          =&gt; 0x00001000
, SQL_FN_STR_ASCII                          =&gt; 0x00002000
, SQL_FN_STR_CHAR                           =&gt; 0x00004000
, SQL_FN_STR_DIFFERENCE                     =&gt; 0x00008000
, SQL_FN_STR_LOCATE_2                       =&gt; 0x00010000
, SQL_FN_STR_SOUNDEX                        =&gt; 0x00020000
, SQL_FN_STR_SPACE                          =&gt; 0x00040000
, SQL_FN_STR_BIT_LENGTH                     =&gt; 0x00080000
, SQL_FN_STR_CHAR_LENGTH                    =&gt; 0x00100000
, SQL_FN_STR_CHARACTER_LENGTH               =&gt; 0x00200000
, SQL_FN_STR_OCTET_LENGTH                   =&gt; 0x00400000
, SQL_FN_STR_POSITION                       =&gt; 0x00800000
};
$ReturnValues{SQL_SUBQUERIES} =
{
  SQL_SQ_COMPARISON                         =&gt; 0x00000001
, SQL_SQ_EXISTS                             =&gt; 0x00000002
, SQL_SQ_IN                                 =&gt; 0x00000004
, SQL_SQ_QUANTIFIED                         =&gt; 0x00000008
, SQL_SQ_CORRELATED_SUBQUERIES              =&gt; 0x00000010
};
$ReturnValues{SQL_SYSTEM_FUNCTIONS} =
{
  SQL_FN_SYS_USERNAME                       =&gt; 0x00000001
, SQL_FN_SYS_DBNAME                         =&gt; 0x00000002
, SQL_FN_SYS_IFNULL                         =&gt; 0x00000004
};
$ReturnValues{SQL_TIMEDATE_ADD_INTERVALS} =
{
  SQL_FN_TSI_FRAC_SECOND                    =&gt; 0x00000001
, SQL_FN_TSI_SECOND                         =&gt; 0x00000002
, SQL_FN_TSI_MINUTE                         =&gt; 0x00000004
, SQL_FN_TSI_HOUR                           =&gt; 0x00000008
, SQL_FN_TSI_DAY                            =&gt; 0x00000010
, SQL_FN_TSI_WEEK                           =&gt; 0x00000020
, SQL_FN_TSI_MONTH                          =&gt; 0x00000040
, SQL_FN_TSI_QUARTER                        =&gt; 0x00000080
, SQL_FN_TSI_YEAR                           =&gt; 0x00000100
};
$ReturnValues{SQL_TIMEDATE_FUNCTIONS} =
{
  SQL_FN_TD_NOW                             =&gt; 0x00000001
, SQL_FN_TD_CURDATE                         =&gt; 0x00000002
, SQL_FN_TD_DAYOFMONTH                      =&gt; 0x00000004
, SQL_FN_TD_DAYOFWEEK                       =&gt; 0x00000008
, SQL_FN_TD_DAYOFYEAR                       =&gt; 0x00000010
, SQL_FN_TD_MONTH                           =&gt; 0x00000020
, SQL_FN_TD_QUARTER                         =&gt; 0x00000040
, SQL_FN_TD_WEEK                            =&gt; 0x00000080
, SQL_FN_TD_YEAR                            =&gt; 0x00000100
, SQL_FN_TD_CURTIME                         =&gt; 0x00000200
, SQL_FN_TD_HOUR                            =&gt; 0x00000400
, SQL_FN_TD_MINUTE                          =&gt; 0x00000800
, SQL_FN_TD_SECOND                          =&gt; 0x00001000
, SQL_FN_TD_TIMESTAMPADD                    =&gt; 0x00002000
, SQL_FN_TD_TIMESTAMPDIFF                   =&gt; 0x00004000
, SQL_FN_TD_DAYNAME                         =&gt; 0x00008000
, SQL_FN_TD_MONTHNAME                       =&gt; 0x00010000
, SQL_FN_TD_CURRENT_DATE                    =&gt; 0x00020000
, SQL_FN_TD_CURRENT_TIME                    =&gt; 0x00040000
, SQL_FN_TD_CURRENT_TIMESTAMP               =&gt; 0x00080000
, SQL_FN_TD_EXTRACT                         =&gt; 0x00100000
};
$ReturnValues{SQL_TXN_CAPABLE} =
{
  SQL_TC_NONE                               =&gt; 0
, SQL_TC_DML                                =&gt; 1
, SQL_TC_ALL                                =&gt; 2
, SQL_TC_DDL_COMMIT                         =&gt; 3
, SQL_TC_DDL_IGNORE                         =&gt; 4
};
$ReturnValues{SQL_TRANSACTION_ISOLATION_OPTION} =
{
  SQL_TRANSACTION_READ_UNCOMMITTED          =&gt; 0x00000001  # SQL_TXN_READ_UNCOMMITTED
, SQL_TRANSACTION_READ_COMMITTED            =&gt; 0x00000002  # SQL_TXN_READ_COMMITTED
, SQL_TRANSACTION_REPEATABLE_READ           =&gt; 0x00000004  # SQL_TXN_REPEATABLE_READ
, SQL_TRANSACTION_SERIALIZABLE              =&gt; 0x00000008  # SQL_TXN_SERIALIZABLE
};
$ReturnValues{SQL_DEFAULT_TRANSACTION_ISOLATION} = $ReturnValues{SQL_TRANSACTION_ISOLATION_OPTION};

$ReturnValues{SQL_TXN_ISOLATION_OPTION} =
{
  SQL_TXN_READ_UNCOMMITTED                  =&gt; 0x00000001
, SQL_TXN_READ_COMMITTED                    =&gt; 0x00000002
, SQL_TXN_REPEATABLE_READ                   =&gt; 0x00000004
, SQL_TXN_SERIALIZABLE                      =&gt; 0x00000008
};
$ReturnValues{SQL_DEFAULT_TXN_ISOLATION} = $ReturnValues{SQL_TXN_ISOLATION_OPTION};

$ReturnValues{SQL_TXN_VERSIONING} =
{
  SQL_TXN_VERSIONING                        =&gt; 0x00000010
};
$ReturnValues{SQL_UNION} =
{
  SQL_U_UNION                               =&gt; 0x00000001
, SQL_U_UNION_ALL                           =&gt; 0x00000002
};
$ReturnValues{SQL_UNION_STATEMENT} =
{
  SQL_US_UNION                              =&gt; 0x00000001  # SQL_U_UNION
, SQL_US_UNION_ALL                          =&gt; 0x00000002  # SQL_U_UNION_ALL
};

1;

=head1 TODO

  Corrections?
  SQL_NULL_COLLATION: ODBC vs ANSI
  Unique values for $ReturnValues{...}?, e.g. SQL_FILE_USAGE

=cut
</pre></body></html>