📄 cvi_db.h
字号:
#ifndef SQL_INCLUDE#define SQL_INCLUDE 1#if defined(INCLUDE_AFTER_WINDOWS_H) && !defined(_INC_WINDOWS)#error This header must be included before utility.h and formatio.h#error because this header includes Windows SDK headers.#endif /* INCLUDE_AFTER_WINDOWS_H */#ifdef __cplusplus extern "C" {#endif#ifndef SQLFUNC #ifdef _NI_mswin16_ #define SQLFUNC #else #define SQLFUNC __stdcall #endif#endif#ifndef SQLCDECL #ifdef _NI_mswin16_ #define SQLCDECL #else #if defined(__WATCOMC__) || defined(_NI_WC_) #define SQLCDECL #else #define SQLCDECL __cdecl #endif #endif#endif#ifndef SQLSTDCALL #ifdef _NI_mswin16_ #define SQLSTDCALL #else #define SQLSTDCALL __stdcall #endif#endif#if defined(_CVI_) && _CVI_ < 500 #ifndef ENABLE_VARIANTS #define ENABLE_VARIANTS 0 #endif#else #define ENABLE_VARIANTS 1#endif#if ENABLE_VARIANTS #include <ole2.h>#else#include <stdarg.h>#endif/* connection, command or recordset open/closed state */typedef enum { DB_OBJECT_STATE_CLOSED = 0, DB_OBJECT_STATE_OPEN = 1, DB_OBJECT_STATE_FORCE_TO_FOUR_BYTES = -1} tDBObjectState;/* database cursor type */typedef enum { DB_CURSOR_TYPE_UNSPECIFIED = -1, DB_CURSOR_TYPE_FORWARD_ONLY = 0, DB_CURSOR_TYPE_KEYSET = 1, DB_CURSOR_TYPE_DYNAMIC = 2, DB_CURSOR_TYPE_STATIC = 3, DB_CURSOR_TYPE_FORCE_TO_FOUR_BYTES = -1} tDBCursorType;/* record set lock type */typedef enum { DB_LOCK_UNSPECIFIED = -1, DB_LOCK_READ_ONLY = 1, DB_LOCK_PESSIMISTIC = 2, DB_LOCK_OPTIMISTIC = 3, DB_LOCK_BATCH_OPTIMISTIC = 4, DB_LOCK_TYPE_FORCE_TO_FOUR_BYTES = -1}tDBLockType;/* command type */typedef enum { DB_COMMAND_UNSPECIFIED = -1, DB_COMMAND_UNKNOWN = 8, DB_COMMAND_TEXT = 1, DB_COMMAND_TABLE = 2, DB_COMMAND_STORED_PROC = 4, DB_COMMAND_FORCE_TO_FOUR_BYTES = -1} tDBCommandType;/* edit mode of current record */typedef enum { DB_EDIT_MODE_NONE = 0, DB_EDIT_MODE_IN_PROGRESS = 1, DB_EDIT_MODE_ADD = 2, DB_EDIT_MODE_DELETE = 4, DB_EDIT_MODE_FORCE_TO_FOUR_BYTES = -1} tDBEditMode;/* connection mode */typedef enum { DB_CONN_MODE_UNKNOWN = 0, DB_CONN_MODE_READ = 1, DB_CONN_MODE_WRITE = 2, DB_CONN_MODE_READ_WRITE = 3, DB_CONN_MODE_SHARE_DENY_READ = 4, DB_CONN_MODE_SHARE_DENY_WRITE = 8, DB_CONN_MODE_SHARE_EXCLUSIVE = 12, DB_CONN_MODE_SHARE_DENY_NONE = 16, DB_CONN_MODE_FORCE_TO_FOUR_BYTES = -1} tDBConnectionMode;/* filter type for statements */typedef enum { DB_FILTER_NONE = 0, DB_FILTER_PENDING = 1, DB_FILTER_AFFECTED = 2, DB_FILTER_FETCHED = 3, DB_FILTER_FORCE_TO_FOUR_BYTES = -1} tDBFilter;/* marshal option */typedef enum { DB_MARSHAL_OPT_ALL = 0, DB_MARSHAL_OPT_MODIF_ONLY = 1, DB_MARSHAL_OPT_FORCE_TO_FOUR_BYTES = -1}tDBMarshalOpt;/* which records are affected by batch update */typedef enum { DB_AFFECT_CURRENT = 1, DB_AFFECT_GROUP = 2, DB_AFFECT_ALL = 3, DB_AFFECT_FORCE_TO_FOUR_BYTES = -1}tDBAffect;/* current record status */typedef enum { DB_REC_STATUS_OK = 0, DB_REC_STATUS_NEW = 1, DB_REC_STATUS_MODIFIED = 2, DB_REC_STATUS_DELETED = 4, DB_REC_STATUS_UNMODIFIED = 8, DB_REC_STATUS_INVALID = 16, DB_REC_STATUS_MULTIPLE_CHANGES = 64, DB_REC_STATUS_PENDING_CHANGES = 128, DB_REC_STATUS_CANCELED = 256, DB_REC_STATUS_CANT_RELEASE = 1024, DB_REC_STATUS_CONCURRENCY_VIOLATION = 2048, DB_REC_STATUS_INTEGRITY_VILOATION = 4096, DB_REC_STATUS_MAX_CHANGES_EXCEEDED = 8192, DB_REC_STATUS_OBJECT_OPEN = 16384, DB_REC_STATUS_OUT_OF_MEMORY = 32768, DB_REC_STATUS_PERMISSION_DENIED = 65536, DB_REC_STATUS_SCHEMA_VIOLATION = 131072, DB_REC_STATUS_DBDELETED = 262144, DB_REC_STATUS_FORCE_TO_FOUR_BYTES = -1}tDBRecStatus;/* schema types for DBOpenSchema */typedef enum { DB_SCHEMA_PROVIDER_SPECIFIC = -1, DB_SCHEMA_ASSERTS = 0, DB_SCHEMA_CATALOGS = 1, DB_SCHEMA_CHARACTER_SETS = 2, DB_SCHEMA_COLLATIONS = 3, DB_SCHEMA_COLUMNS = 4, DB_SCHEMA_CHECK_CONSTRAINTS = 5, DB_SCHEMA_CONSTRAINT_COLUMN_USAGE = 6, DB_SCHEMA_CONSTRAINT_TABLE_USAGE = 7, DB_SCHEMA_KEY_COLUMN_USAGE = 8, DB_SCHEMA_REFERENTIAL_CONSTRAINTS = 9, DB_SCHEMA_TABLE_CONSTRAINSTS = 10, DB_SCHEMA_COLUMN_DOMAIN_USAGE = 11, DB_SCHEMA_INDEXES = 12, DB_SCHEMA_COLUMN_PRIVILEGES = 13, DB_SCHEMA_TABLE_PRIVILEGES = 14, DB_SCHEMA_USAGE_PRIVILEGES = 15, DB_SCHEMA_PROCEDURE = 16, DB_SCHEMA_SCHEMATA = 17, DB_SCHEMA_SQL_LANGUAGES = 18, DB_SCHEMA_STATISTICS = 19, DB_SCHEMA_TABLES = 20, DB_SCHEMA_TRANSLATIONS = 21, DB_SCHEMA_PROVIDER_TYPES = 22, DB_SCHEMA_VIEWS = 23, DB_SCHEMA_VIEW_COLUMN_USAGE = 24, DB_SCHEMA_VIEW_TABLE_USAGE = 25, DB_SCHEMA_PROCEDURE_PARAMETERS = 26, DB_SCHEMA_FOREIGN_KEYS = 27, DB_SCHEMA_PRIMARY_KEYS = 28, DB_SCHEMA_PROCEDURE_COLUMNS = 29, DB_SCHEMA_FORCE_TO_FOUR_BYTES = -1} tDBSchemaType;/* whether to use a record set only or a record set and a command */typedef enum { DB_USE_RECORDSET_ONLY = 2, DB_USE_COMMAND = 1, DB_USE_COMMAND_FORCE_TO_FOUR_BYTES = -1} tDBUseCommandValues;/* SQL parameter direction */typedef enum { DB_PARAM_UNKNOWN = 0, DB_PARAM_INPUT = 1, DB_PARAM_OUTPUT = 2, DB_PARAM_INPUT_OUTPUT = 3, DB_PARAM_RETURN_VALUE = 4, DB_PARAM_DIR_FORCE_TO_FOUR_BYTES = -1}tDBParameterDirection;/* field/column data types */typedef enum { DB_EMPTY = 0, DB_TINYINT = 16, DB_SMALLINT = 2, DB_INTEGER = 3, DB_BIGINT = 20, DB_UNSIGNEDTINYINT = 17, DB_UNSIGNEDSMALLINT = 18, DB_UNSIGNEDINT = 19, DB_UNSIGNEDBIGINT = 21, DB_FLOAT = 4, DB_DOUBLEPRECISION = 5, DB_CURRENCY = 6, DB_DECIMAL = 14, DB_NUMERIC = 131, DB_BOOLEAN = 11, DB_ERROR = 10, DB_USERDEFINED = 132, DB_VARIANT = 12, DB_IDDISPATCH = 9, DB_IUNKNOWN = 13, DB_GUID = 72, DB_DATE = 7, /* double, days_since_1899_12_30.fraction_of_day */ DB_DBDATE = 133, /* yyyymmdd */ DB_TIME = 134, /* hhmmss */ DB_DATETIME = 135, /* yyyymmddhhmmss plus a fraction in billionths */ DB_BSTR = 8, DB_CHAR = 129, DB_VARCHAR = 200, DB_LONGVARCHAR = 201, DB_WCHAR = 130, DB_VARWCHAR = 202, DB_LONGVARWCHAR = 203, DB_BINARY = 128, DB_VARBINARY = 204, DB_LONGVARBINARY = 205, DB_DATA_TYPE_FORCE_TO_FOUR_BYTES = -1}tDBDataType;/* connection attributes */typedef enum { ATTR_DB_CONN_CONNECTION_STRING = 0x00000000, ATTR_DB_CONN_COMMAND_TIMEOUT = 0x00000002, ATTR_DB_CONN_CONNECTION_TIMEOUT = 0x00000003, ATTR_DB_CONN_VERSION = 0x00000004, ATTR_DB_CONN_DEFAULT_DATABASE = 0x0000000C, ATTR_DB_CONN_ISOLATION_LEVEL = 0x0000000D, ATTR_DB_CONN_ATTRIBUTES = 0x0000000E, ATTR_DB_CONN_CURSOR_LOCATION = 0x0000000F, ATTR_DB_CONN_MODE = 0x00000010, ATTR_DB_CONN_PROVIDER = 0x00000011, ATTR_DB_CONN_STATE = 0x00000012, ATTR_DB_CONN_CONNECTION_OBJECT = 0x00000099, ATTR_DB_CONN_FORCE_TO_FOUR_BYTES = -1} tDBConnectionAttr;/* statement attributes */typedef enum { ATTR_DB_STMT_ABSOLUTE_POSITION = 0x000003E8, ATTR_DB_STMT_ACTIVE_CONNECTION = 0x000003E9, ATTR_DB_STMT_BOF = 0x000003EA, ATTR_DB_STMT_BOOKMARK = 0x000003EB, ATTR_DB_STMT_CACHE_SIZE = 0x000003EC, ATTR_DB_STMT_CURSOR_TYPE = 0x000003ED, ATTR_DB_STMT_EOF = 0x000003EE, ATTR_DB_STMT_LOCK_TYPE = 0x000003F0, ATTR_DB_STMT_MAX_RECORDS = 0x000003F1, ATTR_DB_STMT_RECORD_COUNT = 0x000003F2, ATTR_DB_STMT_EDIT_MODE = 0x00000402, ATTR_DB_STMT_STATUS = 0x00000405, ATTR_DB_STMT_FILTER = 0x00000406, ATTR_DB_STMT_ABSOLUTE_PAGE = 0x00000417, ATTR_DB_STMT_PAGE_SIZE = 0x00000418, ATTR_DB_STMT_PAGE_COUNT = 0x0000041A, ATTR_DB_STMT_CURSOR_LOCATION = 0x0000041B, ATTR_DB_STMT_MARSHAL_OPTIONS = 0x0000041D, ATTR_DB_STMT_STATE = 0x0000041E, ATTR_DB_STMT_COMMAND_TIMEOUT = 0x60030005, ATTR_DB_STMT_PREPARED = 0x60030007, ATTR_DB_STMT_COMMAND_TYPE = 0x6003000C, ATTR_DB_STMT_NAME = 0x6003000E, ATTR_DB_STMT_RECORDSET_OBJECT = 0x00000098, ATTR_DB_STMT_COMMAND_OBJECT = 0x00000099, ATTR_DB_STMT_FORCE_TO_FOUR_BYTES = -1} tDBStatementAttributes;/* values for the parameter attributes attribute *//* (In ADO, this is the parameter attribute property, so it *//* became the parameter attributes attribute here) */typedef enum { DB_PARAM_SIGNED = 16, DB_PARAM_NULLABLE = 64, DB_PARAM_LONG = 128, DB_PARAM_FORCE_TO_FOUR_BYTES = -1} tDBParameterAttributes;/* location of the SQL cursor */typedef enum { DB_CURSOR_LOC_NONE = 1, DB_CURSOR_LOC_SERVER = 2, DB_CURSOR_LOC_CLIENT = 3, DB_CURSOR_LOC_FORCE_TO_FOUR_BYTES = -1} tDBCursorLoc;/* possible values of the connection attributes attribute */typedef enum { DB_XACT_COMMIT_RETAINING = 131072, DB_XACT_ABORT_RETAINING = 262144, DB_XACT_FORCE_TO_FOUR_BYTES = -1} tDBXactAttribute;/* isolation level */typedef enum { DB_ISOLATION_LEVEL_UNSPECIFIED = -1, DB_ISOLATION_LEVEL_CHAOS = 16, DB_ISOLATION_LEVEL_READ_UNCOMMITTED = 256, DB_ISOLATION_LEVEL_READ_COMMITTED = 4096, DB_ISOLATION_LEVEL_REPEATABLE_READ = 65536, DB_ISOLATION_LEVEL_SERIALIZABLE = 1048576, DB_ISOLATION_LEVEL_FORCE_TO_FOUR_BYTES = -1} tDBIsolationLevel;/* possible parameter attributes */typedef enum { ATTR_DB_PARAM_VALUE = 0x00000000, ATTR_DB_PARAM_NAME = 0x60030000, ATTR_DB_PARAM_TYPE = 0x60030004, ATTR_DB_PARAM_DIRECTION = 0x60030006, ATTR_DB_PARAM_PRECISION = 0x60030008, ATTR_DB_PARAM_NUMERIC_SCALE = 0x6003000A, ATTR_DB_PARAM_SIZE = 0x6003000C, ATTR_DB_PARAM_ATTRIBUTES = 0x6003000F, ATTR_DB_PARAM_FORCE_TO_FOUR_BYTES = -1}tDBParamAttr;/* possible values for the column attributes attribute */typedef enum { DB_COLUMN_MAY_DEFER = 2, DB_COLUMN_UPDATABLE = 4, DB_COLUMN_UNKNOWN_UPDATEABLE= 8, DB_COLUMN_FIXED = 16, DB_COLUMN_IS_NULLABLE = 32, DB_COLUMN_MAY_BE_NULL = 64, DB_COLUMN_LONG = 128, DB_COLUMN_ROW_ID = 256, DB_COLUMN_ROW_VERSION = 512, DB_COLUMN_CACHE_DEFFERED = 4096, DB_COLUMN_FORCE_TO_FOUR_BYTES = -1}tDBColumnAttributes;/* possible column attributes */typedef enum { ATTR_DB_COLUMN_VALUE = 0x00000000, ATTR_DB_COLUMN_ATTRIBUTES = 0x0000040C, ATTR_DB_COLUMN_NAME = 0x0000044C, ATTR_DB_COLUMN_TYPE = 0x0000044E, ATTR_DB_COLUMN_DEFINED_SIZE = 0x0000044F, ATTR_DB_COLUMN_ORIGINAL_VALUE= 0x00000450, ATTR_DB_COLUMN_UNDERLYING_VALUE=0x00000451, ATTR_DB_COLUMN_ACTUAL_SIZE = 0x00000455, ATTR_DB_COLUMN_PRECISION = 0x60030007, ATTR_DB_COLUMN_NUMERIC_SCALE = 0x60030008, ATTR_DB_COLUMN_FORCE_TO_FOUR_BYTES = -1}tDBColumnAttr;/* Constants for DBInit. */#define DB_INIT_SINGLETHREADED 0#define DB_INIT_MULTITHREADED 1#define ATTR_DB_MIN 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -