ibm_db 3.0.3 → 5.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGES +10 -0
- data/LICENSE +1 -1
- data/ParameterizedQueries README +6 -6
- data/README +38 -55
- data/ext/Makefile +266 -0
- data/ext/extconf.rb +34 -3
- data/ext/gil_release_version +3 -0
- data/ext/ibm_db.c +106 -111
- data/ext/ibm_db.o +0 -0
- data/ext/ibm_db.so +0 -0
- data/ext/mkmf.log +103 -0
- data/ext/ruby_ibm_db_cli.o +0 -0
- data/ext/unicode_support_version +3 -0
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +937 -562
- data/lib/active_record/connection_adapters/ibmdb_adapter.rb +4 -1
- data/lib/clidriver.tar.gz +0 -0
- data/lib/clidriver/bin/db2cli +0 -0
- data/lib/clidriver/bin/db2diag +0 -0
- data/lib/clidriver/bin/db2drdat +0 -0
- data/lib/clidriver/bin/db2dsdcfgfill +0 -0
- data/lib/clidriver/bin/db2ldcfg +0 -0
- data/lib/clidriver/bin/db2lddrg +0 -0
- data/lib/clidriver/bin/db2level +0 -0
- data/lib/clidriver/bin/db2support +0 -0
- data/lib/clidriver/bin/db2trc +0 -0
- data/lib/clidriver/bnd/db2ajgrt.bnd +0 -0
- data/lib/clidriver/bnd/db2cli.bnd +0 -0
- data/lib/clidriver/bnd/db2cli.lst +4 -0
- data/lib/clidriver/bnd/db2clipk.bnd +0 -0
- data/lib/clidriver/bnd/db2clist.bnd +0 -0
- data/lib/clidriver/bnd/db2spcdb.bnd +0 -0
- data/lib/clidriver/cfg/DigiCertGlobalRootCA.arm +22 -0
- data/lib/clidriver/cfg/db2cli.ini.sample +16 -0
- data/lib/clidriver/cfg/db2dsdriver.cfg.sample +50 -0
- data/lib/clidriver/cfg/db2dsdriver.xsd +216 -0
- data/lib/clidriver/cfgcache/conlic.bin +0 -0
- data/lib/clidriver/conv/alt/04370923.cnv +0 -0
- data/lib/clidriver/conv/alt/08500923.cnv +0 -0
- data/lib/clidriver/conv/alt/08501252.cnv +0 -0
- data/lib/clidriver/conv/alt/08600923.cnv +0 -0
- data/lib/clidriver/conv/alt/08630923.cnv +0 -0
- data/lib/clidriver/conv/alt/09230437.cnv +0 -0
- data/lib/clidriver/conv/alt/09230850.cnv +0 -0
- data/lib/clidriver/conv/alt/09230860.cnv +0 -0
- data/lib/clidriver/conv/alt/09231043.cnv +0 -0
- data/lib/clidriver/conv/alt/09231051.cnv +0 -0
- data/lib/clidriver/conv/alt/09231114.cnv +0 -0
- data/lib/clidriver/conv/alt/09231208.cnv +0 -0
- data/lib/clidriver/conv/alt/09231252.cnv +0 -0
- data/lib/clidriver/conv/alt/09231275.cnv +0 -0
- data/lib/clidriver/conv/alt/09241252.cnv +0 -0
- data/lib/clidriver/conv/alt/09370950.cnv +0 -0
- data/lib/clidriver/conv/alt/10430923.cnv +0 -0
- data/lib/clidriver/conv/alt/10510923.cnv +0 -0
- data/lib/clidriver/conv/alt/11140923.cnv +0 -0
- data/lib/clidriver/conv/alt/12080923.cnv +0 -0
- data/lib/clidriver/conv/alt/12520850.cnv +0 -0
- data/lib/clidriver/conv/alt/12520923.cnv +0 -0
- data/lib/clidriver/conv/alt/12750923.cnv +0 -0
- data/lib/clidriver/conv/alt/1388ucs2.cnv +0 -0
- data/lib/clidriver/conv/alt/IBM00850.ucs +0 -0
- data/lib/clidriver/conv/alt/IBM00923.ucs +0 -0
- data/lib/clidriver/conv/alt/IBM01252.ucs +0 -0
- data/lib/clidriver/conv/ms/0930ucs2.cnv +0 -0
- data/lib/clidriver/conv/ms/0939ucs2.cnv +0 -0
- data/lib/clidriver/conv/ms/0943ucs2.cnv +0 -0
- data/lib/clidriver/conv/ms/0954ucs2.cnv +0 -0
- data/lib/clidriver/conv/ms/1390ucs2.cnv +0 -0
- data/lib/clidriver/conv/ms/1399ucs2.cnv +0 -0
- data/lib/clidriver/conv/ms/5039ucs2.cnv +0 -0
- data/lib/clidriver/conv/ms/ucs20943.cnv +0 -0
- data/lib/clidriver/include/sql.h +3149 -0
- data/lib/clidriver/include/sqlca.h +119 -0
- data/lib/clidriver/include/sqlcli.h +1042 -0
- data/lib/clidriver/include/sqlcli1.h +1963 -0
- data/lib/clidriver/include/sqlda.h +303 -0
- data/lib/clidriver/include/sqlenv.h +7389 -0
- data/lib/clidriver/include/sqlext.h +2189 -0
- data/lib/clidriver/include/sqlstate.h +1397 -0
- data/lib/clidriver/include/sqlsystm.h +119 -0
- data/lib/clidriver/include/sqltypes.h +22 -0
- data/lib/clidriver/include/sqlucode.h +22 -0
- data/lib/clidriver/include/sqlunx.h +24 -0
- data/lib/clidriver/lib/icc/C/icc/icclib/ICCSIG.txt +23 -0
- data/lib/clidriver/lib/icc/C/icc/icclib/libicclib084.so +0 -0
- data/lib/clidriver/lib/icc/N/icc/icclib/ICCSIG.txt +23 -0
- data/lib/clidriver/lib/icc/N/icc/icclib/libicclib085.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8cms_64.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8dbfl_64.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8iccs_64.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8kicc_64.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8km_64.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8ssl_64.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8sys_64.so +0 -0
- data/lib/clidriver/lib/icc/libgsk8valn_64.so +0 -0
- data/lib/clidriver/lib/libDB2xml4c.so +1 -0
- data/lib/clidriver/lib/libDB2xml4c.so.58 +1 -0
- data/lib/clidriver/lib/libDB2xml4c.so.58.0 +0 -0
- data/lib/clidriver/lib/libdb2.so +1 -0
- data/lib/clidriver/lib/libdb2.so.1 +0 -0
- data/lib/clidriver/lib/libdb2clixml4c.so +1 -0
- data/lib/clidriver/lib/libdb2clixml4c.so.1 +0 -0
- data/lib/clidriver/license/UNIX/odbc_LI_cs +278 -0
- data/lib/clidriver/license/UNIX/odbc_LI_de +364 -0
- data/lib/clidriver/license/UNIX/odbc_LI_el +294 -0
- data/lib/clidriver/license/UNIX/odbc_LI_en +752 -0
- data/lib/clidriver/license/UNIX/odbc_LI_es +338 -0
- data/lib/clidriver/license/UNIX/odbc_LI_fr +396 -0
- data/lib/clidriver/license/UNIX/odbc_LI_in +270 -0
- data/lib/clidriver/license/UNIX/odbc_LI_it +316 -0
- data/lib/clidriver/license/UNIX/odbc_LI_ja +246 -0
- data/lib/clidriver/license/UNIX/odbc_LI_ko +240 -0
- data/lib/clidriver/license/UNIX/odbc_LI_lt +302 -0
- data/lib/clidriver/license/UNIX/odbc_LI_pl +292 -0
- data/lib/clidriver/license/UNIX/odbc_LI_pt +314 -0
- data/lib/clidriver/license/UNIX/odbc_LI_ru +296 -0
- data/lib/clidriver/license/UNIX/odbc_LI_sl +278 -0
- data/lib/clidriver/license/UNIX/odbc_LI_tr +296 -0
- data/lib/clidriver/license/UNIX/odbc_LI_zh +310 -0
- data/lib/clidriver/license/UNIX/odbc_LI_zh_TW +310 -0
- data/lib/clidriver/license/odbc_REDIST.txt +128 -0
- data/lib/clidriver/license/odbc_notices.txt +444 -0
- data/lib/clidriver/msg/en_US.iso88591/db2adm.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2admh.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2caem.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2cklog.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2cli.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2clia1.lst +35 -0
- data/lib/clidriver/msg/en_US.iso88591/db2clias.lst +21 -0
- data/lib/clidriver/msg/en_US.iso88591/db2clih.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2clit.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2clp.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2clp2.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2diag.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2fodc.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2sql.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2sqlh.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2stt.mo +0 -0
- data/lib/clidriver/msg/en_US.iso88591/db2supp.mo +0 -0
- data/lib/clidriver/security64/plugin/IBM/client/IBMIAMauth.so +0 -0
- data/lib/clidriver/security64/plugin/IBM/client/IBMkrb5.so +0 -0
- data/test/active_record/connection_adapters/fake_adapter.rb +8 -5
- data/test/cases/adapter_test.rb +148 -58
- data/test/cases/adapters/mysql2/active_schema_test.rb +193 -0
- data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -0
- data/test/cases/adapters/mysql2/boolean_test.rb +100 -0
- data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -0
- data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -0
- data/test/cases/adapters/mysql2/connection_test.rb +210 -0
- data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -0
- data/test/cases/adapters/mysql2/enum_test.rb +26 -0
- data/test/cases/adapters/mysql2/explain_test.rb +21 -0
- data/test/cases/adapters/mysql2/json_test.rb +195 -0
- data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -0
- data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
- data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -0
- data/test/cases/adapters/mysql2/schema_test.rb +126 -0
- data/test/cases/adapters/mysql2/sp_test.rb +36 -0
- data/test/cases/adapters/mysql2/sql_types_test.rb +14 -0
- data/test/cases/adapters/mysql2/table_options_test.rb +42 -0
- data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -0
- data/test/cases/adapters/postgresql/active_schema_test.rb +98 -0
- data/test/cases/adapters/postgresql/array_test.rb +339 -0
- data/test/cases/adapters/postgresql/bit_string_test.rb +82 -0
- data/test/cases/adapters/postgresql/bytea_test.rb +134 -0
- data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -0
- data/test/cases/adapters/postgresql/change_schema_test.rb +38 -0
- data/test/cases/adapters/postgresql/cidr_test.rb +25 -0
- data/test/cases/adapters/postgresql/citext_test.rb +78 -0
- data/test/cases/adapters/postgresql/collation_test.rb +53 -0
- data/test/cases/adapters/postgresql/composite_test.rb +132 -0
- data/test/cases/adapters/postgresql/connection_test.rb +257 -0
- data/test/cases/adapters/postgresql/datatype_test.rb +92 -0
- data/test/cases/adapters/postgresql/domain_test.rb +47 -0
- data/test/cases/adapters/postgresql/enum_test.rb +91 -0
- data/test/cases/adapters/postgresql/explain_test.rb +20 -0
- data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -0
- data/test/cases/adapters/postgresql/full_text_test.rb +44 -0
- data/test/cases/adapters/postgresql/geometric_test.rb +378 -0
- data/test/cases/adapters/postgresql/hstore_test.rb +382 -0
- data/test/cases/adapters/postgresql/infinity_test.rb +69 -0
- data/test/cases/adapters/postgresql/integer_test.rb +25 -0
- data/test/cases/adapters/postgresql/json_test.rb +237 -0
- data/test/cases/adapters/postgresql/ltree_test.rb +53 -0
- data/test/cases/adapters/postgresql/money_test.rb +96 -0
- data/test/cases/adapters/postgresql/network_test.rb +94 -0
- data/test/cases/adapters/postgresql/numbers_test.rb +49 -0
- data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -0
- data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
- data/test/cases/adapters/postgresql/quoting_test.rb +44 -0
- data/test/cases/adapters/postgresql/range_test.rb +343 -0
- data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -0
- data/test/cases/adapters/postgresql/rename_table_test.rb +34 -0
- data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -0
- data/test/cases/adapters/postgresql/schema_test.rb +597 -0
- data/test/cases/adapters/postgresql/serial_test.rb +154 -0
- data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -0
- data/test/cases/adapters/postgresql/timestamp_test.rb +90 -0
- data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -0
- data/test/cases/adapters/postgresql/utils_test.rb +62 -0
- data/test/cases/adapters/postgresql/uuid_test.rb +294 -0
- data/test/cases/adapters/postgresql/xml_test.rb +54 -0
- data/test/cases/adapters/sqlite3/collation_test.rb +53 -0
- data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -0
- data/test/cases/adapters/sqlite3/explain_test.rb +21 -0
- data/test/cases/adapters/sqlite3/quoting_test.rb +101 -0
- data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -0
- data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
- data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -0
- data/test/cases/aggregations_test.rb +11 -1
- data/test/cases/ar_schema_test.rb +35 -50
- data/test/cases/associations/association_scope_test.rb +1 -6
- data/test/cases/associations/belongs_to_associations_test.rb +122 -10
- data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -0
- data/test/cases/associations/callbacks_test.rb +5 -7
- data/test/cases/associations/cascaded_eager_loading_test.rb +1 -1
- data/test/cases/associations/eager_load_nested_include_test.rb +1 -3
- data/test/cases/associations/eager_test.rb +176 -73
- data/test/cases/associations/extension_test.rb +7 -2
- data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +104 -32
- data/test/cases/associations/has_many_associations_test.rb +382 -43
- data/test/cases/associations/has_many_through_associations_test.rb +108 -41
- data/test/cases/associations/has_one_associations_test.rb +105 -8
- data/test/cases/associations/has_one_through_associations_test.rb +6 -3
- data/test/cases/associations/inner_join_association_test.rb +3 -3
- data/test/cases/associations/inverse_associations_test.rb +51 -11
- data/test/cases/associations/join_model_test.rb +59 -36
- data/test/cases/associations/left_outer_join_association_test.rb +88 -0
- data/test/cases/associations/nested_through_associations_test.rb +2 -2
- data/test/cases/associations/required_test.rb +25 -5
- data/test/cases/associations_test.rb +39 -34
- data/test/cases/attribute_decorators_test.rb +9 -8
- data/test/cases/attribute_methods/read_test.rb +5 -5
- data/test/cases/attribute_methods_test.rb +97 -40
- data/test/cases/attribute_set_test.rb +74 -4
- data/test/cases/attribute_test.rb +84 -18
- data/test/cases/attributes_test.rb +151 -34
- data/test/cases/autosave_association_test.rb +149 -36
- data/test/cases/base_test.rb +311 -236
- data/test/cases/batches_test.rb +299 -22
- data/test/cases/binary_test.rb +2 -10
- data/test/cases/bind_parameter_test.rb +76 -66
- data/test/cases/cache_key_test.rb +26 -0
- data/test/cases/calculations_test.rb +167 -15
- data/test/cases/callbacks_test.rb +161 -68
- data/test/cases/coders/json_test.rb +15 -0
- data/test/cases/collection_cache_key_test.rb +115 -0
- data/test/cases/column_definition_test.rb +26 -57
- data/test/cases/comment_test.rb +145 -0
- data/test/cases/connection_adapters/adapter_leasing_test.rb +5 -3
- data/test/cases/connection_adapters/connection_handler_test.rb +128 -21
- data/test/cases/connection_adapters/connection_specification_test.rb +1 -1
- data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +0 -38
- data/test/cases/connection_adapters/mysql_type_lookup_test.rb +5 -1
- data/test/cases/connection_adapters/schema_cache_test.rb +8 -3
- data/test/cases/connection_adapters/type_lookup_test.rb +15 -7
- data/test/cases/connection_management_test.rb +46 -56
- data/test/cases/connection_pool_test.rb +195 -20
- data/test/cases/connection_specification/resolver_test.rb +15 -0
- data/test/cases/counter_cache_test.rb +10 -5
- data/test/cases/custom_locking_test.rb +1 -1
- data/test/cases/database_statements_test.rb +18 -3
- data/test/cases/{invalid_date_test.rb → date_test.rb} +13 -1
- data/test/cases/date_time_precision_test.rb +107 -0
- data/test/cases/defaults_test.rb +85 -89
- data/test/cases/dirty_test.rb +32 -44
- data/test/cases/disconnected_test.rb +4 -2
- data/test/cases/enum_test.rb +178 -24
- data/test/cases/errors_test.rb +16 -0
- data/test/cases/explain_test.rb +32 -21
- data/test/cases/finder_test.rb +279 -151
- data/test/cases/fixture_set/file_test.rb +18 -0
- data/test/cases/fixtures_test.rb +123 -32
- data/test/cases/forbidden_attributes_protection_test.rb +69 -3
- data/test/cases/helper.rb +10 -16
- data/test/cases/hot_compatibility_test.rb +89 -1
- data/test/cases/inheritance_test.rb +284 -53
- data/test/cases/integration_test.rb +23 -7
- data/test/cases/invalid_connection_test.rb +4 -2
- data/test/cases/invertible_migration_test.rb +124 -32
- data/test/cases/json_serialization_test.rb +11 -2
- data/test/cases/locking_test.rb +22 -6
- data/test/cases/log_subscriber_test.rb +106 -17
- data/test/cases/migration/change_schema_test.rb +118 -132
- data/test/cases/migration/change_table_test.rb +34 -2
- data/test/cases/migration/column_attributes_test.rb +7 -23
- data/test/cases/migration/column_positioning_test.rb +8 -8
- data/test/cases/migration/columns_test.rb +17 -11
- data/test/cases/migration/command_recorder_test.rb +47 -2
- data/test/cases/migration/compatibility_test.rb +118 -0
- data/test/cases/migration/create_join_table_test.rb +21 -12
- data/test/cases/migration/foreign_key_test.rb +68 -66
- data/test/cases/migration/index_test.rb +14 -12
- data/test/cases/migration/logger_test.rb +1 -1
- data/test/cases/migration/pending_migrations_test.rb +0 -1
- data/test/cases/migration/references_foreign_key_test.rb +114 -107
- data/test/cases/migration/references_index_test.rb +4 -4
- data/test/cases/migration/references_statements_test.rb +26 -6
- data/test/cases/migration/rename_table_test.rb +25 -25
- data/test/cases/migration_test.rb +279 -81
- data/test/cases/migrator_test.rb +91 -8
- data/test/cases/mixin_test.rb +0 -2
- data/test/cases/modules_test.rb +3 -4
- data/test/cases/multiparameter_attributes_test.rb +24 -2
- data/test/cases/multiple_db_test.rb +18 -11
- data/test/cases/nested_attributes_test.rb +74 -33
- data/test/cases/persistence_test.rb +102 -10
- data/test/cases/pooled_connections_test.rb +3 -3
- data/test/cases/primary_keys_test.rb +170 -31
- data/test/cases/query_cache_test.rb +216 -96
- data/test/cases/quoting_test.rb +65 -19
- data/test/cases/readonly_test.rb +2 -1
- data/test/cases/reflection_test.rb +77 -22
- data/test/cases/relation/delegation_test.rb +3 -8
- data/test/cases/relation/merging_test.rb +10 -14
- data/test/cases/relation/mutation_test.rb +42 -24
- data/test/cases/relation/or_test.rb +92 -0
- data/test/cases/relation/predicate_builder_test.rb +4 -2
- data/test/cases/relation/record_fetch_warning_test.rb +40 -0
- data/test/cases/relation/where_chain_test.rb +23 -99
- data/test/cases/relation/where_clause_test.rb +182 -0
- data/test/cases/relation/where_test.rb +45 -23
- data/test/cases/relation_test.rb +89 -58
- data/test/cases/relations_test.rb +249 -38
- data/test/cases/result_test.rb +10 -0
- data/test/cases/sanitize_test.rb +108 -15
- data/test/cases/schema_dumper_test.rb +119 -125
- data/test/cases/schema_loading_test.rb +52 -0
- data/test/cases/scoping/default_scoping_test.rb +113 -39
- data/test/cases/scoping/named_scoping_test.rb +46 -9
- data/test/cases/scoping/relation_scoping_test.rb +47 -4
- data/test/cases/secure_token_test.rb +32 -0
- data/test/cases/serialization_test.rb +1 -1
- data/test/cases/serialized_attribute_test.rb +93 -6
- data/test/cases/statement_cache_test.rb +38 -0
- data/test/cases/store_test.rb +2 -1
- data/test/cases/suppressor_test.rb +63 -0
- data/test/cases/tasks/database_tasks_test.rb +74 -8
- data/test/cases/tasks/mysql_rake_test.rb +143 -109
- data/test/cases/tasks/postgresql_rake_test.rb +71 -12
- data/test/cases/tasks/sqlite_rake_test.rb +30 -3
- data/test/cases/test_case.rb +28 -20
- data/test/cases/test_fixtures_test.rb +36 -0
- data/test/cases/time_precision_test.rb +103 -0
- data/test/cases/timestamp_test.rb +47 -14
- data/test/cases/touch_later_test.rb +121 -0
- data/test/cases/transaction_callbacks_test.rb +128 -62
- data/test/cases/transaction_isolation_test.rb +2 -2
- data/test/cases/transactions_test.rb +61 -43
- data/test/cases/type/adapter_specific_registry_test.rb +133 -0
- data/test/cases/type/date_time_test.rb +14 -0
- data/test/cases/type/integer_test.rb +2 -96
- data/test/cases/type/string_test.rb +0 -14
- data/test/cases/type_test.rb +39 -0
- data/test/cases/types_test.rb +1 -118
- data/test/cases/unconnected_test.rb +1 -1
- data/test/cases/validations/absence_validation_test.rb +73 -0
- data/test/cases/validations/association_validation_test.rb +13 -2
- data/test/cases/validations/i18n_validation_test.rb +6 -10
- data/test/cases/validations/length_validation_test.rb +62 -30
- data/test/cases/validations/presence_validation_test.rb +36 -1
- data/test/cases/validations/uniqueness_validation_test.rb +150 -36
- data/test/cases/validations_repair_helper.rb +2 -6
- data/test/cases/validations_test.rb +36 -7
- data/test/cases/view_test.rb +108 -5
- data/test/cases/yaml_serialization_test.rb +36 -1
- data/test/config.example.yml +97 -0
- data/test/fixtures/bad_posts.yml +9 -0
- data/test/fixtures/books.yml +20 -0
- data/test/fixtures/content.yml +3 -0
- data/test/fixtures/content_positions.yml +3 -0
- data/test/fixtures/dead_parrots.yml +5 -0
- data/test/fixtures/live_parrots.yml +4 -0
- data/test/fixtures/naked/yml/parrots.yml +2 -0
- data/test/fixtures/naked/yml/trees.yml +3 -0
- data/test/fixtures/nodes.yml +29 -0
- data/test/fixtures/other_comments.yml +6 -0
- data/test/fixtures/other_dogs.yml +2 -0
- data/test/fixtures/other_posts.yml +7 -0
- data/test/fixtures/price_estimates.yml +10 -1
- data/test/fixtures/trees.yml +3 -0
- data/test/migrations/10_urban/9_add_expressions.rb +1 -1
- data/test/migrations/decimal/1_give_me_big_numbers.rb +1 -1
- data/test/migrations/magic/1_currencies_have_symbols.rb +1 -1
- data/test/migrations/missing/1000_people_have_middle_names.rb +2 -2
- data/test/migrations/missing/1_people_have_last_names.rb +2 -2
- data/test/migrations/missing/3_we_need_reminders.rb +2 -2
- data/test/migrations/missing/4_innocent_jointable.rb +2 -2
- data/test/migrations/rename/1_we_need_things.rb +2 -2
- data/test/migrations/rename/2_rename_things.rb +2 -2
- data/test/migrations/to_copy/1_people_have_hobbies.rb +1 -1
- data/test/migrations/to_copy/2_people_have_descriptions.rb +1 -1
- data/test/migrations/to_copy2/1_create_articles.rb +1 -1
- data/test/migrations/to_copy2/2_create_comments.rb +1 -1
- data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +1 -1
- data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +1 -1
- data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +1 -1
- data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +1 -1
- data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +1 -1
- data/test/migrations/valid/1_valid_people_have_last_names.rb +1 -1
- data/test/migrations/valid/2_we_need_reminders.rb +2 -2
- data/test/migrations/valid/3_innocent_jointable.rb +2 -2
- data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +1 -1
- data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +2 -2
- data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +2 -2
- data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +1 -1
- data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +1 -1
- data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +1 -1
- data/test/migrations/version_check/20131219224947_migration_version_check.rb +1 -1
- data/test/models/admin/randomly_named_c1.rb +6 -2
- data/test/models/aircraft.rb +1 -0
- data/test/models/author.rb +4 -7
- data/test/models/bird.rb +1 -1
- data/test/models/book.rb +5 -0
- data/test/models/bulb.rb +2 -1
- data/test/models/car.rb +3 -0
- data/test/models/cat.rb +10 -0
- data/test/models/chef.rb +5 -0
- data/test/models/club.rb +2 -0
- data/test/models/comment.rb +17 -5
- data/test/models/company.rb +7 -2
- data/test/models/company_in_module.rb +1 -1
- data/test/models/contact.rb +1 -1
- data/test/models/content.rb +40 -0
- data/test/models/customer.rb +8 -2
- data/test/models/developer.rb +22 -0
- data/test/models/face.rb +1 -1
- data/test/models/guitar.rb +4 -0
- data/test/models/hotel.rb +5 -0
- data/test/models/member.rb +1 -0
- data/test/models/member_detail.rb +4 -3
- data/test/models/mentor.rb +3 -0
- data/test/models/mocktail_designer.rb +2 -0
- data/test/models/node.rb +5 -0
- data/test/models/non_primary_key.rb +2 -0
- data/test/models/notification.rb +3 -0
- data/test/models/other_dog.rb +5 -0
- data/test/models/owner.rb +4 -1
- data/test/models/parrot.rb +6 -7
- data/test/models/person.rb +0 -1
- data/test/models/pet.rb +3 -0
- data/test/models/pet_treasure.rb +6 -0
- data/test/models/pirate.rb +3 -3
- data/test/models/post.rb +18 -9
- data/test/models/project.rb +11 -0
- data/test/models/randomly_named_c1.rb +1 -1
- data/test/models/recipe.rb +3 -0
- data/test/models/ship.rb +8 -2
- data/test/models/tag.rb +6 -0
- data/test/models/topic.rb +2 -8
- data/test/models/tree.rb +3 -0
- data/test/models/tuning_peg.rb +4 -0
- data/test/models/user.rb +14 -0
- data/test/models/uuid_item.rb +6 -0
- data/test/schema/mysql2_specific_schema.rb +33 -23
- data/test/schema/oracle_specific_schema.rb +1 -4
- data/test/schema/postgresql_specific_schema.rb +36 -124
- data/test/schema/schema.rb +183 -64
- data/test/schema/schema.rb.original +1057 -0
- data/test/schema/sqlite_specific_schema.rb +1 -5
- data/test/support/connection.rb +1 -0
- data/test/support/schema_dumping_helper.rb +1 -1
- data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
- data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
- metadata +271 -26
- data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +0 -26
- data/test/cases/attribute_methods/serialization_test.rb +0 -29
- data/test/cases/migration/change_schema_test - Copy.rb +0 -448
- data/test/cases/migration/foreign_key_test - Changed.rb +0 -325
- data/test/cases/migration/table_and_index_test.rb +0 -24
- data/test/cases/relation/where_test2.rb +0 -36
- data/test/cases/type/decimal_test.rb +0 -51
- data/test/cases/type/unsigned_integer_test.rb +0 -18
- data/test/cases/xml_serialization_test.rb +0 -457
- data/test/fixtures/naked/csv/accounts.csv +0 -1
- data/test/schema/mysql_specific_schema.rb +0 -70
@@ -0,0 +1,2189 @@
|
|
1
|
+
/*-----------------------------------------------------------------------------
|
2
|
+
// File: sqlext.h
|
3
|
+
//
|
4
|
+
// Copyright: Copyright (c) Microsoft Corporation
|
5
|
+
//
|
6
|
+
// Contents: This is the include for applications using the Microsoft SQL Extensions
|
7
|
+
//
|
8
|
+
// Comments:
|
9
|
+
//
|
10
|
+
//----------------------------------------------------------------------------- */
|
11
|
+
|
12
|
+
#ifndef __SQLEXT
|
13
|
+
#define __SQLEXT
|
14
|
+
|
15
|
+
#ifndef __SQL
|
16
|
+
#include "sql.h"
|
17
|
+
#endif
|
18
|
+
|
19
|
+
#ifdef __cplusplus
|
20
|
+
extern "C" { /* Assume C declarations for C++ */
|
21
|
+
#endif /* __cplusplus */
|
22
|
+
|
23
|
+
/* generally useful constants */
|
24
|
+
#define SQL_SPEC_MAJOR 3 /* Major version of specification */
|
25
|
+
#define SQL_SPEC_MINOR 80 /* Minor version of specification */
|
26
|
+
#define SQL_SPEC_STRING "03.80" /* String constant for version */
|
27
|
+
|
28
|
+
#define SQL_SQLSTATE_SIZE 5 /* size of SQLSTATE */
|
29
|
+
|
30
|
+
typedef SQLTCHAR SQLSTATE[SQL_SQLSTATE_SIZE+1];
|
31
|
+
|
32
|
+
#define SQL_MAX_DSN_LENGTH 32 /* maximum data source name size */
|
33
|
+
|
34
|
+
#define SQL_MAX_OPTION_STRING_LENGTH 256
|
35
|
+
|
36
|
+
/* return code SQL_NO_DATA_FOUND is the same as SQL_NO_DATA */
|
37
|
+
#if (ODBCVER < 0x0300)
|
38
|
+
#define SQL_NO_DATA_FOUND 100
|
39
|
+
#else
|
40
|
+
#define SQL_NO_DATA_FOUND SQL_NO_DATA
|
41
|
+
#endif
|
42
|
+
|
43
|
+
/* an end handle type */
|
44
|
+
#if (ODBCVER >= 0x0300)
|
45
|
+
#define SQL_HANDLE_SENV 5
|
46
|
+
#endif /* ODBCVER >= 0x0300 */
|
47
|
+
|
48
|
+
/* env attribute */
|
49
|
+
#if (ODBCVER >= 0x0300)
|
50
|
+
#define SQL_ATTR_ODBC_VERSION 200
|
51
|
+
#define SQL_ATTR_CONNECTION_POOLING 201
|
52
|
+
#define SQL_ATTR_CP_MATCH 202
|
53
|
+
#endif /* ODBCVER >= 0x0300 */
|
54
|
+
|
55
|
+
#if (ODBCVER >= 0x0300)
|
56
|
+
/* values for SQL_ATTR_CONNECTION_POOLING */
|
57
|
+
#define SQL_CP_OFF 0UL
|
58
|
+
#define SQL_CP_ONE_PER_DRIVER 1UL
|
59
|
+
#define SQL_CP_ONE_PER_HENV 2UL
|
60
|
+
#define SQL_CP_DEFAULT SQL_CP_OFF
|
61
|
+
|
62
|
+
/* values for SQL_ATTR_CP_MATCH */
|
63
|
+
#define SQL_CP_STRICT_MATCH 0UL
|
64
|
+
#define SQL_CP_RELAXED_MATCH 1UL
|
65
|
+
#define SQL_CP_MATCH_DEFAULT SQL_CP_STRICT_MATCH
|
66
|
+
|
67
|
+
/* values for SQL_ATTR_ODBC_VERSION */
|
68
|
+
#define SQL_OV_ODBC2 2UL
|
69
|
+
#define SQL_OV_ODBC3 3UL
|
70
|
+
#endif /* ODBCVER >= 0x0300 */
|
71
|
+
|
72
|
+
#if (ODBCVER >= 0x0380)
|
73
|
+
/* new values for SQL_ATTR_ODBC_VERSION
|
74
|
+
From ODBC 3.8 onwards, we should use <major version> * 100 + <minor version> */
|
75
|
+
#define SQL_OV_ODBC3_80 380UL
|
76
|
+
#endif /* ODBCVER >= 0x0380 */
|
77
|
+
|
78
|
+
/* connection attributes */
|
79
|
+
#define SQL_ACCESS_MODE 101
|
80
|
+
#define SQL_AUTOCOMMIT 102
|
81
|
+
#define SQL_LOGIN_TIMEOUT 103
|
82
|
+
#define SQL_OPT_TRACE 104
|
83
|
+
#define SQL_OPT_TRACEFILE 105
|
84
|
+
#define SQL_TRANSLATE_DLL 106
|
85
|
+
#define SQL_TRANSLATE_OPTION 107
|
86
|
+
#define SQL_TXN_ISOLATION 108
|
87
|
+
#define SQL_CURRENT_QUALIFIER 109
|
88
|
+
#define SQL_ODBC_CURSORS 110
|
89
|
+
#define SQL_QUIET_MODE 111
|
90
|
+
#define SQL_PACKET_SIZE 112
|
91
|
+
|
92
|
+
/* connection attributes with new names */
|
93
|
+
#if (ODBCVER >= 0x0300)
|
94
|
+
#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
|
95
|
+
#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
|
96
|
+
#define SQL_ATTR_CONNECTION_TIMEOUT 113
|
97
|
+
#define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER
|
98
|
+
#define SQL_ATTR_DISCONNECT_BEHAVIOR 114
|
99
|
+
#define SQL_ATTR_ENLIST_IN_DTC 1207
|
100
|
+
#define SQL_ATTR_ENLIST_IN_XA 1208
|
101
|
+
#define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT
|
102
|
+
#define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS
|
103
|
+
#define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE
|
104
|
+
#define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE
|
105
|
+
#define SQL_ATTR_TRACE SQL_OPT_TRACE
|
106
|
+
#define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE
|
107
|
+
#define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL
|
108
|
+
#define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION
|
109
|
+
#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
|
110
|
+
#endif /* ODBCVER >= 0x0300 */
|
111
|
+
|
112
|
+
#define SQL_ATTR_CONNECTION_DEAD 1209 /* GetConnectAttr only */
|
113
|
+
|
114
|
+
#if (ODBCVER >= 0x0351)
|
115
|
+
/* ODBC Driver Manager sets this connection attribute to a unicode driver
|
116
|
+
(which supports SQLConnectW) when the application is an ANSI application
|
117
|
+
(which calls SQLConnect, SQLDriverConnect, or SQLBrowseConnect).
|
118
|
+
This is SetConnectAttr only and application does not set this attribute
|
119
|
+
This attribute was introduced because some unicode driver's some APIs may
|
120
|
+
need to behave differently on ANSI or Unicode applications. A unicode
|
121
|
+
driver, which has same behavior for both ANSI or Unicode applications,
|
122
|
+
should return SQL_ERROR when the driver manager sets this connection
|
123
|
+
attribute. When a unicode driver returns SQL_SUCCESS on this attribute,
|
124
|
+
the driver manager treates ANSI and Unicode connections differently in
|
125
|
+
connection pooling.
|
126
|
+
*/
|
127
|
+
#define SQL_ATTR_ANSI_APP 115
|
128
|
+
#endif
|
129
|
+
|
130
|
+
#if (ODBCVER >= 0x0380)
|
131
|
+
#define SQL_ATTR_RESET_CONNECTION 116
|
132
|
+
#define SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE 117
|
133
|
+
#endif
|
134
|
+
|
135
|
+
|
136
|
+
/* SQL_CONNECT_OPT_DRVR_START is not meaningful for 3.0 driver */
|
137
|
+
#if (ODBCVER < 0x0300)
|
138
|
+
#define SQL_CONNECT_OPT_DRVR_START 1000
|
139
|
+
#endif /* ODBCVER < 0x0300 */
|
140
|
+
|
141
|
+
#if (ODBCVER < 0x0300)
|
142
|
+
#define SQL_CONN_OPT_MAX SQL_PACKET_SIZE
|
143
|
+
#define SQL_CONN_OPT_MIN SQL_ACCESS_MODE
|
144
|
+
#endif /* ODBCVER < 0x0300 */
|
145
|
+
|
146
|
+
/* SQL_ACCESS_MODE options */
|
147
|
+
#define SQL_MODE_READ_WRITE 0UL
|
148
|
+
#define SQL_MODE_READ_ONLY 1UL
|
149
|
+
#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
|
150
|
+
|
151
|
+
/* SQL_AUTOCOMMIT options */
|
152
|
+
#define SQL_AUTOCOMMIT_OFF 0UL
|
153
|
+
#define SQL_AUTOCOMMIT_ON 1UL
|
154
|
+
#define SQL_AUTOCOMMIT_DEFERRED 2UL
|
155
|
+
#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
|
156
|
+
|
157
|
+
/* SQL_LOGIN_TIMEOUT options */
|
158
|
+
#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
|
159
|
+
|
160
|
+
/* SQL_OPT_TRACE options */
|
161
|
+
#define SQL_OPT_TRACE_OFF 0UL
|
162
|
+
#define SQL_OPT_TRACE_ON 1UL
|
163
|
+
#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
|
164
|
+
#define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG"
|
165
|
+
|
166
|
+
/* SQL_ODBC_CURSORS options */
|
167
|
+
#define SQL_CUR_USE_IF_NEEDED 0UL
|
168
|
+
#define SQL_CUR_USE_ODBC 1UL
|
169
|
+
#define SQL_CUR_USE_DRIVER 2UL
|
170
|
+
#define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER
|
171
|
+
|
172
|
+
#if (ODBCVER >= 0x0300)
|
173
|
+
/* values for SQL_ATTR_DISCONNECT_BEHAVIOR */
|
174
|
+
#define SQL_DB_RETURN_TO_POOL 0UL
|
175
|
+
#define SQL_DB_DISCONNECT 1UL
|
176
|
+
#define SQL_DB_DEFAULT SQL_DB_RETURN_TO_POOL
|
177
|
+
|
178
|
+
/* values for SQL_ATTR_ENLIST_IN_DTC */
|
179
|
+
#define SQL_DTC_DONE 0L
|
180
|
+
#endif /* ODBCVER >= 0x0300 */
|
181
|
+
|
182
|
+
/* values for SQL_ATTR_CONNECTION_DEAD */
|
183
|
+
#define SQL_CD_TRUE 1L /* Connection is closed/dead */
|
184
|
+
#define SQL_CD_FALSE 0L /* Connection is open/available */
|
185
|
+
|
186
|
+
/* values for SQL_ATTR_ANSI_APP */
|
187
|
+
#if (ODBCVER >= 0x0351)
|
188
|
+
#define SQL_AA_TRUE 1L /* the application is an ANSI app */
|
189
|
+
#define SQL_AA_FALSE 0L /* the application is a Unicode app */
|
190
|
+
#endif
|
191
|
+
|
192
|
+
/* values for SQL_ATTR_RESET_CONNECTION */
|
193
|
+
#if (ODBCVER >= 0x0380)
|
194
|
+
#define SQL_RESET_CONNECTION_YES 1UL
|
195
|
+
#endif
|
196
|
+
|
197
|
+
/* values for SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE */
|
198
|
+
#if (ODBCVER >= 0x0380)
|
199
|
+
#define SQL_ASYNC_DBC_ENABLE_ON 1UL
|
200
|
+
#define SQL_ASYNC_DBC_ENABLE_OFF 0UL
|
201
|
+
#define SQL_ASYNC_DBC_ENABLE_DEFAULT SQL_ASYNC_DBC_ENABLE_OFF
|
202
|
+
#endif /* ODBCVER >= 0x0380 */
|
203
|
+
|
204
|
+
/* statement attributes */
|
205
|
+
#define SQL_QUERY_TIMEOUT 0
|
206
|
+
#define SQL_MAX_ROWS 1
|
207
|
+
#define SQL_NOSCAN 2
|
208
|
+
#define SQL_MAX_LENGTH 3
|
209
|
+
#define SQL_ASYNC_ENABLE 4 /* same as SQL_ATTR_ASYNC_ENABLE */
|
210
|
+
#define SQL_BIND_TYPE 5
|
211
|
+
#define SQL_CURSOR_TYPE 6
|
212
|
+
#define SQL_CONCURRENCY 7
|
213
|
+
#define SQL_KEYSET_SIZE 8
|
214
|
+
#define SQL_ROWSET_SIZE 9
|
215
|
+
#define SQL_SIMULATE_CURSOR 10
|
216
|
+
#define SQL_RETRIEVE_DATA 11
|
217
|
+
#define SQL_USE_BOOKMARKS 12
|
218
|
+
#define SQL_GET_BOOKMARK 13 /* GetStmtOption Only */
|
219
|
+
#define SQL_ROW_NUMBER 14 /* GetStmtOption Only */
|
220
|
+
|
221
|
+
/* statement attributes for ODBC 3.0 */
|
222
|
+
#if (ODBCVER >= 0x0300)
|
223
|
+
#define SQL_ATTR_ASYNC_ENABLE 4
|
224
|
+
#define SQL_ATTR_CONCURRENCY SQL_CONCURRENCY
|
225
|
+
#define SQL_ATTR_CURSOR_TYPE SQL_CURSOR_TYPE
|
226
|
+
#define SQL_ATTR_ENABLE_AUTO_IPD 15
|
227
|
+
#define SQL_ATTR_FETCH_BOOKMARK_PTR 16
|
228
|
+
#define SQL_ATTR_KEYSET_SIZE SQL_KEYSET_SIZE
|
229
|
+
#define SQL_ATTR_MAX_LENGTH SQL_MAX_LENGTH
|
230
|
+
#define SQL_ATTR_MAX_ROWS SQL_MAX_ROWS
|
231
|
+
#define SQL_ATTR_NOSCAN SQL_NOSCAN
|
232
|
+
#define SQL_ATTR_PARAM_BIND_OFFSET_PTR 17
|
233
|
+
#define SQL_ATTR_PARAM_BIND_TYPE 18
|
234
|
+
#define SQL_ATTR_PARAM_OPERATION_PTR 19
|
235
|
+
#define SQL_ATTR_PARAM_STATUS_PTR 20
|
236
|
+
#define SQL_ATTR_PARAMS_PROCESSED_PTR 21
|
237
|
+
#define SQL_ATTR_PARAMSET_SIZE 22
|
238
|
+
#define SQL_ATTR_QUERY_TIMEOUT SQL_QUERY_TIMEOUT
|
239
|
+
#define SQL_ATTR_RETRIEVE_DATA SQL_RETRIEVE_DATA
|
240
|
+
#define SQL_ATTR_ROW_BIND_OFFSET_PTR 23
|
241
|
+
#define SQL_ATTR_ROW_BIND_TYPE SQL_BIND_TYPE
|
242
|
+
#define SQL_ATTR_ROW_NUMBER SQL_ROW_NUMBER /*GetStmtAttr*/
|
243
|
+
#define SQL_ATTR_ROW_OPERATION_PTR 24
|
244
|
+
#define SQL_ATTR_ROW_STATUS_PTR 25
|
245
|
+
#define SQL_ATTR_ROWS_FETCHED_PTR 26
|
246
|
+
#define SQL_ATTR_ROW_ARRAY_SIZE 27
|
247
|
+
#define SQL_ATTR_SIMULATE_CURSOR SQL_SIMULATE_CURSOR
|
248
|
+
#define SQL_ATTR_USE_BOOKMARKS SQL_USE_BOOKMARKS
|
249
|
+
|
250
|
+
#endif /* ODBCVER >= 0x0300 */
|
251
|
+
|
252
|
+
#if (ODBCVER < 0x0300)
|
253
|
+
#define SQL_STMT_OPT_MAX SQL_ROW_NUMBER
|
254
|
+
#define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT
|
255
|
+
#endif /* ODBCVER < 0x0300 */
|
256
|
+
|
257
|
+
/* New defines for SEARCHABLE column in SQLGetTypeInfo */
|
258
|
+
|
259
|
+
#if (ODBCVER >= 0x0300)
|
260
|
+
#define SQL_COL_PRED_CHAR SQL_LIKE_ONLY
|
261
|
+
#define SQL_COL_PRED_BASIC SQL_ALL_EXCEPT_LIKE
|
262
|
+
#endif /* ODBCVER >= 0x0300 */
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
/* whether an attribute is a pointer or not */
|
267
|
+
#if (ODBCVER >= 0x0300)
|
268
|
+
#define SQL_IS_POINTER (-4)
|
269
|
+
#define SQL_IS_UINTEGER (-5)
|
270
|
+
#define SQL_IS_INTEGER (-6)
|
271
|
+
#define SQL_IS_USMALLINT (-7)
|
272
|
+
#define SQL_IS_SMALLINT (-8)
|
273
|
+
#endif /* ODBCVER >= 0x0300 */
|
274
|
+
|
275
|
+
/* the value of SQL_ATTR_PARAM_BIND_TYPE */
|
276
|
+
#if (ODBCVER >= 0x0300)
|
277
|
+
#define SQL_PARAM_BIND_BY_COLUMN 0UL
|
278
|
+
#define SQL_PARAM_BIND_TYPE_DEFAULT SQL_PARAM_BIND_BY_COLUMN
|
279
|
+
#endif /* ODBCVER >= 0x0300 */
|
280
|
+
|
281
|
+
/* SQL_QUERY_TIMEOUT options */
|
282
|
+
#define SQL_QUERY_TIMEOUT_DEFAULT 0UL
|
283
|
+
|
284
|
+
/* SQL_MAX_ROWS options */
|
285
|
+
#define SQL_MAX_ROWS_DEFAULT 0UL
|
286
|
+
|
287
|
+
/* SQL_NOSCAN options */
|
288
|
+
#define SQL_NOSCAN_OFF 0UL /* 1.0 FALSE */
|
289
|
+
#define SQL_NOSCAN_ON 1UL /* 1.0 TRUE */
|
290
|
+
#define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF
|
291
|
+
|
292
|
+
/* SQL_MAX_LENGTH options */
|
293
|
+
#define SQL_MAX_LENGTH_DEFAULT 0UL
|
294
|
+
|
295
|
+
/* values for SQL_ATTR_ASYNC_ENABLE */
|
296
|
+
#define SQL_ASYNC_ENABLE_OFF 0UL
|
297
|
+
#define SQL_ASYNC_ENABLE_ON 1UL
|
298
|
+
#define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF
|
299
|
+
|
300
|
+
/* SQL_BIND_TYPE options */
|
301
|
+
#define SQL_BIND_BY_COLUMN 0UL
|
302
|
+
#define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN /* Default value */
|
303
|
+
|
304
|
+
/* SQL_CONCURRENCY options */
|
305
|
+
#define SQL_CONCUR_READ_ONLY 1
|
306
|
+
#define SQL_CONCUR_LOCK 2
|
307
|
+
#define SQL_CONCUR_ROWVER 3
|
308
|
+
#define SQL_CONCUR_VALUES 4
|
309
|
+
#define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY /* Default value */
|
310
|
+
|
311
|
+
/* SQL_CURSOR_TYPE options */
|
312
|
+
#define SQL_CURSOR_FORWARD_ONLY 0UL
|
313
|
+
#define SQL_CURSOR_KEYSET_DRIVEN 1UL
|
314
|
+
#define SQL_CURSOR_DYNAMIC 2UL
|
315
|
+
#define SQL_CURSOR_STATIC 3UL
|
316
|
+
#define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY /* Default value */
|
317
|
+
|
318
|
+
/* SQL_ROWSET_SIZE options */
|
319
|
+
#define SQL_ROWSET_SIZE_DEFAULT 1UL
|
320
|
+
|
321
|
+
/* SQL_KEYSET_SIZE options */
|
322
|
+
#define SQL_KEYSET_SIZE_DEFAULT 0UL
|
323
|
+
|
324
|
+
/* SQL_SIMULATE_CURSOR options */
|
325
|
+
#define SQL_SC_NON_UNIQUE 0UL
|
326
|
+
#define SQL_SC_TRY_UNIQUE 1UL
|
327
|
+
#define SQL_SC_UNIQUE 2UL
|
328
|
+
|
329
|
+
/* SQL_RETRIEVE_DATA options */
|
330
|
+
#define SQL_RD_OFF 0UL
|
331
|
+
#define SQL_RD_ON 1UL
|
332
|
+
#define SQL_RD_DEFAULT SQL_RD_ON
|
333
|
+
|
334
|
+
/* SQL_USE_BOOKMARKS options */
|
335
|
+
#define SQL_UB_OFF 0UL
|
336
|
+
#define SQL_UB_ON 01UL
|
337
|
+
#define SQL_UB_DEFAULT SQL_UB_OFF
|
338
|
+
|
339
|
+
/* New values for SQL_USE_BOOKMARKS attribute */
|
340
|
+
#if (ODBCVER >= 0x0300)
|
341
|
+
#define SQL_UB_FIXED SQL_UB_ON
|
342
|
+
#define SQL_UB_VARIABLE 2UL
|
343
|
+
#endif /* ODBCVER >= 0x0300 */
|
344
|
+
|
345
|
+
/* extended descriptor field */
|
346
|
+
#if (ODBCVER >= 0x0300)
|
347
|
+
#define SQL_DESC_ARRAY_SIZE 20
|
348
|
+
#define SQL_DESC_ARRAY_STATUS_PTR 21
|
349
|
+
#define SQL_DESC_AUTO_UNIQUE_VALUE SQL_COLUMN_AUTO_INCREMENT
|
350
|
+
#define SQL_DESC_BASE_COLUMN_NAME 22
|
351
|
+
#define SQL_DESC_BASE_TABLE_NAME 23
|
352
|
+
#define SQL_DESC_BIND_OFFSET_PTR 24
|
353
|
+
#define SQL_DESC_BIND_TYPE 25
|
354
|
+
#define SQL_DESC_CASE_SENSITIVE SQL_COLUMN_CASE_SENSITIVE
|
355
|
+
#define SQL_DESC_CATALOG_NAME SQL_COLUMN_QUALIFIER_NAME
|
356
|
+
#define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE
|
357
|
+
#define SQL_DESC_DATETIME_INTERVAL_PRECISION 26
|
358
|
+
#define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE
|
359
|
+
#define SQL_DESC_FIXED_PREC_SCALE SQL_COLUMN_MONEY
|
360
|
+
#define SQL_DESC_LABEL SQL_COLUMN_LABEL
|
361
|
+
#define SQL_DESC_LITERAL_PREFIX 27
|
362
|
+
#define SQL_DESC_LITERAL_SUFFIX 28
|
363
|
+
#define SQL_DESC_LOCAL_TYPE_NAME 29
|
364
|
+
#define SQL_DESC_MAXIMUM_SCALE 30
|
365
|
+
#define SQL_DESC_MINIMUM_SCALE 31
|
366
|
+
#define SQL_DESC_NUM_PREC_RADIX 32
|
367
|
+
#define SQL_DESC_PARAMETER_TYPE 33
|
368
|
+
#define SQL_DESC_ROWS_PROCESSED_PTR 34
|
369
|
+
#if (ODBCVER >= 0x0350)
|
370
|
+
#define SQL_DESC_ROWVER 35
|
371
|
+
#endif /* ODBCVER >= 0x0350 */
|
372
|
+
#define SQL_DESC_SCHEMA_NAME SQL_COLUMN_OWNER_NAME
|
373
|
+
#define SQL_DESC_SEARCHABLE SQL_COLUMN_SEARCHABLE
|
374
|
+
#define SQL_DESC_TYPE_NAME SQL_COLUMN_TYPE_NAME
|
375
|
+
#define SQL_DESC_TABLE_NAME SQL_COLUMN_TABLE_NAME
|
376
|
+
#define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED
|
377
|
+
#define SQL_DESC_UPDATABLE SQL_COLUMN_UPDATABLE
|
378
|
+
#endif /* ODBCVER >= 0x0300 */
|
379
|
+
|
380
|
+
|
381
|
+
/* defines for diagnostics fields */
|
382
|
+
#if (ODBCVER >= 0x0300)
|
383
|
+
#define SQL_DIAG_CURSOR_ROW_COUNT (-1249)
|
384
|
+
#define SQL_DIAG_ROW_NUMBER (-1248)
|
385
|
+
#define SQL_DIAG_COLUMN_NUMBER (-1247)
|
386
|
+
#endif /* ODBCVER >= 0x0300 */
|
387
|
+
|
388
|
+
/* SQL extended datatypes */
|
389
|
+
#define SQL_DATE 9
|
390
|
+
#if (ODBCVER >= 0x0300)
|
391
|
+
#define SQL_INTERVAL 10
|
392
|
+
#endif /* ODBCVER >= 0x0300 */
|
393
|
+
#define SQL_TIME 10
|
394
|
+
#define SQL_TIMESTAMP 11
|
395
|
+
#define SQL_LONGVARCHAR (-1)
|
396
|
+
#define SQL_BINARY (-2)
|
397
|
+
#define SQL_VARBINARY (-3)
|
398
|
+
#define SQL_LONGVARBINARY (-4)
|
399
|
+
#define SQL_BIGINT (-5)
|
400
|
+
#define SQL_TINYINT (-6)
|
401
|
+
#define SQL_BIT (-7)
|
402
|
+
#if (ODBCVER >= 0x0350)
|
403
|
+
#define SQL_GUID (-11)
|
404
|
+
#endif /* ODBCVER >= 0x0350 */
|
405
|
+
|
406
|
+
#if (ODBCVER >= 0x0300)
|
407
|
+
/* interval code */
|
408
|
+
#define SQL_CODE_YEAR 1
|
409
|
+
#define SQL_CODE_MONTH 2
|
410
|
+
#define SQL_CODE_DAY 3
|
411
|
+
#define SQL_CODE_HOUR 4
|
412
|
+
#define SQL_CODE_MINUTE 5
|
413
|
+
#define SQL_CODE_SECOND 6
|
414
|
+
#define SQL_CODE_YEAR_TO_MONTH 7
|
415
|
+
#define SQL_CODE_DAY_TO_HOUR 8
|
416
|
+
#define SQL_CODE_DAY_TO_MINUTE 9
|
417
|
+
#define SQL_CODE_DAY_TO_SECOND 10
|
418
|
+
#define SQL_CODE_HOUR_TO_MINUTE 11
|
419
|
+
#define SQL_CODE_HOUR_TO_SECOND 12
|
420
|
+
#define SQL_CODE_MINUTE_TO_SECOND 13
|
421
|
+
|
422
|
+
#define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR)
|
423
|
+
#define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH)
|
424
|
+
#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY)
|
425
|
+
#define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR)
|
426
|
+
#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE)
|
427
|
+
#define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND)
|
428
|
+
#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
|
429
|
+
#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR)
|
430
|
+
#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
|
431
|
+
#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
|
432
|
+
#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
|
433
|
+
#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
|
434
|
+
#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND)
|
435
|
+
|
436
|
+
#else
|
437
|
+
#define SQL_INTERVAL_YEAR (-80)
|
438
|
+
#define SQL_INTERVAL_MONTH (-81)
|
439
|
+
#define SQL_INTERVAL_YEAR_TO_MONTH (-82)
|
440
|
+
#define SQL_INTERVAL_DAY (-83)
|
441
|
+
#define SQL_INTERVAL_HOUR (-84)
|
442
|
+
#define SQL_INTERVAL_MINUTE (-85)
|
443
|
+
#define SQL_INTERVAL_SECOND (-86)
|
444
|
+
#define SQL_INTERVAL_DAY_TO_HOUR (-87)
|
445
|
+
#define SQL_INTERVAL_DAY_TO_MINUTE (-88)
|
446
|
+
#define SQL_INTERVAL_DAY_TO_SECOND (-89)
|
447
|
+
#define SQL_INTERVAL_HOUR_TO_MINUTE (-90)
|
448
|
+
#define SQL_INTERVAL_HOUR_TO_SECOND (-91)
|
449
|
+
#define SQL_INTERVAL_MINUTE_TO_SECOND (-92)
|
450
|
+
#endif /* ODBCVER >= 0x0300 */
|
451
|
+
|
452
|
+
|
453
|
+
#if (ODBCVER <= 0x0300)
|
454
|
+
#define SQL_UNICODE (-95)
|
455
|
+
#define SQL_UNICODE_VARCHAR (-96)
|
456
|
+
#define SQL_UNICODE_LONGVARCHAR (-97)
|
457
|
+
#define SQL_UNICODE_CHAR SQL_UNICODE
|
458
|
+
#else
|
459
|
+
/* The previous definitions for SQL_UNICODE_ are historical and obsolete */
|
460
|
+
|
461
|
+
#define SQL_UNICODE SQL_WCHAR
|
462
|
+
|
463
|
+
#define SQL_UNICODE_VARCHAR SQL_WVARCHAR
|
464
|
+
#define SQL_UNICODE_LONGVARCHAR SQL_WLONGVARCHAR
|
465
|
+
#define SQL_UNICODE_CHAR SQL_WCHAR
|
466
|
+
#endif
|
467
|
+
|
468
|
+
#if (ODBCVER < 0x0300)
|
469
|
+
#define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR
|
470
|
+
#define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR
|
471
|
+
#endif /* ODBCVER < 0x0300 */
|
472
|
+
|
473
|
+
/* C datatype to SQL datatype mapping SQL types
|
474
|
+
------------------- */
|
475
|
+
#define SQL_C_CHAR SQL_CHAR /* CHAR, VARCHAR, DECIMAL, NUMERIC */
|
476
|
+
#define SQL_C_LONG SQL_INTEGER /* INTEGER */
|
477
|
+
#define SQL_C_SHORT SQL_SMALLINT /* SMALLINT */
|
478
|
+
#define SQL_C_FLOAT SQL_REAL /* REAL */
|
479
|
+
#define SQL_C_DOUBLE SQL_DOUBLE /* FLOAT, DOUBLE */
|
480
|
+
#if (ODBCVER >= 0x0300)
|
481
|
+
#define SQL_C_NUMERIC SQL_NUMERIC
|
482
|
+
#endif /* ODBCVER >= 0x0300 */
|
483
|
+
#define SQL_C_DEFAULT 99
|
484
|
+
|
485
|
+
#define SQL_SIGNED_OFFSET (-20)
|
486
|
+
#define SQL_UNSIGNED_OFFSET (-22)
|
487
|
+
|
488
|
+
/* C datatype to SQL datatype mapping */
|
489
|
+
#define SQL_C_DATE SQL_DATE
|
490
|
+
#define SQL_C_TIME SQL_TIME
|
491
|
+
#define SQL_C_TIMESTAMP SQL_TIMESTAMP
|
492
|
+
#if (ODBCVER >= 0x0300)
|
493
|
+
#define SQL_C_TYPE_DATE SQL_TYPE_DATE
|
494
|
+
#define SQL_C_TYPE_TIME SQL_TYPE_TIME
|
495
|
+
#define SQL_C_TYPE_TIMESTAMP SQL_TYPE_TIMESTAMP
|
496
|
+
#define SQL_C_INTERVAL_YEAR SQL_INTERVAL_YEAR
|
497
|
+
#define SQL_C_INTERVAL_MONTH SQL_INTERVAL_MONTH
|
498
|
+
#define SQL_C_INTERVAL_DAY SQL_INTERVAL_DAY
|
499
|
+
#define SQL_C_INTERVAL_HOUR SQL_INTERVAL_HOUR
|
500
|
+
#define SQL_C_INTERVAL_MINUTE SQL_INTERVAL_MINUTE
|
501
|
+
#define SQL_C_INTERVAL_SECOND SQL_INTERVAL_SECOND
|
502
|
+
#define SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_YEAR_TO_MONTH
|
503
|
+
#define SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL_DAY_TO_HOUR
|
504
|
+
#define SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL_DAY_TO_MINUTE
|
505
|
+
#define SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL_DAY_TO_SECOND
|
506
|
+
#define SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL_HOUR_TO_MINUTE
|
507
|
+
#define SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL_HOUR_TO_SECOND
|
508
|
+
#define SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND
|
509
|
+
#endif /* ODBCVER >= 0x0300 */
|
510
|
+
#define SQL_C_BINARY SQL_BINARY
|
511
|
+
#define SQL_C_BIT SQL_BIT
|
512
|
+
#if (ODBCVER >= 0x0300)
|
513
|
+
#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET) /* SIGNED BIGINT */
|
514
|
+
#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED BIGINT */
|
515
|
+
#endif /* ODBCVER >= 0x0300 */
|
516
|
+
#define SQL_C_TINYINT SQL_TINYINT
|
517
|
+
#define SQL_C_SLONG (SQL_C_LONG+SQL_SIGNED_OFFSET) /* SIGNED INTEGER */
|
518
|
+
#define SQL_C_SSHORT (SQL_C_SHORT+SQL_SIGNED_OFFSET) /* SIGNED SMALLINT */
|
519
|
+
#define SQL_C_STINYINT (SQL_TINYINT+SQL_SIGNED_OFFSET) /* SIGNED TINYINT */
|
520
|
+
#define SQL_C_ULONG (SQL_C_LONG+SQL_UNSIGNED_OFFSET) /* UNSIGNED INTEGER*/
|
521
|
+
#define SQL_C_USHORT (SQL_C_SHORT+SQL_UNSIGNED_OFFSET) /* UNSIGNED SMALLINT*/
|
522
|
+
#define SQL_C_UTINYINT (SQL_TINYINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED TINYINT*/
|
523
|
+
|
524
|
+
#ifdef _WIN64
|
525
|
+
#define SQL_C_BOOKMARK SQL_C_UBIGINT /* BOOKMARK */
|
526
|
+
#else
|
527
|
+
#define SQL_C_BOOKMARK SQL_C_ULONG /* BOOKMARK */
|
528
|
+
#endif
|
529
|
+
|
530
|
+
#if (ODBCVER >= 0x0350)
|
531
|
+
#define SQL_C_GUID SQL_GUID
|
532
|
+
#endif /* ODBCVER >= 0x0350 */
|
533
|
+
|
534
|
+
#define SQL_TYPE_NULL 0
|
535
|
+
#if (ODBCVER < 0x0300)
|
536
|
+
#define SQL_TYPE_MIN SQL_BIT
|
537
|
+
#define SQL_TYPE_MAX SQL_VARCHAR
|
538
|
+
#endif
|
539
|
+
|
540
|
+
/* base value of driver-specific C-Type (max is 0x7fff)
|
541
|
+
define driver-specific C-Type, named as SQL_DRIVER_C_TYPE_BASE,
|
542
|
+
SQL_DRIVER_C_TYPE_BASE+1, SQL_DRIVER_C_TYPE_BASE+2, etc. */
|
543
|
+
#if (ODBCVER >= 0x380)
|
544
|
+
#define SQL_DRIVER_C_TYPE_BASE 0x4000
|
545
|
+
#endif
|
546
|
+
|
547
|
+
/* base value of driver-specific fields/attributes (max are 0x7fff [16-bit] or 0x00007fff [32-bit])
|
548
|
+
define driver-specific SQL-Type, named as SQL_DRIVER_SQL_TYPE_BASE,
|
549
|
+
SQL_DRIVER_SQL_TYPE_BASE+1, SQL_DRIVER_SQL_TYPE_BASE+2, etc. */
|
550
|
+
|
551
|
+
/* Please note that there is no runtime change in this version of DM.
|
552
|
+
However, we suggest that driver manufacturers adhere to this range
|
553
|
+
as future versions of the DM may enforce these constraints */
|
554
|
+
#if (ODBCVER >= 0x380)
|
555
|
+
#define SQL_DRIVER_SQL_TYPE_BASE 0x4000
|
556
|
+
#define SQL_DRIVER_DESC_FIELD_BASE 0x4000
|
557
|
+
#define SQL_DRIVER_DIAG_FIELD_BASE 0x4000
|
558
|
+
#define SQL_DRIVER_INFO_TYPE_BASE 0x4000
|
559
|
+
#define SQL_DRIVER_CONN_ATTR_BASE 0x00004000 /* 32-bit */
|
560
|
+
#define SQL_DRIVER_STMT_ATTR_BASE 0x00004000 /* 32-bit */
|
561
|
+
#endif
|
562
|
+
|
563
|
+
#if (ODBCVER >= 0x0300)
|
564
|
+
#define SQL_C_VARBOOKMARK SQL_C_BINARY
|
565
|
+
#endif /* ODBCVER >= 0x0300 */
|
566
|
+
|
567
|
+
/* define for SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER */
|
568
|
+
#if (ODBCVER >= 0x0300)
|
569
|
+
#define SQL_NO_ROW_NUMBER (-1)
|
570
|
+
#define SQL_NO_COLUMN_NUMBER (-1)
|
571
|
+
#define SQL_ROW_NUMBER_UNKNOWN (-2)
|
572
|
+
#define SQL_COLUMN_NUMBER_UNKNOWN (-2)
|
573
|
+
#endif
|
574
|
+
|
575
|
+
/* SQLBindParameter extensions */
|
576
|
+
#define SQL_DEFAULT_PARAM (-5)
|
577
|
+
#define SQL_IGNORE (-6)
|
578
|
+
#if (ODBCVER >= 0x0300)
|
579
|
+
#define SQL_COLUMN_IGNORE SQL_IGNORE
|
580
|
+
#endif /* ODBCVER >= 0x0300 */
|
581
|
+
#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
|
582
|
+
#define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
|
583
|
+
|
584
|
+
/* binary length for driver specific attributes */
|
585
|
+
#define SQL_LEN_BINARY_ATTR_OFFSET (-100)
|
586
|
+
#define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
|
587
|
+
|
588
|
+
/* Defines used by Driver Manager when mapping SQLSetParam to SQLBindParameter
|
589
|
+
*/
|
590
|
+
#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
|
591
|
+
#define SQL_SETPARAM_VALUE_MAX (-1L)
|
592
|
+
|
593
|
+
/* SQLColAttributes defines */
|
594
|
+
#define SQL_COLUMN_COUNT 0
|
595
|
+
#define SQL_COLUMN_NAME 1
|
596
|
+
#define SQL_COLUMN_TYPE 2
|
597
|
+
#define SQL_COLUMN_LENGTH 3
|
598
|
+
#define SQL_COLUMN_PRECISION 4
|
599
|
+
#define SQL_COLUMN_SCALE 5
|
600
|
+
#define SQL_COLUMN_DISPLAY_SIZE 6
|
601
|
+
#define SQL_COLUMN_NULLABLE 7
|
602
|
+
#define SQL_COLUMN_UNSIGNED 8
|
603
|
+
#define SQL_COLUMN_MONEY 9
|
604
|
+
#define SQL_COLUMN_UPDATABLE 10
|
605
|
+
#define SQL_COLUMN_AUTO_INCREMENT 11
|
606
|
+
#define SQL_COLUMN_CASE_SENSITIVE 12
|
607
|
+
#define SQL_COLUMN_SEARCHABLE 13
|
608
|
+
#define SQL_COLUMN_TYPE_NAME 14
|
609
|
+
#define SQL_COLUMN_TABLE_NAME 15
|
610
|
+
#define SQL_COLUMN_OWNER_NAME 16
|
611
|
+
#define SQL_COLUMN_QUALIFIER_NAME 17
|
612
|
+
#define SQL_COLUMN_LABEL 18
|
613
|
+
#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL
|
614
|
+
#if (ODBCVER < 0x0300)
|
615
|
+
#define SQL_COLUMN_DRIVER_START 1000
|
616
|
+
#endif /* ODBCVER < 0x0300 */
|
617
|
+
|
618
|
+
#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT
|
619
|
+
|
620
|
+
/* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
|
621
|
+
#define SQL_ATTR_READONLY 0
|
622
|
+
#define SQL_ATTR_WRITE 1
|
623
|
+
#define SQL_ATTR_READWRITE_UNKNOWN 2
|
624
|
+
|
625
|
+
/* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
|
626
|
+
/* These are also used by SQLGetInfo */
|
627
|
+
#define SQL_UNSEARCHABLE 0
|
628
|
+
#define SQL_LIKE_ONLY 1
|
629
|
+
#define SQL_ALL_EXCEPT_LIKE 2
|
630
|
+
#define SQL_SEARCHABLE 3
|
631
|
+
#define SQL_PRED_SEARCHABLE SQL_SEARCHABLE
|
632
|
+
|
633
|
+
|
634
|
+
/* Special return values for SQLGetData */
|
635
|
+
#define SQL_NO_TOTAL (-4)
|
636
|
+
|
637
|
+
/********************************************/
|
638
|
+
/* SQLGetFunctions: additional values for */
|
639
|
+
/* fFunction to represent functions that */
|
640
|
+
/* are not in the X/Open spec. */
|
641
|
+
/********************************************/
|
642
|
+
|
643
|
+
#if (ODBCVER >= 0x0300)
|
644
|
+
#define SQL_API_SQLALLOCHANDLESTD 73
|
645
|
+
#define SQL_API_SQLBULKOPERATIONS 24
|
646
|
+
#endif /* ODBCVER >= 0x0300 */
|
647
|
+
#define SQL_API_SQLBINDPARAMETER 72
|
648
|
+
#define SQL_API_SQLBROWSECONNECT 55
|
649
|
+
#define SQL_API_SQLCOLATTRIBUTES 6
|
650
|
+
#define SQL_API_SQLCOLUMNPRIVILEGES 56
|
651
|
+
#define SQL_API_SQLDESCRIBEPARAM 58
|
652
|
+
#define SQL_API_SQLDRIVERCONNECT 41
|
653
|
+
#define SQL_API_SQLDRIVERS 71
|
654
|
+
#define SQL_API_SQLEXTENDEDFETCH 59
|
655
|
+
#define SQL_API_SQLFOREIGNKEYS 60
|
656
|
+
#define SQL_API_SQLMORERESULTS 61
|
657
|
+
#define SQL_API_SQLNATIVESQL 62
|
658
|
+
#define SQL_API_SQLNUMPARAMS 63
|
659
|
+
#define SQL_API_SQLPARAMOPTIONS 64
|
660
|
+
#define SQL_API_SQLPRIMARYKEYS 65
|
661
|
+
#define SQL_API_SQLPROCEDURECOLUMNS 66
|
662
|
+
#define SQL_API_SQLPROCEDURES 67
|
663
|
+
#define SQL_API_SQLSETPOS 68
|
664
|
+
#define SQL_API_SQLSETSCROLLOPTIONS 69
|
665
|
+
#define SQL_API_SQLTABLEPRIVILEGES 70
|
666
|
+
|
667
|
+
/*-------------------------------------------*/
|
668
|
+
/* SQL_EXT_API_LAST is not useful with ODBC */
|
669
|
+
/* version 3.0 because some of the values */
|
670
|
+
/* from X/Open are in the 10000 range. */
|
671
|
+
/*-------------------------------------------*/
|
672
|
+
|
673
|
+
#if (ODBCVER < 0x0300)
|
674
|
+
#define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER
|
675
|
+
#define SQL_NUM_FUNCTIONS 23
|
676
|
+
#define SQL_EXT_API_START 40
|
677
|
+
#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
|
678
|
+
#endif
|
679
|
+
|
680
|
+
/*--------------------------------------------*/
|
681
|
+
/* SQL_API_ALL_FUNCTIONS returns an array */
|
682
|
+
/* of 'booleans' representing whether a */
|
683
|
+
/* function is implemented by the driver. */
|
684
|
+
/* */
|
685
|
+
/* CAUTION: Only functions defined in ODBC */
|
686
|
+
/* version 2.0 and earlier are returned, the */
|
687
|
+
/* new high-range function numbers defined by */
|
688
|
+
/* X/Open break this scheme. See the new */
|
689
|
+
/* method -- SQL_API_ODBC3_ALL_FUNCTIONS */
|
690
|
+
/*--------------------------------------------*/
|
691
|
+
|
692
|
+
#define SQL_API_ALL_FUNCTIONS 0 /* See CAUTION above */
|
693
|
+
|
694
|
+
/*----------------------------------------------*/
|
695
|
+
/* 2.X drivers export a dummy function with */
|
696
|
+
/* ordinal number SQL_API_LOADBYORDINAL to speed*/
|
697
|
+
/* loading under the windows operating system. */
|
698
|
+
/* */
|
699
|
+
/* CAUTION: Loading by ordinal is not supported */
|
700
|
+
/* for 3.0 and above drivers. */
|
701
|
+
/*----------------------------------------------*/
|
702
|
+
|
703
|
+
#define SQL_API_LOADBYORDINAL 199 /* See CAUTION above */
|
704
|
+
|
705
|
+
/*----------------------------------------------*/
|
706
|
+
/* SQL_API_ODBC3_ALL_FUNCTIONS */
|
707
|
+
/* This returns a bitmap, which allows us to */
|
708
|
+
/* handle the higher-valued function numbers. */
|
709
|
+
/* Use SQL_FUNC_EXISTS(bitmap,function_number) */
|
710
|
+
/* to determine if the function exists. */
|
711
|
+
/*----------------------------------------------*/
|
712
|
+
|
713
|
+
|
714
|
+
#if (ODBCVER >= 0x0300)
|
715
|
+
#define SQL_API_ODBC3_ALL_FUNCTIONS 999
|
716
|
+
#define SQL_API_ODBC3_ALL_FUNCTIONS_SIZE 250 /* array of 250 words */
|
717
|
+
|
718
|
+
#define SQL_FUNC_EXISTS(pfExists, uwAPI) \
|
719
|
+
((*(((UWORD*) (pfExists)) + ((uwAPI) >> 4)) \
|
720
|
+
& (1 << ((uwAPI) & 0x000F)) \
|
721
|
+
) ? SQL_TRUE : SQL_FALSE \
|
722
|
+
)
|
723
|
+
#endif /* ODBCVER >= 0x0300 */
|
724
|
+
|
725
|
+
|
726
|
+
/************************************************/
|
727
|
+
/* Extended definitions for SQLGetInfo */
|
728
|
+
/************************************************/
|
729
|
+
|
730
|
+
/*---------------------------------*/
|
731
|
+
/* Values in ODBC 2.0 that are not */
|
732
|
+
/* in the X/Open spec */
|
733
|
+
/*---------------------------------*/
|
734
|
+
|
735
|
+
#define SQL_INFO_FIRST 0
|
736
|
+
#define SQL_ACTIVE_CONNECTIONS 0 /* MAX_DRIVER_CONNECTIONS */
|
737
|
+
#define SQL_ACTIVE_STATEMENTS 1 /* MAX_CONCURRENT_ACTIVITIES */
|
738
|
+
#define SQL_DRIVER_HDBC 3
|
739
|
+
#define SQL_DRIVER_HENV 4
|
740
|
+
#define SQL_DRIVER_HSTMT 5
|
741
|
+
#define SQL_DRIVER_NAME 6
|
742
|
+
#define SQL_DRIVER_VER 7
|
743
|
+
#define SQL_ODBC_API_CONFORMANCE 9
|
744
|
+
#define SQL_ODBC_VER 10
|
745
|
+
#define SQL_ROW_UPDATES 11
|
746
|
+
#define SQL_ODBC_SAG_CLI_CONFORMANCE 12
|
747
|
+
#define SQL_ODBC_SQL_CONFORMANCE 15
|
748
|
+
#define SQL_PROCEDURES 21
|
749
|
+
#define SQL_CONCAT_NULL_BEHAVIOR 22
|
750
|
+
#define SQL_CURSOR_ROLLBACK_BEHAVIOR 24
|
751
|
+
#define SQL_EXPRESSIONS_IN_ORDERBY 27
|
752
|
+
#define SQL_MAX_OWNER_NAME_LEN 32 /* MAX_SCHEMA_NAME_LEN */
|
753
|
+
#define SQL_MAX_PROCEDURE_NAME_LEN 33
|
754
|
+
#define SQL_MAX_QUALIFIER_NAME_LEN 34 /* MAX_CATALOG_NAME_LEN */
|
755
|
+
#define SQL_MULT_RESULT_SETS 36
|
756
|
+
#define SQL_MULTIPLE_ACTIVE_TXN 37
|
757
|
+
#define SQL_OUTER_JOINS 38
|
758
|
+
#define SQL_OWNER_TERM 39
|
759
|
+
#define SQL_PROCEDURE_TERM 40
|
760
|
+
#define SQL_QUALIFIER_NAME_SEPARATOR 41
|
761
|
+
#define SQL_QUALIFIER_TERM 42
|
762
|
+
#define SQL_SCROLL_OPTIONS 44
|
763
|
+
#define SQL_TABLE_TERM 45
|
764
|
+
#define SQL_CONVERT_FUNCTIONS 48
|
765
|
+
#define SQL_NUMERIC_FUNCTIONS 49
|
766
|
+
#define SQL_STRING_FUNCTIONS 50
|
767
|
+
#define SQL_SYSTEM_FUNCTIONS 51
|
768
|
+
#define SQL_TIMEDATE_FUNCTIONS 52
|
769
|
+
#define SQL_CONVERT_BIGINT 53
|
770
|
+
#define SQL_CONVERT_BINARY 54
|
771
|
+
#define SQL_CONVERT_BIT 55
|
772
|
+
#define SQL_CONVERT_CHAR 56
|
773
|
+
#define SQL_CONVERT_DATE 57
|
774
|
+
#define SQL_CONVERT_DECIMAL 58
|
775
|
+
#define SQL_CONVERT_DOUBLE 59
|
776
|
+
#define SQL_CONVERT_FLOAT 60
|
777
|
+
#define SQL_CONVERT_INTEGER 61
|
778
|
+
#define SQL_CONVERT_LONGVARCHAR 62
|
779
|
+
#define SQL_CONVERT_NUMERIC 63
|
780
|
+
#define SQL_CONVERT_REAL 64
|
781
|
+
#define SQL_CONVERT_SMALLINT 65
|
782
|
+
#define SQL_CONVERT_TIME 66
|
783
|
+
#define SQL_CONVERT_TIMESTAMP 67
|
784
|
+
#define SQL_CONVERT_TINYINT 68
|
785
|
+
#define SQL_CONVERT_VARBINARY 69
|
786
|
+
#define SQL_CONVERT_VARCHAR 70
|
787
|
+
#define SQL_CONVERT_LONGVARBINARY 71
|
788
|
+
#define SQL_ODBC_SQL_OPT_IEF 73 /* SQL_INTEGRITY */
|
789
|
+
#define SQL_CORRELATION_NAME 74
|
790
|
+
#define SQL_NON_NULLABLE_COLUMNS 75
|
791
|
+
#define SQL_DRIVER_HLIB 76
|
792
|
+
#define SQL_DRIVER_ODBC_VER 77
|
793
|
+
#define SQL_LOCK_TYPES 78
|
794
|
+
#define SQL_POS_OPERATIONS 79
|
795
|
+
#define SQL_POSITIONED_STATEMENTS 80
|
796
|
+
#define SQL_BOOKMARK_PERSISTENCE 82
|
797
|
+
#define SQL_STATIC_SENSITIVITY 83
|
798
|
+
#define SQL_FILE_USAGE 84
|
799
|
+
#define SQL_COLUMN_ALIAS 87
|
800
|
+
#define SQL_GROUP_BY 88
|
801
|
+
#define SQL_KEYWORDS 89
|
802
|
+
#define SQL_OWNER_USAGE 91
|
803
|
+
#define SQL_QUALIFIER_USAGE 92
|
804
|
+
#define SQL_QUOTED_IDENTIFIER_CASE 93
|
805
|
+
#define SQL_SUBQUERIES 95
|
806
|
+
#define SQL_UNION 96
|
807
|
+
#define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103
|
808
|
+
#define SQL_MAX_CHAR_LITERAL_LEN 108
|
809
|
+
#define SQL_TIMEDATE_ADD_INTERVALS 109
|
810
|
+
#define SQL_TIMEDATE_DIFF_INTERVALS 110
|
811
|
+
#define SQL_NEED_LONG_DATA_LEN 111
|
812
|
+
#define SQL_MAX_BINARY_LITERAL_LEN 112
|
813
|
+
#define SQL_LIKE_ESCAPE_CLAUSE 113
|
814
|
+
#define SQL_QUALIFIER_LOCATION 114
|
815
|
+
|
816
|
+
#if (ODBCVER >= 0x0201 && ODBCVER < 0x0300)
|
817
|
+
#define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */
|
818
|
+
#endif /* ODBCVER >= 0x0201 && ODBCVER < 0x0300 */
|
819
|
+
|
820
|
+
/*----------------------------------------------*/
|
821
|
+
/* SQL_INFO_LAST and SQL_INFO_DRIVER_START are */
|
822
|
+
/* not useful anymore, because X/Open has */
|
823
|
+
/* values in the 10000 range. You */
|
824
|
+
/* must contact X/Open directly to get a range */
|
825
|
+
/* of numbers for driver-specific values. */
|
826
|
+
/*----------------------------------------------*/
|
827
|
+
|
828
|
+
#if (ODBCVER < 0x0300)
|
829
|
+
#define SQL_INFO_LAST SQL_QUALIFIER_LOCATION
|
830
|
+
#define SQL_INFO_DRIVER_START 1000
|
831
|
+
#endif /* ODBCVER < 0x0300 */
|
832
|
+
|
833
|
+
/*-----------------------------------------------*/
|
834
|
+
/* ODBC 3.0 SQLGetInfo values that are not part */
|
835
|
+
/* of the X/Open standard at this time. X/Open */
|
836
|
+
/* standard values are in sql.h. */
|
837
|
+
/*-----------------------------------------------*/
|
838
|
+
|
839
|
+
#if (ODBCVER >= 0x0300)
|
840
|
+
#define SQL_ACTIVE_ENVIRONMENTS 116
|
841
|
+
#define SQL_ALTER_DOMAIN 117
|
842
|
+
|
843
|
+
#define SQL_SQL_CONFORMANCE 118
|
844
|
+
#define SQL_DATETIME_LITERALS 119
|
845
|
+
|
846
|
+
#define SQL_ASYNC_MODE 10021 /* new X/Open spec */
|
847
|
+
#define SQL_BATCH_ROW_COUNT 120
|
848
|
+
#define SQL_BATCH_SUPPORT 121
|
849
|
+
#define SQL_CATALOG_LOCATION SQL_QUALIFIER_LOCATION
|
850
|
+
#define SQL_CATALOG_NAME_SEPARATOR SQL_QUALIFIER_NAME_SEPARATOR
|
851
|
+
#define SQL_CATALOG_TERM SQL_QUALIFIER_TERM
|
852
|
+
#define SQL_CATALOG_USAGE SQL_QUALIFIER_USAGE
|
853
|
+
#define SQL_CONVERT_WCHAR 122
|
854
|
+
#define SQL_CONVERT_INTERVAL_DAY_TIME 123
|
855
|
+
#define SQL_CONVERT_INTERVAL_YEAR_MONTH 124
|
856
|
+
#define SQL_CONVERT_WLONGVARCHAR 125
|
857
|
+
#define SQL_CONVERT_WVARCHAR 126
|
858
|
+
#define SQL_CREATE_ASSERTION 127
|
859
|
+
#define SQL_CREATE_CHARACTER_SET 128
|
860
|
+
#define SQL_CREATE_COLLATION 129
|
861
|
+
#define SQL_CREATE_DOMAIN 130
|
862
|
+
#define SQL_CREATE_SCHEMA 131
|
863
|
+
#define SQL_CREATE_TABLE 132
|
864
|
+
#define SQL_CREATE_TRANSLATION 133
|
865
|
+
#define SQL_CREATE_VIEW 134
|
866
|
+
#define SQL_DRIVER_HDESC 135
|
867
|
+
#define SQL_DROP_ASSERTION 136
|
868
|
+
#define SQL_DROP_CHARACTER_SET 137
|
869
|
+
#define SQL_DROP_COLLATION 138
|
870
|
+
#define SQL_DROP_DOMAIN 139
|
871
|
+
#define SQL_DROP_SCHEMA 140
|
872
|
+
#define SQL_DROP_TABLE 141
|
873
|
+
#define SQL_DROP_TRANSLATION 142
|
874
|
+
#define SQL_DROP_VIEW 143
|
875
|
+
#define SQL_DYNAMIC_CURSOR_ATTRIBUTES1 144
|
876
|
+
#define SQL_DYNAMIC_CURSOR_ATTRIBUTES2 145
|
877
|
+
#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 146
|
878
|
+
#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 147
|
879
|
+
#define SQL_INDEX_KEYWORDS 148
|
880
|
+
#define SQL_INFO_SCHEMA_VIEWS 149
|
881
|
+
#define SQL_KEYSET_CURSOR_ATTRIBUTES1 150
|
882
|
+
#define SQL_KEYSET_CURSOR_ATTRIBUTES2 151
|
883
|
+
#define SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 10022 /* new X/Open spec */
|
884
|
+
#define SQL_ODBC_INTERFACE_CONFORMANCE 152
|
885
|
+
#define SQL_PARAM_ARRAY_ROW_COUNTS 153
|
886
|
+
#define SQL_PARAM_ARRAY_SELECTS 154
|
887
|
+
#define SQL_SCHEMA_TERM SQL_OWNER_TERM
|
888
|
+
#define SQL_SCHEMA_USAGE SQL_OWNER_USAGE
|
889
|
+
#define SQL_SQL92_DATETIME_FUNCTIONS 155
|
890
|
+
#define SQL_SQL92_FOREIGN_KEY_DELETE_RULE 156
|
891
|
+
#define SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 157
|
892
|
+
#define SQL_SQL92_GRANT 158
|
893
|
+
#define SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 159
|
894
|
+
#define SQL_SQL92_PREDICATES 160
|
895
|
+
#define SQL_SQL92_RELATIONAL_JOIN_OPERATORS 161
|
896
|
+
#define SQL_SQL92_REVOKE 162
|
897
|
+
#define SQL_SQL92_ROW_VALUE_CONSTRUCTOR 163
|
898
|
+
#define SQL_SQL92_STRING_FUNCTIONS 164
|
899
|
+
#define SQL_SQL92_VALUE_EXPRESSIONS 165
|
900
|
+
#define SQL_STANDARD_CLI_CONFORMANCE 166
|
901
|
+
#define SQL_STATIC_CURSOR_ATTRIBUTES1 167
|
902
|
+
#define SQL_STATIC_CURSOR_ATTRIBUTES2 168
|
903
|
+
|
904
|
+
#define SQL_AGGREGATE_FUNCTIONS 169
|
905
|
+
#define SQL_DDL_INDEX 170
|
906
|
+
#define SQL_DM_VER 171
|
907
|
+
#define SQL_INSERT_STATEMENT 172
|
908
|
+
#define SQL_CONVERT_GUID 173
|
909
|
+
#define SQL_UNION_STATEMENT SQL_UNION
|
910
|
+
|
911
|
+
#if (ODBCVER >= 0x0380)
|
912
|
+
/* Info Types */
|
913
|
+
#define SQL_ASYNC_DBC_FUNCTIONS 10023
|
914
|
+
#endif /* ODBCVER >= 0x0380 */
|
915
|
+
|
916
|
+
#endif /* ODBCVER >= 0x0300 */
|
917
|
+
|
918
|
+
#define SQL_DTC_TRANSITION_COST 1750
|
919
|
+
|
920
|
+
/* SQL_ALTER_TABLE bitmasks */
|
921
|
+
#if (ODBCVER >= 0x0300)
|
922
|
+
/* the following 5 bitmasks are defined in sql.h
|
923
|
+
*#define SQL_AT_ADD_COLUMN 0x00000001L
|
924
|
+
*#define SQL_AT_DROP_COLUMN 0x00000002L
|
925
|
+
*#define SQL_AT_ADD_CONSTRAINT 0x00000008L
|
926
|
+
*/
|
927
|
+
#define SQL_AT_ADD_COLUMN_SINGLE 0x00000020L
|
928
|
+
#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
|
929
|
+
#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
|
930
|
+
#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
|
931
|
+
#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
|
932
|
+
#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
|
933
|
+
#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
|
934
|
+
#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
|
935
|
+
#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
|
936
|
+
#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
|
937
|
+
#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
|
938
|
+
#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
|
939
|
+
#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
|
940
|
+
#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
|
941
|
+
#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
|
942
|
+
#endif /* ODBCVER >= 0x0300 */
|
943
|
+
|
944
|
+
/* SQL_CONVERT_* return value bitmasks */
|
945
|
+
|
946
|
+
#define SQL_CVT_CHAR 0x00000001L
|
947
|
+
#define SQL_CVT_NUMERIC 0x00000002L
|
948
|
+
#define SQL_CVT_DECIMAL 0x00000004L
|
949
|
+
#define SQL_CVT_INTEGER 0x00000008L
|
950
|
+
#define SQL_CVT_SMALLINT 0x00000010L
|
951
|
+
#define SQL_CVT_FLOAT 0x00000020L
|
952
|
+
#define SQL_CVT_REAL 0x00000040L
|
953
|
+
#define SQL_CVT_DOUBLE 0x00000080L
|
954
|
+
#define SQL_CVT_VARCHAR 0x00000100L
|
955
|
+
#define SQL_CVT_LONGVARCHAR 0x00000200L
|
956
|
+
#define SQL_CVT_BINARY 0x00000400L
|
957
|
+
#define SQL_CVT_VARBINARY 0x00000800L
|
958
|
+
#define SQL_CVT_BIT 0x00001000L
|
959
|
+
#define SQL_CVT_TINYINT 0x00002000L
|
960
|
+
#define SQL_CVT_BIGINT 0x00004000L
|
961
|
+
#define SQL_CVT_DATE 0x00008000L
|
962
|
+
#define SQL_CVT_TIME 0x00010000L
|
963
|
+
#define SQL_CVT_TIMESTAMP 0x00020000L
|
964
|
+
#define SQL_CVT_LONGVARBINARY 0x00040000L
|
965
|
+
#if (ODBCVER >= 0x0300)
|
966
|
+
#define SQL_CVT_INTERVAL_YEAR_MONTH 0x00080000L
|
967
|
+
#define SQL_CVT_INTERVAL_DAY_TIME 0x00100000L
|
968
|
+
#define SQL_CVT_WCHAR 0x00200000L
|
969
|
+
#define SQL_CVT_WLONGVARCHAR 0x00400000L
|
970
|
+
#define SQL_CVT_WVARCHAR 0x00800000L
|
971
|
+
#define SQL_CVT_GUID 0x01000000L
|
972
|
+
|
973
|
+
#endif /* ODBCVER >= 0x0300 */
|
974
|
+
|
975
|
+
|
976
|
+
/* SQL_CONVERT_FUNCTIONS functions */
|
977
|
+
#define SQL_FN_CVT_CONVERT 0x00000001L
|
978
|
+
#if (ODBCVER >= 0x0300)
|
979
|
+
#define SQL_FN_CVT_CAST 0x00000002L
|
980
|
+
#endif /* ODBCVER >= 0x0300 */
|
981
|
+
|
982
|
+
|
983
|
+
/* SQL_STRING_FUNCTIONS functions */
|
984
|
+
|
985
|
+
#define SQL_FN_STR_CONCAT 0x00000001L
|
986
|
+
#define SQL_FN_STR_INSERT 0x00000002L
|
987
|
+
#define SQL_FN_STR_LEFT 0x00000004L
|
988
|
+
#define SQL_FN_STR_LTRIM 0x00000008L
|
989
|
+
#define SQL_FN_STR_LENGTH 0x00000010L
|
990
|
+
#define SQL_FN_STR_LOCATE 0x00000020L
|
991
|
+
#define SQL_FN_STR_LCASE 0x00000040L
|
992
|
+
#define SQL_FN_STR_REPEAT 0x00000080L
|
993
|
+
#define SQL_FN_STR_REPLACE 0x00000100L
|
994
|
+
#define SQL_FN_STR_RIGHT 0x00000200L
|
995
|
+
#define SQL_FN_STR_RTRIM 0x00000400L
|
996
|
+
#define SQL_FN_STR_SUBSTRING 0x00000800L
|
997
|
+
#define SQL_FN_STR_UCASE 0x00001000L
|
998
|
+
#define SQL_FN_STR_ASCII 0x00002000L
|
999
|
+
#define SQL_FN_STR_CHAR 0x00004000L
|
1000
|
+
#define SQL_FN_STR_DIFFERENCE 0x00008000L
|
1001
|
+
#define SQL_FN_STR_LOCATE_2 0x00010000L
|
1002
|
+
#define SQL_FN_STR_SOUNDEX 0x00020000L
|
1003
|
+
#define SQL_FN_STR_SPACE 0x00040000L
|
1004
|
+
#if (ODBCVER >= 0x0300)
|
1005
|
+
#define SQL_FN_STR_BIT_LENGTH 0x00080000L
|
1006
|
+
#define SQL_FN_STR_CHAR_LENGTH 0x00100000L
|
1007
|
+
#define SQL_FN_STR_CHARACTER_LENGTH 0x00200000L
|
1008
|
+
#define SQL_FN_STR_OCTET_LENGTH 0x00400000L
|
1009
|
+
#define SQL_FN_STR_POSITION 0x00800000L
|
1010
|
+
#endif /* ODBCVER >= 0x0300 */
|
1011
|
+
|
1012
|
+
/* SQL_SQL92_STRING_FUNCTIONS */
|
1013
|
+
#if (ODBCVER >= 0x0300)
|
1014
|
+
#define SQL_SSF_CONVERT 0x00000001L
|
1015
|
+
#define SQL_SSF_LOWER 0x00000002L
|
1016
|
+
#define SQL_SSF_UPPER 0x00000004L
|
1017
|
+
#define SQL_SSF_SUBSTRING 0x00000008L
|
1018
|
+
#define SQL_SSF_TRANSLATE 0x00000010L
|
1019
|
+
#define SQL_SSF_TRIM_BOTH 0x00000020L
|
1020
|
+
#define SQL_SSF_TRIM_LEADING 0x00000040L
|
1021
|
+
#define SQL_SSF_TRIM_TRAILING 0x00000080L
|
1022
|
+
#endif /* ODBCVER >= 0x0300 */
|
1023
|
+
|
1024
|
+
/* SQL_NUMERIC_FUNCTIONS functions */
|
1025
|
+
|
1026
|
+
#define SQL_FN_NUM_ABS 0x00000001L
|
1027
|
+
#define SQL_FN_NUM_ACOS 0x00000002L
|
1028
|
+
#define SQL_FN_NUM_ASIN 0x00000004L
|
1029
|
+
#define SQL_FN_NUM_ATAN 0x00000008L
|
1030
|
+
#define SQL_FN_NUM_ATAN2 0x00000010L
|
1031
|
+
#define SQL_FN_NUM_CEILING 0x00000020L
|
1032
|
+
#define SQL_FN_NUM_COS 0x00000040L
|
1033
|
+
#define SQL_FN_NUM_COT 0x00000080L
|
1034
|
+
#define SQL_FN_NUM_EXP 0x00000100L
|
1035
|
+
#define SQL_FN_NUM_FLOOR 0x00000200L
|
1036
|
+
#define SQL_FN_NUM_LOG 0x00000400L
|
1037
|
+
#define SQL_FN_NUM_MOD 0x00000800L
|
1038
|
+
#define SQL_FN_NUM_SIGN 0x00001000L
|
1039
|
+
#define SQL_FN_NUM_SIN 0x00002000L
|
1040
|
+
#define SQL_FN_NUM_SQRT 0x00004000L
|
1041
|
+
#define SQL_FN_NUM_TAN 0x00008000L
|
1042
|
+
#define SQL_FN_NUM_PI 0x00010000L
|
1043
|
+
#define SQL_FN_NUM_RAND 0x00020000L
|
1044
|
+
#define SQL_FN_NUM_DEGREES 0x00040000L
|
1045
|
+
#define SQL_FN_NUM_LOG10 0x00080000L
|
1046
|
+
#define SQL_FN_NUM_POWER 0x00100000L
|
1047
|
+
#define SQL_FN_NUM_RADIANS 0x00200000L
|
1048
|
+
#define SQL_FN_NUM_ROUND 0x00400000L
|
1049
|
+
#define SQL_FN_NUM_TRUNCATE 0x00800000L
|
1050
|
+
|
1051
|
+
/* SQL_SQL92_NUMERIC_VALUE_FUNCTIONS */
|
1052
|
+
#if (ODBCVER >= 0x0300)
|
1053
|
+
#define SQL_SNVF_BIT_LENGTH 0x00000001L
|
1054
|
+
#define SQL_SNVF_CHAR_LENGTH 0x00000002L
|
1055
|
+
#define SQL_SNVF_CHARACTER_LENGTH 0x00000004L
|
1056
|
+
#define SQL_SNVF_EXTRACT 0x00000008L
|
1057
|
+
#define SQL_SNVF_OCTET_LENGTH 0x00000010L
|
1058
|
+
#define SQL_SNVF_POSITION 0x00000020L
|
1059
|
+
#endif /* ODBCVER >= 0x0300 */
|
1060
|
+
|
1061
|
+
/* SQL_TIMEDATE_FUNCTIONS functions */
|
1062
|
+
|
1063
|
+
#define SQL_FN_TD_NOW 0x00000001L
|
1064
|
+
#define SQL_FN_TD_CURDATE 0x00000002L
|
1065
|
+
#define SQL_FN_TD_DAYOFMONTH 0x00000004L
|
1066
|
+
#define SQL_FN_TD_DAYOFWEEK 0x00000008L
|
1067
|
+
#define SQL_FN_TD_DAYOFYEAR 0x00000010L
|
1068
|
+
#define SQL_FN_TD_MONTH 0x00000020L
|
1069
|
+
#define SQL_FN_TD_QUARTER 0x00000040L
|
1070
|
+
#define SQL_FN_TD_WEEK 0x00000080L
|
1071
|
+
#define SQL_FN_TD_YEAR 0x00000100L
|
1072
|
+
#define SQL_FN_TD_CURTIME 0x00000200L
|
1073
|
+
#define SQL_FN_TD_HOUR 0x00000400L
|
1074
|
+
#define SQL_FN_TD_MINUTE 0x00000800L
|
1075
|
+
#define SQL_FN_TD_SECOND 0x00001000L
|
1076
|
+
#define SQL_FN_TD_TIMESTAMPADD 0x00002000L
|
1077
|
+
#define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L
|
1078
|
+
#define SQL_FN_TD_DAYNAME 0x00008000L
|
1079
|
+
#define SQL_FN_TD_MONTHNAME 0x00010000L
|
1080
|
+
#if (ODBCVER >= 0x0300)
|
1081
|
+
#define SQL_FN_TD_CURRENT_DATE 0x00020000L
|
1082
|
+
#define SQL_FN_TD_CURRENT_TIME 0x00040000L
|
1083
|
+
#define SQL_FN_TD_CURRENT_TIMESTAMP 0x00080000L
|
1084
|
+
#define SQL_FN_TD_EXTRACT 0x00100000L
|
1085
|
+
#endif /* ODBCVER >= 0x0300 */
|
1086
|
+
|
1087
|
+
/* SQL_SQL92_DATETIME_FUNCTIONS */
|
1088
|
+
#if (ODBCVER >= 0x0300)
|
1089
|
+
#define SQL_SDF_CURRENT_DATE 0x00000001L
|
1090
|
+
#define SQL_SDF_CURRENT_TIME 0x00000002L
|
1091
|
+
#define SQL_SDF_CURRENT_TIMESTAMP 0x00000004L
|
1092
|
+
#endif /* ODBCVER >= 0x0300 */
|
1093
|
+
|
1094
|
+
/* SQL_SYSTEM_FUNCTIONS functions */
|
1095
|
+
|
1096
|
+
#define SQL_FN_SYS_USERNAME 0x00000001L
|
1097
|
+
#define SQL_FN_SYS_DBNAME 0x00000002L
|
1098
|
+
#define SQL_FN_SYS_IFNULL 0x00000004L
|
1099
|
+
|
1100
|
+
/* SQL_TIMEDATE_ADD_INTERVALS and SQL_TIMEDATE_DIFF_INTERVALS functions */
|
1101
|
+
|
1102
|
+
#define SQL_FN_TSI_FRAC_SECOND 0x00000001L
|
1103
|
+
#define SQL_FN_TSI_SECOND 0x00000002L
|
1104
|
+
#define SQL_FN_TSI_MINUTE 0x00000004L
|
1105
|
+
#define SQL_FN_TSI_HOUR 0x00000008L
|
1106
|
+
#define SQL_FN_TSI_DAY 0x00000010L
|
1107
|
+
#define SQL_FN_TSI_WEEK 0x00000020L
|
1108
|
+
#define SQL_FN_TSI_MONTH 0x00000040L
|
1109
|
+
#define SQL_FN_TSI_QUARTER 0x00000080L
|
1110
|
+
#define SQL_FN_TSI_YEAR 0x00000100L
|
1111
|
+
|
1112
|
+
/* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES1,
|
1113
|
+
* SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1,
|
1114
|
+
* SQL_KEYSET_CURSOR_ATTRIBUTES1, and SQL_STATIC_CURSOR_ATTRIBUTES1
|
1115
|
+
*/
|
1116
|
+
#if (ODBCVER >= 0x0300)
|
1117
|
+
/* supported SQLFetchScroll FetchOrientation's */
|
1118
|
+
#define SQL_CA1_NEXT 0x00000001L
|
1119
|
+
#define SQL_CA1_ABSOLUTE 0x00000002L
|
1120
|
+
#define SQL_CA1_RELATIVE 0x00000004L
|
1121
|
+
#define SQL_CA1_BOOKMARK 0x00000008L
|
1122
|
+
|
1123
|
+
/* supported SQLSetPos LockType's */
|
1124
|
+
#define SQL_CA1_LOCK_NO_CHANGE 0x00000040L
|
1125
|
+
#define SQL_CA1_LOCK_EXCLUSIVE 0x00000080L
|
1126
|
+
#define SQL_CA1_LOCK_UNLOCK 0x00000100L
|
1127
|
+
|
1128
|
+
/* supported SQLSetPos Operations */
|
1129
|
+
#define SQL_CA1_POS_POSITION 0x00000200L
|
1130
|
+
#define SQL_CA1_POS_UPDATE 0x00000400L
|
1131
|
+
#define SQL_CA1_POS_DELETE 0x00000800L
|
1132
|
+
#define SQL_CA1_POS_REFRESH 0x00001000L
|
1133
|
+
|
1134
|
+
/* positioned updates and deletes */
|
1135
|
+
#define SQL_CA1_POSITIONED_UPDATE 0x00002000L
|
1136
|
+
#define SQL_CA1_POSITIONED_DELETE 0x00004000L
|
1137
|
+
#define SQL_CA1_SELECT_FOR_UPDATE 0x00008000L
|
1138
|
+
|
1139
|
+
/* supported SQLBulkOperations operations */
|
1140
|
+
#define SQL_CA1_BULK_ADD 0x00010000L
|
1141
|
+
#define SQL_CA1_BULK_UPDATE_BY_BOOKMARK 0x00020000L
|
1142
|
+
#define SQL_CA1_BULK_DELETE_BY_BOOKMARK 0x00040000L
|
1143
|
+
#define SQL_CA1_BULK_FETCH_BY_BOOKMARK 0x00080000L
|
1144
|
+
#endif /* ODBCVER >= 0x0300 */
|
1145
|
+
|
1146
|
+
/* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES2,
|
1147
|
+
* SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2,
|
1148
|
+
* SQL_KEYSET_CURSOR_ATTRIBUTES2, and SQL_STATIC_CURSOR_ATTRIBUTES2
|
1149
|
+
*/
|
1150
|
+
#if (ODBCVER >= 0x0300)
|
1151
|
+
/* supported values for SQL_ATTR_SCROLL_CONCURRENCY */
|
1152
|
+
#define SQL_CA2_READ_ONLY_CONCURRENCY 0x00000001L
|
1153
|
+
#define SQL_CA2_LOCK_CONCURRENCY 0x00000002L
|
1154
|
+
#define SQL_CA2_OPT_ROWVER_CONCURRENCY 0x00000004L
|
1155
|
+
#define SQL_CA2_OPT_VALUES_CONCURRENCY 0x00000008L
|
1156
|
+
|
1157
|
+
/* sensitivity of the cursor to its own inserts, deletes, and updates */
|
1158
|
+
#define SQL_CA2_SENSITIVITY_ADDITIONS 0x00000010L
|
1159
|
+
#define SQL_CA2_SENSITIVITY_DELETIONS 0x00000020L
|
1160
|
+
#define SQL_CA2_SENSITIVITY_UPDATES 0x00000040L
|
1161
|
+
|
1162
|
+
/* semantics of SQL_ATTR_MAX_ROWS */
|
1163
|
+
#define SQL_CA2_MAX_ROWS_SELECT 0x00000080L
|
1164
|
+
#define SQL_CA2_MAX_ROWS_INSERT 0x00000100L
|
1165
|
+
#define SQL_CA2_MAX_ROWS_DELETE 0x00000200L
|
1166
|
+
#define SQL_CA2_MAX_ROWS_UPDATE 0x00000400L
|
1167
|
+
#define SQL_CA2_MAX_ROWS_CATALOG 0x00000800L
|
1168
|
+
#define SQL_CA2_MAX_ROWS_AFFECTS_ALL (SQL_CA2_MAX_ROWS_SELECT | \
|
1169
|
+
SQL_CA2_MAX_ROWS_INSERT | SQL_CA2_MAX_ROWS_DELETE | \
|
1170
|
+
SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG)
|
1171
|
+
|
1172
|
+
/* semantics of SQL_DIAG_CURSOR_ROW_COUNT */
|
1173
|
+
#define SQL_CA2_CRC_EXACT 0x00001000L
|
1174
|
+
#define SQL_CA2_CRC_APPROXIMATE 0x00002000L
|
1175
|
+
|
1176
|
+
/* the kinds of positioned statements that can be simulated */
|
1177
|
+
#define SQL_CA2_SIMULATE_NON_UNIQUE 0x00004000L
|
1178
|
+
#define SQL_CA2_SIMULATE_TRY_UNIQUE 0x00008000L
|
1179
|
+
#define SQL_CA2_SIMULATE_UNIQUE 0x00010000L
|
1180
|
+
#endif /* ODBCVER >= 0x0300 */
|
1181
|
+
|
1182
|
+
/* SQL_ODBC_API_CONFORMANCE values */
|
1183
|
+
|
1184
|
+
#define SQL_OAC_NONE 0x0000
|
1185
|
+
#define SQL_OAC_LEVEL1 0x0001
|
1186
|
+
#define SQL_OAC_LEVEL2 0x0002
|
1187
|
+
|
1188
|
+
/* SQL_ODBC_SAG_CLI_CONFORMANCE values */
|
1189
|
+
|
1190
|
+
#define SQL_OSCC_NOT_COMPLIANT 0x0000
|
1191
|
+
#define SQL_OSCC_COMPLIANT 0x0001
|
1192
|
+
|
1193
|
+
/* SQL_ODBC_SQL_CONFORMANCE values */
|
1194
|
+
|
1195
|
+
#define SQL_OSC_MINIMUM 0x0000
|
1196
|
+
#define SQL_OSC_CORE 0x0001
|
1197
|
+
#define SQL_OSC_EXTENDED 0x0002
|
1198
|
+
|
1199
|
+
|
1200
|
+
/* SQL_CONCAT_NULL_BEHAVIOR values */
|
1201
|
+
|
1202
|
+
#define SQL_CB_NULL 0x0000
|
1203
|
+
#define SQL_CB_NON_NULL 0x0001
|
1204
|
+
|
1205
|
+
/* SQL_SCROLL_OPTIONS masks */
|
1206
|
+
|
1207
|
+
#define SQL_SO_FORWARD_ONLY 0x00000001L
|
1208
|
+
#define SQL_SO_KEYSET_DRIVEN 0x00000002L
|
1209
|
+
#define SQL_SO_DYNAMIC 0x00000004L
|
1210
|
+
#define SQL_SO_MIXED 0x00000008L
|
1211
|
+
#define SQL_SO_STATIC 0x00000010L
|
1212
|
+
|
1213
|
+
/* SQL_FETCH_DIRECTION masks */
|
1214
|
+
|
1215
|
+
/* SQL_FETCH_RESUME is no longer supported
|
1216
|
+
#define SQL_FD_FETCH_RESUME 0x00000040L
|
1217
|
+
*/
|
1218
|
+
#define SQL_FD_FETCH_BOOKMARK 0x00000080L
|
1219
|
+
|
1220
|
+
/* SQL_TXN_ISOLATION_OPTION masks */
|
1221
|
+
/* SQL_TXN_VERSIONING is no longer supported
|
1222
|
+
#define SQL_TXN_VERSIONING 0x00000010L
|
1223
|
+
*/
|
1224
|
+
|
1225
|
+
/* SQL_CORRELATION_NAME values */
|
1226
|
+
|
1227
|
+
#define SQL_CN_NONE 0x0000
|
1228
|
+
#define SQL_CN_DIFFERENT 0x0001
|
1229
|
+
#define SQL_CN_ANY 0x0002
|
1230
|
+
|
1231
|
+
/* SQL_NON_NULLABLE_COLUMNS values */
|
1232
|
+
|
1233
|
+
#define SQL_NNC_NULL 0x0000
|
1234
|
+
#define SQL_NNC_NON_NULL 0x0001
|
1235
|
+
|
1236
|
+
/* SQL_NULL_COLLATION values */
|
1237
|
+
|
1238
|
+
#define SQL_NC_START 0x0002
|
1239
|
+
#define SQL_NC_END 0x0004
|
1240
|
+
|
1241
|
+
/* SQL_FILE_USAGE values */
|
1242
|
+
|
1243
|
+
#define SQL_FILE_NOT_SUPPORTED 0x0000
|
1244
|
+
#define SQL_FILE_TABLE 0x0001
|
1245
|
+
#define SQL_FILE_QUALIFIER 0x0002
|
1246
|
+
#define SQL_FILE_CATALOG SQL_FILE_QUALIFIER /* ODBC 3.0 */
|
1247
|
+
|
1248
|
+
|
1249
|
+
/* SQL_GETDATA_EXTENSIONS values */
|
1250
|
+
|
1251
|
+
#define SQL_GD_BLOCK 0x00000004L
|
1252
|
+
#define SQL_GD_BOUND 0x00000008L
|
1253
|
+
#if (ODBCVER >= 0x0380)
|
1254
|
+
#define SQL_GD_OUTPUT_PARAMS 0x00000010L
|
1255
|
+
#endif
|
1256
|
+
|
1257
|
+
/* SQL_POSITIONED_STATEMENTS masks */
|
1258
|
+
|
1259
|
+
#define SQL_PS_POSITIONED_DELETE 0x00000001L
|
1260
|
+
#define SQL_PS_POSITIONED_UPDATE 0x00000002L
|
1261
|
+
#define SQL_PS_SELECT_FOR_UPDATE 0x00000004L
|
1262
|
+
|
1263
|
+
/* SQL_GROUP_BY values */
|
1264
|
+
|
1265
|
+
#define SQL_GB_NOT_SUPPORTED 0x0000
|
1266
|
+
#define SQL_GB_GROUP_BY_EQUALS_SELECT 0x0001
|
1267
|
+
#define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002
|
1268
|
+
#define SQL_GB_NO_RELATION 0x0003
|
1269
|
+
#if (ODBCVER >= 0x0300)
|
1270
|
+
#define SQL_GB_COLLATE 0x0004
|
1271
|
+
|
1272
|
+
#endif /* ODBCVER >= 0x0300 */
|
1273
|
+
|
1274
|
+
/* SQL_OWNER_USAGE masks */
|
1275
|
+
|
1276
|
+
#define SQL_OU_DML_STATEMENTS 0x00000001L
|
1277
|
+
#define SQL_OU_PROCEDURE_INVOCATION 0x00000002L
|
1278
|
+
#define SQL_OU_TABLE_DEFINITION 0x00000004L
|
1279
|
+
#define SQL_OU_INDEX_DEFINITION 0x00000008L
|
1280
|
+
#define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L
|
1281
|
+
|
1282
|
+
/* SQL_SCHEMA_USAGE masks */
|
1283
|
+
#if (ODBCVER >= 0x0300)
|
1284
|
+
#define SQL_SU_DML_STATEMENTS SQL_OU_DML_STATEMENTS
|
1285
|
+
#define SQL_SU_PROCEDURE_INVOCATION SQL_OU_PROCEDURE_INVOCATION
|
1286
|
+
#define SQL_SU_TABLE_DEFINITION SQL_OU_TABLE_DEFINITION
|
1287
|
+
#define SQL_SU_INDEX_DEFINITION SQL_OU_INDEX_DEFINITION
|
1288
|
+
#define SQL_SU_PRIVILEGE_DEFINITION SQL_OU_PRIVILEGE_DEFINITION
|
1289
|
+
#endif /* ODBCVER >= 0x0300 */
|
1290
|
+
|
1291
|
+
/* SQL_QUALIFIER_USAGE masks */
|
1292
|
+
|
1293
|
+
#define SQL_QU_DML_STATEMENTS 0x00000001L
|
1294
|
+
#define SQL_QU_PROCEDURE_INVOCATION 0x00000002L
|
1295
|
+
#define SQL_QU_TABLE_DEFINITION 0x00000004L
|
1296
|
+
#define SQL_QU_INDEX_DEFINITION 0x00000008L
|
1297
|
+
#define SQL_QU_PRIVILEGE_DEFINITION 0x00000010L
|
1298
|
+
|
1299
|
+
#if (ODBCVER >= 0x0300)
|
1300
|
+
/* SQL_CATALOG_USAGE masks */
|
1301
|
+
#define SQL_CU_DML_STATEMENTS SQL_QU_DML_STATEMENTS
|
1302
|
+
#define SQL_CU_PROCEDURE_INVOCATION SQL_QU_PROCEDURE_INVOCATION
|
1303
|
+
#define SQL_CU_TABLE_DEFINITION SQL_QU_TABLE_DEFINITION
|
1304
|
+
#define SQL_CU_INDEX_DEFINITION SQL_QU_INDEX_DEFINITION
|
1305
|
+
#define SQL_CU_PRIVILEGE_DEFINITION SQL_QU_PRIVILEGE_DEFINITION
|
1306
|
+
#endif /* ODBCVER >= 0x0300 */
|
1307
|
+
|
1308
|
+
/* SQL_SUBQUERIES masks */
|
1309
|
+
|
1310
|
+
#define SQL_SQ_COMPARISON 0x00000001L
|
1311
|
+
#define SQL_SQ_EXISTS 0x00000002L
|
1312
|
+
#define SQL_SQ_IN 0x00000004L
|
1313
|
+
#define SQL_SQ_QUANTIFIED 0x00000008L
|
1314
|
+
#define SQL_SQ_CORRELATED_SUBQUERIES 0x00000010L
|
1315
|
+
|
1316
|
+
/* SQL_UNION masks */
|
1317
|
+
|
1318
|
+
#define SQL_U_UNION 0x00000001L
|
1319
|
+
#define SQL_U_UNION_ALL 0x00000002L
|
1320
|
+
|
1321
|
+
/* SQL_BOOKMARK_PERSISTENCE values */
|
1322
|
+
|
1323
|
+
#define SQL_BP_CLOSE 0x00000001L
|
1324
|
+
#define SQL_BP_DELETE 0x00000002L
|
1325
|
+
#define SQL_BP_DROP 0x00000004L
|
1326
|
+
#define SQL_BP_TRANSACTION 0x00000008L
|
1327
|
+
#define SQL_BP_UPDATE 0x00000010L
|
1328
|
+
#define SQL_BP_OTHER_HSTMT 0x00000020L
|
1329
|
+
#define SQL_BP_SCROLL 0x00000040L
|
1330
|
+
|
1331
|
+
/* SQL_STATIC_SENSITIVITY values */
|
1332
|
+
|
1333
|
+
#define SQL_SS_ADDITIONS 0x00000001L
|
1334
|
+
#define SQL_SS_DELETIONS 0x00000002L
|
1335
|
+
#define SQL_SS_UPDATES 0x00000004L
|
1336
|
+
|
1337
|
+
/* SQL_VIEW values */
|
1338
|
+
#define SQL_CV_CREATE_VIEW 0x00000001L
|
1339
|
+
#define SQL_CV_CHECK_OPTION 0x00000002L
|
1340
|
+
#define SQL_CV_CASCADED 0x00000004L
|
1341
|
+
#define SQL_CV_LOCAL 0x00000008L
|
1342
|
+
|
1343
|
+
/* SQL_LOCK_TYPES masks */
|
1344
|
+
|
1345
|
+
#define SQL_LCK_NO_CHANGE 0x00000001L
|
1346
|
+
#define SQL_LCK_EXCLUSIVE 0x00000002L
|
1347
|
+
#define SQL_LCK_UNLOCK 0x00000004L
|
1348
|
+
|
1349
|
+
/* SQL_POS_OPERATIONS masks */
|
1350
|
+
|
1351
|
+
#define SQL_POS_POSITION 0x00000001L
|
1352
|
+
#define SQL_POS_REFRESH 0x00000002L
|
1353
|
+
#define SQL_POS_UPDATE 0x00000004L
|
1354
|
+
#define SQL_POS_DELETE 0x00000008L
|
1355
|
+
#define SQL_POS_ADD 0x00000010L
|
1356
|
+
|
1357
|
+
/* SQL_QUALIFIER_LOCATION values */
|
1358
|
+
|
1359
|
+
#define SQL_QL_START 0x0001
|
1360
|
+
#define SQL_QL_END 0x0002
|
1361
|
+
|
1362
|
+
/* Here start return values for ODBC 3.0 SQLGetInfo */
|
1363
|
+
|
1364
|
+
#if (ODBCVER >= 0x0300)
|
1365
|
+
/* SQL_AGGREGATE_FUNCTIONS bitmasks */
|
1366
|
+
#define SQL_AF_AVG 0x00000001L
|
1367
|
+
#define SQL_AF_COUNT 0x00000002L
|
1368
|
+
#define SQL_AF_MAX 0x00000004L
|
1369
|
+
#define SQL_AF_MIN 0x00000008L
|
1370
|
+
#define SQL_AF_SUM 0x00000010L
|
1371
|
+
#define SQL_AF_DISTINCT 0x00000020L
|
1372
|
+
#define SQL_AF_ALL 0x00000040L
|
1373
|
+
|
1374
|
+
/* SQL_SQL_CONFORMANCE bit masks */
|
1375
|
+
#define SQL_SC_SQL92_ENTRY 0x00000001L
|
1376
|
+
#define SQL_SC_FIPS127_2_TRANSITIONAL 0x00000002L
|
1377
|
+
#define SQL_SC_SQL92_INTERMEDIATE 0x00000004L
|
1378
|
+
#define SQL_SC_SQL92_FULL 0x00000008L
|
1379
|
+
|
1380
|
+
/* SQL_DATETIME_LITERALS masks */
|
1381
|
+
#define SQL_DL_SQL92_DATE 0x00000001L
|
1382
|
+
#define SQL_DL_SQL92_TIME 0x00000002L
|
1383
|
+
#define SQL_DL_SQL92_TIMESTAMP 0x00000004L
|
1384
|
+
#define SQL_DL_SQL92_INTERVAL_YEAR 0x00000008L
|
1385
|
+
#define SQL_DL_SQL92_INTERVAL_MONTH 0x00000010L
|
1386
|
+
#define SQL_DL_SQL92_INTERVAL_DAY 0x00000020L
|
1387
|
+
#define SQL_DL_SQL92_INTERVAL_HOUR 0x00000040L
|
1388
|
+
#define SQL_DL_SQL92_INTERVAL_MINUTE 0x00000080L
|
1389
|
+
#define SQL_DL_SQL92_INTERVAL_SECOND 0x00000100L
|
1390
|
+
#define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH 0x00000200L
|
1391
|
+
#define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR 0x00000400L
|
1392
|
+
#define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE 0x00000800L
|
1393
|
+
#define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND 0x00001000L
|
1394
|
+
#define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE 0x00002000L
|
1395
|
+
#define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND 0x00004000L
|
1396
|
+
#define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND 0x00008000L
|
1397
|
+
|
1398
|
+
/* SQL_CATALOG_LOCATION values */
|
1399
|
+
#define SQL_CL_START SQL_QL_START
|
1400
|
+
#define SQL_CL_END SQL_QL_END
|
1401
|
+
|
1402
|
+
/* values for SQL_BATCH_ROW_COUNT */
|
1403
|
+
#define SQL_BRC_PROCEDURES 0x0000001
|
1404
|
+
#define SQL_BRC_EXPLICIT 0x0000002
|
1405
|
+
#define SQL_BRC_ROLLED_UP 0x0000004
|
1406
|
+
|
1407
|
+
/* bitmasks for SQL_BATCH_SUPPORT */
|
1408
|
+
#define SQL_BS_SELECT_EXPLICIT 0x00000001L
|
1409
|
+
#define SQL_BS_ROW_COUNT_EXPLICIT 0x00000002L
|
1410
|
+
#define SQL_BS_SELECT_PROC 0x00000004L
|
1411
|
+
#define SQL_BS_ROW_COUNT_PROC 0x00000008L
|
1412
|
+
|
1413
|
+
/* Values for SQL_PARAM_ARRAY_ROW_COUNTS getinfo */
|
1414
|
+
#define SQL_PARC_BATCH 1
|
1415
|
+
#define SQL_PARC_NO_BATCH 2
|
1416
|
+
|
1417
|
+
/* values for SQL_PARAM_ARRAY_SELECTS */
|
1418
|
+
#define SQL_PAS_BATCH 1
|
1419
|
+
#define SQL_PAS_NO_BATCH 2
|
1420
|
+
#define SQL_PAS_NO_SELECT 3
|
1421
|
+
|
1422
|
+
/* Bitmasks for SQL_INDEX_KEYWORDS */
|
1423
|
+
#define SQL_IK_NONE 0x00000000L
|
1424
|
+
#define SQL_IK_ASC 0x00000001L
|
1425
|
+
#define SQL_IK_DESC 0x00000002L
|
1426
|
+
#define SQL_IK_ALL (SQL_IK_ASC | SQL_IK_DESC)
|
1427
|
+
|
1428
|
+
/* Bitmasks for SQL_INFO_SCHEMA_VIEWS */
|
1429
|
+
|
1430
|
+
#define SQL_ISV_ASSERTIONS 0x00000001L
|
1431
|
+
#define SQL_ISV_CHARACTER_SETS 0x00000002L
|
1432
|
+
#define SQL_ISV_CHECK_CONSTRAINTS 0x00000004L
|
1433
|
+
#define SQL_ISV_COLLATIONS 0x00000008L
|
1434
|
+
#define SQL_ISV_COLUMN_DOMAIN_USAGE 0x00000010L
|
1435
|
+
#define SQL_ISV_COLUMN_PRIVILEGES 0x00000020L
|
1436
|
+
#define SQL_ISV_COLUMNS 0x00000040L
|
1437
|
+
#define SQL_ISV_CONSTRAINT_COLUMN_USAGE 0x00000080L
|
1438
|
+
#define SQL_ISV_CONSTRAINT_TABLE_USAGE 0x00000100L
|
1439
|
+
#define SQL_ISV_DOMAIN_CONSTRAINTS 0x00000200L
|
1440
|
+
#define SQL_ISV_DOMAINS 0x00000400L
|
1441
|
+
#define SQL_ISV_KEY_COLUMN_USAGE 0x00000800L
|
1442
|
+
#define SQL_ISV_REFERENTIAL_CONSTRAINTS 0x00001000L
|
1443
|
+
#define SQL_ISV_SCHEMATA 0x00002000L
|
1444
|
+
#define SQL_ISV_SQL_LANGUAGES 0x00004000L
|
1445
|
+
#define SQL_ISV_TABLE_CONSTRAINTS 0x00008000L
|
1446
|
+
#define SQL_ISV_TABLE_PRIVILEGES 0x00010000L
|
1447
|
+
#define SQL_ISV_TABLES 0x00020000L
|
1448
|
+
#define SQL_ISV_TRANSLATIONS 0x00040000L
|
1449
|
+
#define SQL_ISV_USAGE_PRIVILEGES 0x00080000L
|
1450
|
+
#define SQL_ISV_VIEW_COLUMN_USAGE 0x00100000L
|
1451
|
+
#define SQL_ISV_VIEW_TABLE_USAGE 0x00200000L
|
1452
|
+
#define SQL_ISV_VIEWS 0x00400000L
|
1453
|
+
|
1454
|
+
/* Bitmasks for SQL_ASYNC_MODE */
|
1455
|
+
|
1456
|
+
#define SQL_AM_NONE 0
|
1457
|
+
#define SQL_AM_CONNECTION 1
|
1458
|
+
#define SQL_AM_STATEMENT 2
|
1459
|
+
|
1460
|
+
/* Bitmasks for SQL_ALTER_DOMAIN */
|
1461
|
+
#define SQL_AD_CONSTRAINT_NAME_DEFINITION 0x00000001L
|
1462
|
+
#define SQL_AD_ADD_DOMAIN_CONSTRAINT 0x00000002L
|
1463
|
+
#define SQL_AD_DROP_DOMAIN_CONSTRAINT 0x00000004L
|
1464
|
+
#define SQL_AD_ADD_DOMAIN_DEFAULT 0x00000008L
|
1465
|
+
#define SQL_AD_DROP_DOMAIN_DEFAULT 0x00000010L
|
1466
|
+
#define SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
|
1467
|
+
#define SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
|
1468
|
+
#define SQL_AD_ADD_CONSTRAINT_DEFERRABLE 0x00000080L
|
1469
|
+
#define SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE 0x00000100L
|
1470
|
+
|
1471
|
+
|
1472
|
+
/* SQL_CREATE_SCHEMA bitmasks */
|
1473
|
+
#define SQL_CS_CREATE_SCHEMA 0x00000001L
|
1474
|
+
#define SQL_CS_AUTHORIZATION 0x00000002L
|
1475
|
+
#define SQL_CS_DEFAULT_CHARACTER_SET 0x00000004L
|
1476
|
+
|
1477
|
+
/* SQL_CREATE_TRANSLATION bitmasks */
|
1478
|
+
#define SQL_CTR_CREATE_TRANSLATION 0x00000001L
|
1479
|
+
|
1480
|
+
/* SQL_CREATE_ASSERTION bitmasks */
|
1481
|
+
#define SQL_CA_CREATE_ASSERTION 0x00000001L
|
1482
|
+
#define SQL_CA_CONSTRAINT_INITIALLY_DEFERRED 0x00000010L
|
1483
|
+
#define SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000020L
|
1484
|
+
#define SQL_CA_CONSTRAINT_DEFERRABLE 0x00000040L
|
1485
|
+
#define SQL_CA_CONSTRAINT_NON_DEFERRABLE 0x00000080L
|
1486
|
+
|
1487
|
+
/* SQL_CREATE_CHARACTER_SET bitmasks */
|
1488
|
+
#define SQL_CCS_CREATE_CHARACTER_SET 0x00000001L
|
1489
|
+
#define SQL_CCS_COLLATE_CLAUSE 0x00000002L
|
1490
|
+
#define SQL_CCS_LIMITED_COLLATION 0x00000004L
|
1491
|
+
|
1492
|
+
/* SQL_CREATE_COLLATION bitmasks */
|
1493
|
+
#define SQL_CCOL_CREATE_COLLATION 0x00000001L
|
1494
|
+
|
1495
|
+
/* SQL_CREATE_DOMAIN bitmasks */
|
1496
|
+
#define SQL_CDO_CREATE_DOMAIN 0x00000001L
|
1497
|
+
#define SQL_CDO_DEFAULT 0x00000002L
|
1498
|
+
#define SQL_CDO_CONSTRAINT 0x00000004L
|
1499
|
+
#define SQL_CDO_COLLATION 0x00000008L
|
1500
|
+
#define SQL_CDO_CONSTRAINT_NAME_DEFINITION 0x00000010L
|
1501
|
+
#define SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
|
1502
|
+
#define SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
|
1503
|
+
#define SQL_CDO_CONSTRAINT_DEFERRABLE 0x00000080L
|
1504
|
+
#define SQL_CDO_CONSTRAINT_NON_DEFERRABLE 0x00000100L
|
1505
|
+
|
1506
|
+
/* SQL_CREATE_TABLE bitmasks */
|
1507
|
+
#define SQL_CT_CREATE_TABLE 0x00000001L
|
1508
|
+
#define SQL_CT_COMMIT_PRESERVE 0x00000002L
|
1509
|
+
#define SQL_CT_COMMIT_DELETE 0x00000004L
|
1510
|
+
#define SQL_CT_GLOBAL_TEMPORARY 0x00000008L
|
1511
|
+
#define SQL_CT_LOCAL_TEMPORARY 0x00000010L
|
1512
|
+
#define SQL_CT_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
|
1513
|
+
#define SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
|
1514
|
+
#define SQL_CT_CONSTRAINT_DEFERRABLE 0x00000080L
|
1515
|
+
#define SQL_CT_CONSTRAINT_NON_DEFERRABLE 0x00000100L
|
1516
|
+
#define SQL_CT_COLUMN_CONSTRAINT 0x00000200L
|
1517
|
+
#define SQL_CT_COLUMN_DEFAULT 0x00000400L
|
1518
|
+
#define SQL_CT_COLUMN_COLLATION 0x00000800L
|
1519
|
+
#define SQL_CT_TABLE_CONSTRAINT 0x00001000L
|
1520
|
+
#define SQL_CT_CONSTRAINT_NAME_DEFINITION 0x00002000L
|
1521
|
+
|
1522
|
+
/* SQL_DDL_INDEX bitmasks */
|
1523
|
+
#define SQL_DI_CREATE_INDEX 0x00000001L
|
1524
|
+
#define SQL_DI_DROP_INDEX 0x00000002L
|
1525
|
+
|
1526
|
+
/* SQL_DROP_COLLATION bitmasks */
|
1527
|
+
#define SQL_DC_DROP_COLLATION 0x00000001L
|
1528
|
+
|
1529
|
+
/* SQL_DROP_DOMAIN bitmasks */
|
1530
|
+
#define SQL_DD_DROP_DOMAIN 0x00000001L
|
1531
|
+
#define SQL_DD_RESTRICT 0x00000002L
|
1532
|
+
#define SQL_DD_CASCADE 0x00000004L
|
1533
|
+
|
1534
|
+
/* SQL_DROP_SCHEMA bitmasks */
|
1535
|
+
#define SQL_DS_DROP_SCHEMA 0x00000001L
|
1536
|
+
#define SQL_DS_RESTRICT 0x00000002L
|
1537
|
+
#define SQL_DS_CASCADE 0x00000004L
|
1538
|
+
|
1539
|
+
/* SQL_DROP_CHARACTER_SET bitmasks */
|
1540
|
+
#define SQL_DCS_DROP_CHARACTER_SET 0x00000001L
|
1541
|
+
|
1542
|
+
/* SQL_DROP_ASSERTION bitmasks */
|
1543
|
+
#define SQL_DA_DROP_ASSERTION 0x00000001L
|
1544
|
+
|
1545
|
+
/* SQL_DROP_TABLE bitmasks */
|
1546
|
+
#define SQL_DT_DROP_TABLE 0x00000001L
|
1547
|
+
#define SQL_DT_RESTRICT 0x00000002L
|
1548
|
+
#define SQL_DT_CASCADE 0x00000004L
|
1549
|
+
|
1550
|
+
/* SQL_DROP_TRANSLATION bitmasks */
|
1551
|
+
#define SQL_DTR_DROP_TRANSLATION 0x00000001L
|
1552
|
+
|
1553
|
+
/* SQL_DROP_VIEW bitmasks */
|
1554
|
+
#define SQL_DV_DROP_VIEW 0x00000001L
|
1555
|
+
#define SQL_DV_RESTRICT 0x00000002L
|
1556
|
+
#define SQL_DV_CASCADE 0x00000004L
|
1557
|
+
|
1558
|
+
/* SQL_INSERT_STATEMENT bitmasks */
|
1559
|
+
#define SQL_IS_INSERT_LITERALS 0x00000001L
|
1560
|
+
#define SQL_IS_INSERT_SEARCHED 0x00000002L
|
1561
|
+
#define SQL_IS_SELECT_INTO 0x00000004L
|
1562
|
+
|
1563
|
+
/* SQL_ODBC_INTERFACE_CONFORMANCE values */
|
1564
|
+
#define SQL_OIC_CORE 1UL
|
1565
|
+
#define SQL_OIC_LEVEL1 2UL
|
1566
|
+
#define SQL_OIC_LEVEL2 3UL
|
1567
|
+
|
1568
|
+
/* SQL_SQL92_FOREIGN_KEY_DELETE_RULE bitmasks */
|
1569
|
+
#define SQL_SFKD_CASCADE 0x00000001L
|
1570
|
+
#define SQL_SFKD_NO_ACTION 0x00000002L
|
1571
|
+
#define SQL_SFKD_SET_DEFAULT 0x00000004L
|
1572
|
+
#define SQL_SFKD_SET_NULL 0x00000008L
|
1573
|
+
|
1574
|
+
/* SQL_SQL92_FOREIGN_KEY_UPDATE_RULE bitmasks */
|
1575
|
+
#define SQL_SFKU_CASCADE 0x00000001L
|
1576
|
+
#define SQL_SFKU_NO_ACTION 0x00000002L
|
1577
|
+
#define SQL_SFKU_SET_DEFAULT 0x00000004L
|
1578
|
+
#define SQL_SFKU_SET_NULL 0x00000008L
|
1579
|
+
|
1580
|
+
/* SQL_SQL92_GRANT bitmasks */
|
1581
|
+
#define SQL_SG_USAGE_ON_DOMAIN 0x00000001L
|
1582
|
+
#define SQL_SG_USAGE_ON_CHARACTER_SET 0x00000002L
|
1583
|
+
#define SQL_SG_USAGE_ON_COLLATION 0x00000004L
|
1584
|
+
#define SQL_SG_USAGE_ON_TRANSLATION 0x00000008L
|
1585
|
+
#define SQL_SG_WITH_GRANT_OPTION 0x00000010L
|
1586
|
+
#define SQL_SG_DELETE_TABLE 0x00000020L
|
1587
|
+
#define SQL_SG_INSERT_TABLE 0x00000040L
|
1588
|
+
#define SQL_SG_INSERT_COLUMN 0x00000080L
|
1589
|
+
#define SQL_SG_REFERENCES_TABLE 0x00000100L
|
1590
|
+
#define SQL_SG_REFERENCES_COLUMN 0x00000200L
|
1591
|
+
#define SQL_SG_SELECT_TABLE 0x00000400L
|
1592
|
+
#define SQL_SG_UPDATE_TABLE 0x00000800L
|
1593
|
+
#define SQL_SG_UPDATE_COLUMN 0x00001000L
|
1594
|
+
|
1595
|
+
/* SQL_SQL92_PREDICATES bitmasks */
|
1596
|
+
#define SQL_SP_EXISTS 0x00000001L
|
1597
|
+
#define SQL_SP_ISNOTNULL 0x00000002L
|
1598
|
+
#define SQL_SP_ISNULL 0x00000004L
|
1599
|
+
#define SQL_SP_MATCH_FULL 0x00000008L
|
1600
|
+
#define SQL_SP_MATCH_PARTIAL 0x00000010L
|
1601
|
+
#define SQL_SP_MATCH_UNIQUE_FULL 0x00000020L
|
1602
|
+
#define SQL_SP_MATCH_UNIQUE_PARTIAL 0x00000040L
|
1603
|
+
#define SQL_SP_OVERLAPS 0x00000080L
|
1604
|
+
#define SQL_SP_UNIQUE 0x00000100L
|
1605
|
+
#define SQL_SP_LIKE 0x00000200L
|
1606
|
+
#define SQL_SP_IN 0x00000400L
|
1607
|
+
#define SQL_SP_BETWEEN 0x00000800L
|
1608
|
+
#define SQL_SP_COMPARISON 0x00001000L
|
1609
|
+
#define SQL_SP_QUANTIFIED_COMPARISON 0x00002000L
|
1610
|
+
|
1611
|
+
/* SQL_SQL92_RELATIONAL_JOIN_OPERATORS bitmasks */
|
1612
|
+
#define SQL_SRJO_CORRESPONDING_CLAUSE 0x00000001L
|
1613
|
+
#define SQL_SRJO_CROSS_JOIN 0x00000002L
|
1614
|
+
#define SQL_SRJO_EXCEPT_JOIN 0x00000004L
|
1615
|
+
#define SQL_SRJO_FULL_OUTER_JOIN 0x00000008L
|
1616
|
+
#define SQL_SRJO_INNER_JOIN 0x00000010L
|
1617
|
+
#define SQL_SRJO_INTERSECT_JOIN 0x00000020L
|
1618
|
+
#define SQL_SRJO_LEFT_OUTER_JOIN 0x00000040L
|
1619
|
+
#define SQL_SRJO_NATURAL_JOIN 0x00000080L
|
1620
|
+
#define SQL_SRJO_RIGHT_OUTER_JOIN 0x00000100L
|
1621
|
+
#define SQL_SRJO_UNION_JOIN 0x00000200L
|
1622
|
+
|
1623
|
+
/* SQL_SQL92_REVOKE bitmasks */
|
1624
|
+
#define SQL_SR_USAGE_ON_DOMAIN 0x00000001L
|
1625
|
+
#define SQL_SR_USAGE_ON_CHARACTER_SET 0x00000002L
|
1626
|
+
#define SQL_SR_USAGE_ON_COLLATION 0x00000004L
|
1627
|
+
#define SQL_SR_USAGE_ON_TRANSLATION 0x00000008L
|
1628
|
+
#define SQL_SR_GRANT_OPTION_FOR 0x00000010L
|
1629
|
+
#define SQL_SR_CASCADE 0x00000020L
|
1630
|
+
#define SQL_SR_RESTRICT 0x00000040L
|
1631
|
+
#define SQL_SR_DELETE_TABLE 0x00000080L
|
1632
|
+
#define SQL_SR_INSERT_TABLE 0x00000100L
|
1633
|
+
#define SQL_SR_INSERT_COLUMN 0x00000200L
|
1634
|
+
#define SQL_SR_REFERENCES_TABLE 0x00000400L
|
1635
|
+
#define SQL_SR_REFERENCES_COLUMN 0x00000800L
|
1636
|
+
#define SQL_SR_SELECT_TABLE 0x00001000L
|
1637
|
+
#define SQL_SR_UPDATE_TABLE 0x00002000L
|
1638
|
+
#define SQL_SR_UPDATE_COLUMN 0x00004000L
|
1639
|
+
|
1640
|
+
/* SQL_SQL92_ROW_VALUE_CONSTRUCTOR bitmasks */
|
1641
|
+
#define SQL_SRVC_VALUE_EXPRESSION 0x00000001L
|
1642
|
+
#define SQL_SRVC_NULL 0x00000002L
|
1643
|
+
#define SQL_SRVC_DEFAULT 0x00000004L
|
1644
|
+
#define SQL_SRVC_ROW_SUBQUERY 0x00000008L
|
1645
|
+
|
1646
|
+
/* SQL_SQL92_VALUE_EXPRESSIONS bitmasks */
|
1647
|
+
#define SQL_SVE_CASE 0x00000001L
|
1648
|
+
#define SQL_SVE_CAST 0x00000002L
|
1649
|
+
#define SQL_SVE_COALESCE 0x00000004L
|
1650
|
+
#define SQL_SVE_NULLIF 0x00000008L
|
1651
|
+
|
1652
|
+
/* SQL_STANDARD_CLI_CONFORMANCE bitmasks */
|
1653
|
+
#define SQL_SCC_XOPEN_CLI_VERSION1 0x00000001L
|
1654
|
+
#define SQL_SCC_ISO92_CLI 0x00000002L
|
1655
|
+
|
1656
|
+
/* SQL_UNION_STATEMENT bitmasks */
|
1657
|
+
#define SQL_US_UNION SQL_U_UNION
|
1658
|
+
#define SQL_US_UNION_ALL SQL_U_UNION_ALL
|
1659
|
+
#endif /* ODBCVER >= 0x0300 */
|
1660
|
+
|
1661
|
+
/* SQL_DTC_TRANSITION_COST bitmasks */
|
1662
|
+
#define SQL_DTC_ENLIST_EXPENSIVE 0x00000001L
|
1663
|
+
#define SQL_DTC_UNENLIST_EXPENSIVE 0x00000002L
|
1664
|
+
|
1665
|
+
#if (ODBCVER >= 0x0380)
|
1666
|
+
/* possible values for SQL_ASYNC_DBC_FUNCTIONS */
|
1667
|
+
#define SQL_ASYNC_DBC_NOT_CAPABLE 0x00000000L
|
1668
|
+
#define SQL_ASYNC_DBC_CAPABLE 0x00000001L
|
1669
|
+
#endif /* ODBCVER >= 0x0380 */
|
1670
|
+
|
1671
|
+
/* additional SQLDataSources fetch directions */
|
1672
|
+
#if (ODBCVER >= 0x0300)
|
1673
|
+
#define SQL_FETCH_FIRST_USER 31
|
1674
|
+
#define SQL_FETCH_FIRST_SYSTEM 32
|
1675
|
+
#endif /* ODBCVER >= 0x0300 */
|
1676
|
+
|
1677
|
+
|
1678
|
+
/* Defines for SQLSetPos */
|
1679
|
+
#define SQL_ENTIRE_ROWSET 0
|
1680
|
+
|
1681
|
+
/* Operations in SQLSetPos */
|
1682
|
+
#define SQL_POSITION 0 /* 1.0 FALSE */
|
1683
|
+
#define SQL_REFRESH 1 /* 1.0 TRUE */
|
1684
|
+
#define SQL_UPDATE 2
|
1685
|
+
#define SQL_DELETE 3
|
1686
|
+
|
1687
|
+
/* Operations in SQLBulkOperations */
|
1688
|
+
#define SQL_ADD 4
|
1689
|
+
#define SQL_SETPOS_MAX_OPTION_VALUE SQL_ADD
|
1690
|
+
#if (ODBCVER >= 0x0300)
|
1691
|
+
#define SQL_UPDATE_BY_BOOKMARK 5
|
1692
|
+
#define SQL_DELETE_BY_BOOKMARK 6
|
1693
|
+
#define SQL_FETCH_BY_BOOKMARK 7
|
1694
|
+
|
1695
|
+
#endif /* ODBCVER >= 0x0300 */
|
1696
|
+
|
1697
|
+
/* Lock options in SQLSetPos */
|
1698
|
+
#define SQL_LOCK_NO_CHANGE 0 /* 1.0 FALSE */
|
1699
|
+
#define SQL_LOCK_EXCLUSIVE 1 /* 1.0 TRUE */
|
1700
|
+
#define SQL_LOCK_UNLOCK 2
|
1701
|
+
|
1702
|
+
#define SQL_SETPOS_MAX_LOCK_VALUE SQL_LOCK_UNLOCK
|
1703
|
+
|
1704
|
+
/* Macros for SQLSetPos */
|
1705
|
+
#define SQL_POSITION_TO(hstmt,irow) SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
|
1706
|
+
#define SQL_LOCK_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
|
1707
|
+
#define SQL_REFRESH_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
|
1708
|
+
#define SQL_UPDATE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
|
1709
|
+
#define SQL_DELETE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
|
1710
|
+
#define SQL_ADD_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
|
1711
|
+
|
1712
|
+
/* Column types and scopes in SQLSpecialColumns. */
|
1713
|
+
#define SQL_BEST_ROWID 1
|
1714
|
+
#define SQL_ROWVER 2
|
1715
|
+
|
1716
|
+
/* Defines for SQLSpecialColumns (returned in the result set)
|
1717
|
+
SQL_PC_UNKNOWN and SQL_PC_PSEUDO are defined in sql.h */
|
1718
|
+
#define SQL_PC_NOT_PSEUDO 1
|
1719
|
+
|
1720
|
+
/* Defines for SQLStatistics */
|
1721
|
+
#define SQL_QUICK 0
|
1722
|
+
#define SQL_ENSURE 1
|
1723
|
+
|
1724
|
+
/* Defines for SQLStatistics (returned in the result set)
|
1725
|
+
SQL_INDEX_CLUSTERED, SQL_INDEX_HASHED, and SQL_INDEX_OTHER are
|
1726
|
+
defined in sql.h */
|
1727
|
+
#define SQL_TABLE_STAT 0
|
1728
|
+
|
1729
|
+
|
1730
|
+
/* Defines for SQLTables */
|
1731
|
+
#if (ODBCVER >= 0x0300)
|
1732
|
+
#define SQL_ALL_CATALOGS "%"
|
1733
|
+
#define SQL_ALL_SCHEMAS "%"
|
1734
|
+
#define SQL_ALL_TABLE_TYPES "%"
|
1735
|
+
#endif /* ODBCVER >= 0x0300 */
|
1736
|
+
|
1737
|
+
/* Options for SQLDriverConnect */
|
1738
|
+
#define SQL_DRIVER_NOPROMPT 0
|
1739
|
+
#define SQL_DRIVER_COMPLETE 1
|
1740
|
+
#define SQL_DRIVER_PROMPT 2
|
1741
|
+
#define SQL_DRIVER_COMPLETE_REQUIRED 3
|
1742
|
+
|
1743
|
+
#ifndef RC_INVOKED
|
1744
|
+
|
1745
|
+
SQLRETURN SQL_API SQLDriverConnect(
|
1746
|
+
SQLHDBC hdbc,
|
1747
|
+
SQLHWND hwnd,
|
1748
|
+
__in_ecount(cchConnStrIn)
|
1749
|
+
SQLCHAR *szConnStrIn,
|
1750
|
+
SQLSMALLINT cchConnStrIn,
|
1751
|
+
__out_ecount_opt(cchConnStrOutMax)
|
1752
|
+
SQLCHAR *szConnStrOut,
|
1753
|
+
SQLSMALLINT cchConnStrOutMax,
|
1754
|
+
__out_opt
|
1755
|
+
SQLSMALLINT *pcchConnStrOut,
|
1756
|
+
SQLUSMALLINT fDriverCompletion);
|
1757
|
+
|
1758
|
+
#endif /* RC_INVOKED */
|
1759
|
+
|
1760
|
+
/* Level 2 Functions */
|
1761
|
+
|
1762
|
+
/* SQLExtendedFetch "fFetchType" values */
|
1763
|
+
#define SQL_FETCH_BOOKMARK 8
|
1764
|
+
|
1765
|
+
/* SQLExtendedFetch "rgfRowStatus" element values */
|
1766
|
+
#define SQL_ROW_SUCCESS 0
|
1767
|
+
#define SQL_ROW_DELETED 1
|
1768
|
+
#define SQL_ROW_UPDATED 2
|
1769
|
+
#define SQL_ROW_NOROW 3
|
1770
|
+
#define SQL_ROW_ADDED 4
|
1771
|
+
#define SQL_ROW_ERROR 5
|
1772
|
+
#if (ODBCVER >= 0x0300)
|
1773
|
+
#define SQL_ROW_SUCCESS_WITH_INFO 6
|
1774
|
+
#define SQL_ROW_PROCEED 0
|
1775
|
+
#define SQL_ROW_IGNORE 1
|
1776
|
+
#endif
|
1777
|
+
|
1778
|
+
/* value for SQL_DESC_ARRAY_STATUS_PTR */
|
1779
|
+
#if (ODBCVER >= 0x0300)
|
1780
|
+
#define SQL_PARAM_SUCCESS 0
|
1781
|
+
#define SQL_PARAM_SUCCESS_WITH_INFO 6
|
1782
|
+
#define SQL_PARAM_ERROR 5
|
1783
|
+
#define SQL_PARAM_UNUSED 7
|
1784
|
+
#define SQL_PARAM_DIAG_UNAVAILABLE 1
|
1785
|
+
|
1786
|
+
#define SQL_PARAM_PROCEED 0
|
1787
|
+
#define SQL_PARAM_IGNORE 1
|
1788
|
+
#endif /* ODBCVER >= 0x0300 */
|
1789
|
+
|
1790
|
+
/* Defines for SQLForeignKeys (UPDATE_RULE and DELETE_RULE) */
|
1791
|
+
#define SQL_CASCADE 0
|
1792
|
+
#define SQL_RESTRICT 1
|
1793
|
+
#define SQL_SET_NULL 2
|
1794
|
+
#if (ODBCVER >= 0x0250)
|
1795
|
+
#define SQL_NO_ACTION 3
|
1796
|
+
#define SQL_SET_DEFAULT 4
|
1797
|
+
#endif /* ODBCVER >= 0x0250 */
|
1798
|
+
|
1799
|
+
#if (ODBCVER >= 0x0300)
|
1800
|
+
/* Note that the following are in a different column of SQLForeignKeys than */
|
1801
|
+
/* the previous #defines. These are for DEFERRABILITY. */
|
1802
|
+
|
1803
|
+
#define SQL_INITIALLY_DEFERRED 5
|
1804
|
+
#define SQL_INITIALLY_IMMEDIATE 6
|
1805
|
+
#define SQL_NOT_DEFERRABLE 7
|
1806
|
+
|
1807
|
+
#endif /* ODBCVER >= 0x0300 */
|
1808
|
+
|
1809
|
+
/* Defines for SQLBindParameter and
|
1810
|
+
SQLProcedureColumns (returned in the result set) */
|
1811
|
+
#define SQL_PARAM_TYPE_UNKNOWN 0
|
1812
|
+
#define SQL_PARAM_INPUT 1
|
1813
|
+
#define SQL_PARAM_INPUT_OUTPUT 2
|
1814
|
+
#define SQL_RESULT_COL 3
|
1815
|
+
#define SQL_PARAM_OUTPUT 4
|
1816
|
+
#define SQL_RETURN_VALUE 5
|
1817
|
+
#if (ODBCVER >= 0x0380)
|
1818
|
+
#define SQL_PARAM_INPUT_OUTPUT_STREAM 8
|
1819
|
+
#define SQL_PARAM_OUTPUT_STREAM 16
|
1820
|
+
#endif
|
1821
|
+
|
1822
|
+
/* Defines for SQLProcedures (returned in the result set) */
|
1823
|
+
#define SQL_PT_UNKNOWN 0
|
1824
|
+
#define SQL_PT_PROCEDURE 1
|
1825
|
+
#define SQL_PT_FUNCTION 2
|
1826
|
+
|
1827
|
+
#ifndef RC_INVOKED
|
1828
|
+
|
1829
|
+
/* This define is too large for RC */
|
1830
|
+
#define SQL_ODBC_KEYWORDS \
|
1831
|
+
"ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
|
1832
|
+
"ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\
|
1833
|
+
"BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\
|
1834
|
+
"CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\
|
1835
|
+
"COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\
|
1836
|
+
"CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\
|
1837
|
+
"CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\
|
1838
|
+
"DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\
|
1839
|
+
"DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\
|
1840
|
+
"DISTINCT,DOMAIN,DOUBLE,DROP,"\
|
1841
|
+
"ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\
|
1842
|
+
"EXISTS,EXTERNAL,EXTRACT,"\
|
1843
|
+
"FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\
|
1844
|
+
"GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\
|
1845
|
+
"IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\
|
1846
|
+
"INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\
|
1847
|
+
"JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\
|
1848
|
+
"MATCH,MAX,MIN,MINUTE,MODULE,MONTH,"\
|
1849
|
+
"NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\
|
1850
|
+
"OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\
|
1851
|
+
"PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\
|
1852
|
+
"PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\
|
1853
|
+
"READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS"\
|
1854
|
+
"SCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,"\
|
1855
|
+
"SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\
|
1856
|
+
"SUBSTRING,SUM,SYSTEM_USER,"\
|
1857
|
+
"TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\
|
1858
|
+
"TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\
|
1859
|
+
"UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
|
1860
|
+
"VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,"\
|
1861
|
+
"YEAR,ZONE"
|
1862
|
+
|
1863
|
+
SQLRETURN SQL_API SQLBrowseConnect(
|
1864
|
+
SQLHDBC hdbc,
|
1865
|
+
__in_ecount(cchConnStrIn)
|
1866
|
+
SQLCHAR *szConnStrIn,
|
1867
|
+
SQLSMALLINT cchConnStrIn,
|
1868
|
+
__out_ecount_opt(cchConnStrOutMax)
|
1869
|
+
SQLCHAR *szConnStrOut,
|
1870
|
+
SQLSMALLINT cchConnStrOutMax,
|
1871
|
+
__out_opt
|
1872
|
+
SQLSMALLINT *pcchConnStrOut);
|
1873
|
+
|
1874
|
+
#if (ODBCVER >= 0x0300)
|
1875
|
+
SQLRETURN SQL_API SQLBulkOperations(
|
1876
|
+
SQLHSTMT StatementHandle,
|
1877
|
+
SQLSMALLINT Operation);
|
1878
|
+
#endif /* ODBCVER >= 0x0300 */
|
1879
|
+
|
1880
|
+
SQLRETURN SQL_API SQLColAttributes(
|
1881
|
+
SQLHSTMT hstmt,
|
1882
|
+
SQLUSMALLINT icol,
|
1883
|
+
SQLUSMALLINT fDescType,
|
1884
|
+
SQLPOINTER rgbDesc,
|
1885
|
+
SQLSMALLINT cbDescMax,
|
1886
|
+
SQLSMALLINT *pcbDesc,
|
1887
|
+
SQLLEN * pfDesc);
|
1888
|
+
|
1889
|
+
SQLRETURN SQL_API SQLColumnPrivileges(
|
1890
|
+
SQLHSTMT hstmt,
|
1891
|
+
__in_ecount_opt(cchCatalogName)
|
1892
|
+
SQLCHAR *szCatalogName,
|
1893
|
+
SQLSMALLINT cchCatalogName,
|
1894
|
+
__in_ecount_opt(cchSchemaName)
|
1895
|
+
SQLCHAR *szSchemaName,
|
1896
|
+
SQLSMALLINT cchSchemaName,
|
1897
|
+
__in_ecount_opt(cchTableName)
|
1898
|
+
SQLCHAR *szTableName,
|
1899
|
+
SQLSMALLINT cchTableName,
|
1900
|
+
__in_ecount_opt(cchColumnName)
|
1901
|
+
SQLCHAR *szColumnName,
|
1902
|
+
SQLSMALLINT cchColumnName);
|
1903
|
+
|
1904
|
+
SQLRETURN SQL_API SQLDescribeParam(
|
1905
|
+
SQLHSTMT hstmt,
|
1906
|
+
SQLUSMALLINT ipar,
|
1907
|
+
__out_opt
|
1908
|
+
SQLSMALLINT *pfSqlType,
|
1909
|
+
__out_opt
|
1910
|
+
SQLULEN *pcbParamDef,
|
1911
|
+
__out_opt
|
1912
|
+
SQLSMALLINT *pibScale,
|
1913
|
+
__out_opt
|
1914
|
+
SQLSMALLINT *pfNullable);
|
1915
|
+
|
1916
|
+
SQLRETURN SQL_API SQLExtendedFetch(
|
1917
|
+
SQLHSTMT hstmt,
|
1918
|
+
SQLUSMALLINT fFetchType,
|
1919
|
+
SQLLEN irow,
|
1920
|
+
__out_opt
|
1921
|
+
SQLULEN *pcrow,
|
1922
|
+
__out_opt
|
1923
|
+
SQLUSMALLINT *rgfRowStatus);
|
1924
|
+
|
1925
|
+
SQLRETURN SQL_API SQLForeignKeys(
|
1926
|
+
SQLHSTMT hstmt,
|
1927
|
+
__in_ecount_opt(cchPkCatalogName)
|
1928
|
+
SQLCHAR *szPkCatalogName,
|
1929
|
+
SQLSMALLINT cchPkCatalogName,
|
1930
|
+
__in_ecount_opt(cchPkSchemaName)
|
1931
|
+
SQLCHAR *szPkSchemaName,
|
1932
|
+
SQLSMALLINT cchPkSchemaName,
|
1933
|
+
__in_ecount_opt(cchPkTableName)
|
1934
|
+
SQLCHAR *szPkTableName,
|
1935
|
+
SQLSMALLINT cchPkTableName,
|
1936
|
+
__in_ecount_opt(cchFkCatalogName)
|
1937
|
+
SQLCHAR *szFkCatalogName,
|
1938
|
+
SQLSMALLINT cchFkCatalogName,
|
1939
|
+
__in_ecount_opt(cchFkSchemaName)
|
1940
|
+
SQLCHAR *szFkSchemaName,
|
1941
|
+
SQLSMALLINT cchFkSchemaName,
|
1942
|
+
__in_ecount_opt(cchFkTableName)
|
1943
|
+
SQLCHAR *szFkTableName,
|
1944
|
+
SQLSMALLINT cchFkTableName);
|
1945
|
+
|
1946
|
+
SQLRETURN SQL_API SQLMoreResults(
|
1947
|
+
SQLHSTMT hstmt);
|
1948
|
+
|
1949
|
+
SQLRETURN SQL_API SQLNativeSql
|
1950
|
+
(
|
1951
|
+
SQLHDBC hdbc,
|
1952
|
+
__in_ecount(cchSqlStrIn) SQLCHAR* szSqlStrIn,
|
1953
|
+
SQLINTEGER cchSqlStrIn,
|
1954
|
+
__out_ecount_opt(cchSqlStrMax) SQLCHAR* szSqlStr,
|
1955
|
+
SQLINTEGER cchSqlStrMax,
|
1956
|
+
SQLINTEGER *pcbSqlStr
|
1957
|
+
);
|
1958
|
+
|
1959
|
+
SQLRETURN SQL_API SQLNumParams(
|
1960
|
+
SQLHSTMT hstmt,
|
1961
|
+
__out_opt
|
1962
|
+
SQLSMALLINT *pcpar);
|
1963
|
+
|
1964
|
+
SQLRETURN SQL_API SQLParamOptions(
|
1965
|
+
SQLHSTMT hstmt,
|
1966
|
+
SQLULEN crow,
|
1967
|
+
SQLULEN *pirow);
|
1968
|
+
|
1969
|
+
SQLRETURN SQL_API SQLPrimaryKeys(
|
1970
|
+
SQLHSTMT hstmt,
|
1971
|
+
__in_ecount_opt(cchCatalogName)
|
1972
|
+
SQLCHAR *szCatalogName,
|
1973
|
+
SQLSMALLINT cchCatalogName,
|
1974
|
+
__in_ecount_opt(cchSchemaName)
|
1975
|
+
SQLCHAR *szSchemaName,
|
1976
|
+
SQLSMALLINT cchSchemaName,
|
1977
|
+
__in_ecount_opt(cchTableName)
|
1978
|
+
SQLCHAR *szTableName,
|
1979
|
+
SQLSMALLINT cchTableName);
|
1980
|
+
|
1981
|
+
SQLRETURN SQL_API SQLProcedureColumns(
|
1982
|
+
SQLHSTMT hstmt,
|
1983
|
+
__in_ecount_opt(cchCatalogName)
|
1984
|
+
SQLCHAR *szCatalogName,
|
1985
|
+
SQLSMALLINT cchCatalogName,
|
1986
|
+
__in_ecount_opt(cchSchemaName)
|
1987
|
+
SQLCHAR *szSchemaName,
|
1988
|
+
SQLSMALLINT cchSchemaName,
|
1989
|
+
__in_ecount_opt(cchProcName)
|
1990
|
+
SQLCHAR *szProcName,
|
1991
|
+
SQLSMALLINT cchProcName,
|
1992
|
+
__in_ecount_opt(cchColumnName)
|
1993
|
+
SQLCHAR *szColumnName,
|
1994
|
+
SQLSMALLINT cchColumnName);
|
1995
|
+
|
1996
|
+
SQLRETURN SQL_API SQLProcedures(
|
1997
|
+
SQLHSTMT hstmt,
|
1998
|
+
__in_ecount_opt(cchCatalogName)
|
1999
|
+
SQLCHAR *szCatalogName,
|
2000
|
+
SQLSMALLINT cchCatalogName,
|
2001
|
+
__in_ecount_opt(cchSchemaName)
|
2002
|
+
SQLCHAR *szSchemaName,
|
2003
|
+
SQLSMALLINT cchSchemaName,
|
2004
|
+
__in_ecount_opt(cchProcName)
|
2005
|
+
SQLCHAR *szProcName,
|
2006
|
+
SQLSMALLINT cchProcName);
|
2007
|
+
|
2008
|
+
|
2009
|
+
|
2010
|
+
SQLRETURN SQL_API SQLSetPos(
|
2011
|
+
SQLHSTMT hstmt,
|
2012
|
+
SQLSETPOSIROW irow,
|
2013
|
+
SQLUSMALLINT fOption,
|
2014
|
+
SQLUSMALLINT fLock);
|
2015
|
+
|
2016
|
+
SQLRETURN SQL_API SQLTablePrivileges(
|
2017
|
+
SQLHSTMT hstmt,
|
2018
|
+
__in_ecount_opt(cchCatalogName)
|
2019
|
+
SQLCHAR *szCatalogName,
|
2020
|
+
SQLSMALLINT cchCatalogName,
|
2021
|
+
__in_ecount_opt(cchSchemaName)
|
2022
|
+
SQLCHAR *szSchemaName,
|
2023
|
+
SQLSMALLINT cchSchemaName,
|
2024
|
+
__in_ecount_opt(cchTableName)
|
2025
|
+
SQLCHAR *szTableName,
|
2026
|
+
SQLSMALLINT cchTableName);
|
2027
|
+
|
2028
|
+
SQLRETURN SQL_API SQLDrivers(
|
2029
|
+
SQLHENV henv,
|
2030
|
+
SQLUSMALLINT fDirection,
|
2031
|
+
__out_ecount_opt(cchDriverDescMax)
|
2032
|
+
SQLCHAR *szDriverDesc,
|
2033
|
+
SQLSMALLINT cchDriverDescMax,
|
2034
|
+
__out_opt
|
2035
|
+
SQLSMALLINT *pcchDriverDesc,
|
2036
|
+
__out_ecount_opt(cchDrvrAttrMax)
|
2037
|
+
SQLCHAR *szDriverAttributes,
|
2038
|
+
SQLSMALLINT cchDrvrAttrMax,
|
2039
|
+
__out_opt
|
2040
|
+
SQLSMALLINT *pcchDrvrAttr);
|
2041
|
+
|
2042
|
+
SQLRETURN SQL_API SQLBindParameter(
|
2043
|
+
SQLHSTMT hstmt,
|
2044
|
+
SQLUSMALLINT ipar,
|
2045
|
+
SQLSMALLINT fParamType,
|
2046
|
+
SQLSMALLINT fCType,
|
2047
|
+
SQLSMALLINT fSqlType,
|
2048
|
+
SQLULEN cbColDef,
|
2049
|
+
SQLSMALLINT ibScale,
|
2050
|
+
SQLPOINTER rgbValue,
|
2051
|
+
SQLLEN cbValueMax,
|
2052
|
+
SQLLEN *pcbValue);
|
2053
|
+
|
2054
|
+
|
2055
|
+
#endif /* RC_INVOKED */
|
2056
|
+
|
2057
|
+
/*---------------------------------------------------------*/
|
2058
|
+
/* SQLAllocHandleStd is implemented to make SQLAllocHandle */
|
2059
|
+
/* compatible with X/Open standard. an application should */
|
2060
|
+
/* not call SQLAllocHandleStd directly */
|
2061
|
+
/*---------------------------------------------------------*/
|
2062
|
+
#ifdef ODBC_STD
|
2063
|
+
#define SQLAllocHandle SQLAllocHandleStd
|
2064
|
+
#define SQLAllocEnv(phenv) SQLAllocHandleStd(SQL_HANDLE_ENV, SQL_NULL_HANDLE, phenv)
|
2065
|
+
|
2066
|
+
/* Internal type subcodes */
|
2067
|
+
#define SQL_YEAR SQL_CODE_YEAR
|
2068
|
+
#define SQL_MONTH SQL_CODE_MONTH
|
2069
|
+
#define SQL_DAY SQL_CODE_DAY
|
2070
|
+
#define SQL_HOUR SQL_CODE_HOUR
|
2071
|
+
#define SQL_MINUTE SQL_CODE_MINUTE
|
2072
|
+
#define SQL_SECOND SQL_CODE_SECOND
|
2073
|
+
#define SQL_YEAR_TO_MONTH SQL_CODE_YEAR_TO_MONTH
|
2074
|
+
#define SQL_DAY_TO_HOUR SQL_CODE_DAY_TO_HOUR
|
2075
|
+
#define SQL_DAY_TO_MINUTE SQL_CODE_DAY_TO_MINUTE
|
2076
|
+
#define SQL_DAY_TO_SECOND SQL_CODE_DAY_TO_SECOND
|
2077
|
+
#define SQL_HOUR_TO_MINUTE SQL_CODE_HOUR_TO_MINUTE
|
2078
|
+
#define SQL_HOUR_TO_SECOND SQL_CODE_HOUR_TO_SECOND
|
2079
|
+
#define SQL_MINUTE_TO_SECOND SQL_CODE_MINUTE_TO_SECOND
|
2080
|
+
#endif /* ODBC_STD */
|
2081
|
+
|
2082
|
+
#if (ODBCVER >= 0x0300)
|
2083
|
+
#ifndef RC_INVOKED
|
2084
|
+
SQLRETURN SQL_API SQLAllocHandleStd(
|
2085
|
+
SQLSMALLINT fHandleType,
|
2086
|
+
SQLHANDLE hInput,
|
2087
|
+
__out
|
2088
|
+
SQLHANDLE *phOutput);
|
2089
|
+
#endif /* RC_INVOKED */
|
2090
|
+
#endif
|
2091
|
+
|
2092
|
+
/* Deprecated defines from prior versions of ODBC */
|
2093
|
+
#define SQL_DATABASE_NAME 16 /* Use SQLGetConnectOption/SQL_CURRENT_QUALIFIER */
|
2094
|
+
#define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR
|
2095
|
+
#define SQL_FETCH_PREV SQL_FETCH_PRIOR
|
2096
|
+
#define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER
|
2097
|
+
#define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER
|
2098
|
+
#define SQL_CC_DELETE SQL_CB_DELETE
|
2099
|
+
#define SQL_CR_DELETE SQL_CB_DELETE
|
2100
|
+
#define SQL_CC_CLOSE SQL_CB_CLOSE
|
2101
|
+
#define SQL_CR_CLOSE SQL_CB_CLOSE
|
2102
|
+
#define SQL_CC_PRESERVE SQL_CB_PRESERVE
|
2103
|
+
#define SQL_CR_PRESERVE SQL_CB_PRESERVE
|
2104
|
+
/* SQL_FETCH_RESUME is not supported by 2.0+ drivers
|
2105
|
+
#define SQL_FETCH_RESUME 7
|
2106
|
+
*/
|
2107
|
+
#define SQL_SCROLL_FORWARD_ONLY 0L /*-SQL_CURSOR_FORWARD_ONLY */
|
2108
|
+
#define SQL_SCROLL_KEYSET_DRIVEN (-1L) /*-SQL_CURSOR_KEYSET_DRIVEN */
|
2109
|
+
#define SQL_SCROLL_DYNAMIC (-2L) /*-SQL_CURSOR_DYNAMIC */
|
2110
|
+
#define SQL_SCROLL_STATIC (-3L) /*-SQL_CURSOR_STATIC */
|
2111
|
+
|
2112
|
+
/* Deprecated functions from prior versions of ODBC */
|
2113
|
+
#ifndef RC_INVOKED
|
2114
|
+
|
2115
|
+
SQLRETURN SQL_API SQLSetScrollOptions( /* Use SQLSetStmtOptions */
|
2116
|
+
SQLHSTMT hstmt,
|
2117
|
+
SQLUSMALLINT fConcurrency,
|
2118
|
+
SQLLEN crowKeyset,
|
2119
|
+
SQLUSMALLINT crowRowset);
|
2120
|
+
|
2121
|
+
/* Tracing section */
|
2122
|
+
|
2123
|
+
#define TRACE_VERSION 1000 /* Version of trace API */
|
2124
|
+
|
2125
|
+
/* open a trace log file */
|
2126
|
+
RETCODE SQL_API TraceOpenLogFile
|
2127
|
+
(
|
2128
|
+
__in_opt LPWSTR szFileName,
|
2129
|
+
__out_bcount_opt(cbOutputMsg) LPWSTR lpwszOutputMsg,
|
2130
|
+
__in DWORD cbOutputMsg
|
2131
|
+
);
|
2132
|
+
|
2133
|
+
RETCODE SQL_API TraceCloseLogFile(); /* Request to close a trace log */
|
2134
|
+
VOID SQL_API TraceReturn(RETCODE,RETCODE); /* Processes trace after FN is called */
|
2135
|
+
DWORD SQL_API TraceVersion(); /* Returns trace API version */
|
2136
|
+
|
2137
|
+
/* Functions for Visual Studio Analyzer*/
|
2138
|
+
/* to turn on/off tracing or VS events, call TraceVSControl by setting or clearing the following bits */
|
2139
|
+
#define TRACE_ON 0x00000001L
|
2140
|
+
#define TRACE_VS_EVENT_ON 0x00000002L
|
2141
|
+
|
2142
|
+
RETCODE SQL_API TraceVSControl(DWORD);
|
2143
|
+
|
2144
|
+
/* Functions for setting the connection pooling failure detection code */
|
2145
|
+
/* The "TryWait" value is the time (in seconds) that the DM will wait */
|
2146
|
+
/* between detecting that a connection is dead (using */
|
2147
|
+
/* SQL_ATTR_CONNECTION_DEAD) and retrying the connection. During that */
|
2148
|
+
/* interval, connection requests will get "The server appears to be */
|
2149
|
+
/* dead" error returns. */
|
2150
|
+
|
2151
|
+
|
2152
|
+
BOOL SQL_API ODBCSetTryWaitValue(DWORD dwValue); /* In seconds */
|
2153
|
+
DWORD SQL_API ODBCGetTryWaitValue(); /* In Milliseconds(!) */
|
2154
|
+
|
2155
|
+
|
2156
|
+
/* the flags in ODBC_VS_ARGS */
|
2157
|
+
#define ODBC_VS_FLAG_UNICODE_ARG 0x00000001L /* the argument is unicode */
|
2158
|
+
#define ODBC_VS_FLAG_UNICODE_COR 0x00000002L /* the correlation is unicode */
|
2159
|
+
#define ODBC_VS_FLAG_RETCODE 0x00000004L /* RetCode field is set */
|
2160
|
+
#define ODBC_VS_FLAG_STOP 0x00000008L /* Stop firing visual studio analyzer events */
|
2161
|
+
|
2162
|
+
typedef struct tagODBC_VS_ARGS {
|
2163
|
+
const GUID *pguidEvent; /* the GUID for event */
|
2164
|
+
DWORD dwFlags; /* flags for the call */
|
2165
|
+
union {
|
2166
|
+
WCHAR *wszArg;
|
2167
|
+
CHAR *szArg;
|
2168
|
+
};
|
2169
|
+
union {
|
2170
|
+
WCHAR *wszCorrelation;
|
2171
|
+
CHAR *szCorrelation;
|
2172
|
+
};
|
2173
|
+
RETCODE RetCode;
|
2174
|
+
} ODBC_VS_ARGS, *PODBC_VS_ARGS;
|
2175
|
+
VOID SQL_API FireVSDebugEvent(PODBC_VS_ARGS);
|
2176
|
+
|
2177
|
+
#endif /* RC_INVOKED */
|
2178
|
+
|
2179
|
+
|
2180
|
+
#ifdef __cplusplus
|
2181
|
+
} /* End of extern "C" { */
|
2182
|
+
#endif /* __cplusplus */
|
2183
|
+
|
2184
|
+
#if defined(WIN32) || defined(_WIN64)
|
2185
|
+
#include "sqlucode.h"
|
2186
|
+
#endif
|
2187
|
+
|
2188
|
+
#endif /* __SQLEXT */
|
2189
|
+
|