📄 sqlcli.h
字号:
/****************************************************************************** * * Source File Name = sqlcli.h * * (C) COPYRIGHT International Business Machines Corp. 1993, 1999 * All Rights Reserved * Licensed Materials - Property of IBM * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. * * Function = Include File defining: * DB2 CLI Interface - Constants * DB2 CLI Interface - Data Structures * DB2 CLI Interface - Function Prototypes * * Operating System = Common C Include File * *****************************************************************************/#ifndef SQL_H_SQLCLI#define SQL_H_SQLCLI /* Permit duplicate Includes *//* Prevent inclusion of winsock.h in windows.h */#ifndef _WINSOCKAPI_#define _WINSOCKAPI_#define DB2_WINSOCKAPI_#endif/* DB2CLI_VER DB2 Call Level Interface Version Number (0x0210). * To revert to Version 1.0 definitions, * issue #define DB2CLI_VER 0x0110 before including * sqlcli.h and sqlcli1.h *//* If DB2CLI_VER is not defined, assume version 2.10 */#ifndef DB2CLI_VER#define DB2CLI_VER 0x0310#endif/* ODBC64 should be used instead of CLI_WIN64 for linking with libdb2o.dll */#ifndef ODBC64#ifdef CLI_WIN64#define ODBC64#endif#endif#include <stdlib.h>#ifdef __cplusplusextern "C" {#endif#include "sqlsystm.h" /* System dependent defines */#if defined(DB2NT)#include <windows.h>#else#define FAR#endif#define SQL_API SQL_API_FN/* generally useful constants */#define SQL_MAX_MESSAGE_LENGTH 1024 /* message buffer size */#define SQL_MAX_ID_LENGTH 128 /* maximum identifier name size, e.g. cursor names *//* date/time length constants */#define SQL_DATE_LEN 10#define SQL_TIME_LEN 8 /* add P+1 if precision is nonzero */#define SQL_TIMESTAMP_LEN 19 /* add P+1 if precision is nonzero *//* handle type identifiers */#define SQL_HANDLE_ENV 1#define SQL_HANDLE_DBC 2#define SQL_HANDLE_STMT 3#define SQL_HANDLE_DESC 4/* RETCODE values */#define SQL_SUCCESS 0#define SQL_SUCCESS_WITH_INFO 1#define SQL_NEED_DATA 99#define SQL_NO_DATA 100#define SQL_STILL_EXECUTING 2#define SQL_ERROR -1#define SQL_INVALID_HANDLE -2/* test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)/* SQLFreeStmt option values */#define SQL_CLOSE 0#define SQL_DROP 1#define SQL_UNBIND 2#define SQL_RESET_PARAMS 3/* SQLTransact option values */#define SQL_COMMIT 0#define SQL_ROLLBACK 1/* Standard SQL data types */#define SQL_UNKNOWN_TYPE 0#define SQL_CHAR 1#define SQL_NUMERIC 2#define SQL_DECIMAL 3#define SQL_INTEGER 4#define SQL_SMALLINT 5#define SQL_FLOAT 6#define SQL_REAL 7#define SQL_DOUBLE 8#define SQL_DATETIME 9#define SQL_VARCHAR 12#define SQL_WCHAR (-8)#define SQL_WVARCHAR (-9)#define SQL_WLONGVARCHAR (-10)#define SQL_DECFLOAT (-360)/* One-parameter shortcuts for date/time data types */#define SQL_TYPE_DATE 91#define SQL_TYPE_TIME 92#define SQL_TYPE_TIMESTAMP 93/* Statement attribute values for cursor sensitivity */#define SQL_UNSPECIFIED 0#define SQL_INSENSITIVE 1#define SQL_SENSITIVE 2/* Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() */#define SQL_DEFAULT 99/* SQLGetData() code indicating that the application row descriptor * specifies the data type */#define SQL_ARD_TYPE (-99)/* SQL date/time type subcodes */#define SQL_CODE_DATE 1#define SQL_CODE_TIME 2#define SQL_CODE_TIMESTAMP 3/* SQL extended data types */#define SQL_GRAPHIC -95#define SQL_VARGRAPHIC -96#define SQL_LONGVARGRAPHIC -97#define SQL_BLOB -98#define SQL_CLOB -99#define SQL_DBCLOB -350#define SQL_XML -370#define SQL_DATALINK -400#define SQL_USER_DEFINED_TYPE -450/* C data type to SQL data type mapping */#define SQL_C_DBCHAR SQL_DBCLOB#define SQL_C_DECIMAL_IBM SQL_DECIMAL#define SQL_C_DATALINK SQL_C_CHAR#define SQL_C_PTR 2463#define SQL_C_DECIMAL_OLEDB 2514#define SQL_C_DECIMAL64 SQL_DECFLOAT#define SQL_C_DECIMAL128 -361/* * locator type identifier */#define SQL_BLOB_LOCATOR 31#define SQL_CLOB_LOCATOR 41#define SQL_DBCLOB_LOCATOR -351/* * C Data Type for the LOB locator types */#define SQL_C_BLOB_LOCATOR SQL_BLOB_LOCATOR#define SQL_C_CLOB_LOCATOR SQL_CLOB_LOCATOR#define SQL_C_DBCLOB_LOCATOR SQL_DBCLOB_LOCATOR/* * NULL status defines; these are used in SQLColAttributes, SQLDescribeCol, * to describe the nullability of a column in a table. */#define SQL_NO_NULLS 0#define SQL_NULLABLE 1#define SQL_NULLABLE_UNKNOWN 2/* values of UNNAMED field in descriptor used in SQLColAttribute */#define SQL_NAMED 0#define SQL_UNNAMED 1/* values of ALLOC_TYPE field in descriptor */#define SQL_DESC_ALLOC_AUTO 1#define SQL_DESC_ALLOC_USER 2/* values of USER_DEFINED_TYPE_CODE */#define SQL_TYPE_BASE 0#define SQL_TYPE_DISTINCT 1#define SQL_TYPE_STRUCTURED 2#define SQL_TYPE_REFERENCE 3/* Special length values */#define SQL_NULL_DATA -1#define SQL_DATA_AT_EXEC -2#define SQL_NTS -3 /* NTS = Null Terminated String */#define SQL_NTSL -3L /* NTS = Null Terminated String *//* SQLColAttributes defines */#define SQL_COLUMN_SCHEMA_NAME 16#define SQL_COLUMN_CATALOG_NAME 17#define SQL_COLUMN_DISTINCT_TYPE 1250#define SQL_DESC_DISTINCT_TYPE SQL_COLUMN_DISTINCT_TYPE#define SQL_COLUMN_REFERENCE_TYPE 1251#define SQL_DESC_REFERENCE_TYPE SQL_COLUMN_REFERENCE_TYPE#define SQL_DESC_STRUCTURED_TYPE 1252#define SQL_DESC_USER_TYPE 1253#define SQL_DESC_BASE_TYPE 1254#define SQL_DESC_KEY_TYPE 1255#define SQL_DESC_KEY_MEMBER 1266/* identifiers of fields in the SQL descriptor */#define SQL_DESC_COUNT 1001#define SQL_DESC_TYPE 1002#define SQL_DESC_LENGTH 1003#define SQL_DESC_OCTET_LENGTH_PTR 1004#define SQL_DESC_PRECISION 1005#define SQL_DESC_SCALE 1006#define SQL_DESC_DATETIME_INTERVAL_CODE 1007#define SQL_DESC_NULLABLE 1008#define SQL_DESC_INDICATOR_PTR 1009#define SQL_DESC_DATA_PTR 1010#define SQL_DESC_NAME 1011#define SQL_DESC_UNNAMED 1012#define SQL_DESC_OCTET_LENGTH 1013#define SQL_DESC_ALLOC_TYPE 1099#define SQL_DESC_USER_DEFINED_TYPE_CODE 1098/* Defines for SQL_DESC_KEY_TYPE */#define SQL_KEYTYPE_NONE 0#define SQL_KEYTYPE_PRIMARYKEY 1#define SQL_KEYTYPE_UNIQUEINDEX 2/* SQLColAttribute defines for SQL_COLUMN_UPDATABLE condition */#define SQL_UPDT_READONLY 0#define SQL_UPDT_WRITE 1#define SQL_UPDT_READWRITE_UNKNOWN 2/* * SQLColAttribute defines for SQL_COLUMN_SEARCHABLE condition. */#define SQL_PRED_NONE 0#define SQL_PRED_CHAR 1#define SQL_PRED_BASIC 2/* NULL handle defines */#define SQL_NULL_HENV 0L#define SQL_NULL_HDBC 0L#define SQL_NULL_HSTMT 0L#define SQL_NULL_HDESC 0L#define SQL_NULL_HANDLE 0L/* identifiers of fields in the diagnostics area */#define SQL_DIAG_RETURNCODE 1#define SQL_DIAG_NUMBER 2#define SQL_DIAG_ROW_COUNT 3#define SQL_DIAG_SQLSTATE 4#define SQL_DIAG_NATIVE 5#define SQL_DIAG_MESSAGE_TEXT 6#define SQL_DIAG_DYNAMIC_FUNCTION 7#define SQL_DIAG_CLASS_ORIGIN 8#define SQL_DIAG_SUBCLASS_ORIGIN 9#define SQL_DIAG_CONNECTION_NAME 10#define SQL_DIAG_SERVER_NAME 11#define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12/* dynamic function codes */#define SQL_DIAG_ALTER_TABLE 4#define SQL_DIAG_CALL 7#define SQL_DIAG_CREATE_INDEX (-1)#define SQL_DIAG_CREATE_TABLE 77#define SQL_DIAG_CREATE_VIEW 84#define SQL_DIAG_DELETE_WHERE 19#define SQL_DIAG_DROP_INDEX (-2)#define SQL_DIAG_DROP_TABLE 32#define SQL_DIAG_DROP_VIEW 36#define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81#define SQL_DIAG_GRANT 48#define SQL_DIAG_INSERT 50#define SQL_DIAG_MERGE 128#define SQL_DIAG_REVOKE 59#define SQL_DIAG_SELECT_CURSOR 85#define SQL_DIAG_UNKNOWN_STATEMENT 0#define SQL_DIAG_UPDATE_WHERE 82/* * IBM specific SQLGetDiagField values. */#define SQL_DIAG_DEFERRED_PREPARE_ERROR 1279/* SQL_DIAG_ROW_NUMBER values */#define SQL_ROW_NO_ROW_NUMBER (-1)#define SQL_ROW_NUMBER_UNKNOWN (-2)/* SQL_DIAG_COLUMN_NUMBER values */#define SQL_COLUMN_NO_COLUMN_NUMBER (-1)#define SQL_COLUMN_NUMBER_UNKNOWN (-2)/* * The following are provided to enhance portability and compatibility * with ODBC */typedef signed char SCHAR;typedef unsigned char UCHAR;typedef short int SWORD;typedef unsigned short USHORT;typedef signed short SSHORT;typedef unsigned short int UWORD;#if defined(DB2NT) typedef long SDWORD; typedef unsigned long ULONG; typedef unsigned long UDWORD; typedef long SLONG;#else typedef sqlint32 SDWORD; typedef sqluint32 ULONG; typedef sqluint32 UDWORD; typedef sqlint32 SLONG;#endiftypedef double SDOUBLE;typedef float SFLOAT;typedef unsigned char SQLDATE;typedef unsigned char SQLTIME;typedef unsigned char SQLTIMESTAMP;typedef unsigned char SQLDECIMAL;typedef unsigned char SQLNUMERIC;#if defined(WINDOWS)typedef long double LDOUBLE;#elsetypedef double LDOUBLE;#endiftypedef void FAR * PTR;typedef void FAR * HENV;typedef void FAR * HDBC;typedef void FAR * HSTMT;typedef signed short RETCODE;/* SQL portable types for C */typedef UCHAR SQLCHAR;typedef UCHAR SQLVARCHAR;typedef SCHAR SQLSCHAR;typedef SDWORD SQLINTEGER;typedef SWORD SQLSMALLINT;typedef SDOUBLE SQLDOUBLE;typedef SDOUBLE SQLFLOAT;typedef SFLOAT SQLREAL;typedef SQLSMALLINT SQLRETURN;#if (DB2CLI_VER >= 0x0200)typedef UDWORD SQLUINTEGER;typedef UWORD SQLUSMALLINT;#elsetypedef SQLINTEGER SQLUINTEGER;typedef SQLSMALLINT SQLUSMALLINT;#endif/* 64-bit Length Defines */#ifdef ODBC64typedef sqlint64 SQLLEN;typedef sqluint64 SQLULEN;typedef sqluint64 SQLSETPOSIROW;#else#define SQLLEN SQLINTEGER#define SQLULEN SQLUINTEGER#define SQLSETPOSIROW SQLUSMALLINT#endiftypedef PTR SQLPOINTER;/* * Double Byte Character Set support *//* * Do not support SQL_WCHART_CONVERT in UNICODE */#ifdef UNICODE#undef SQL_WCHART_CONVERT#endif#ifdef SQL_WCHART_CONVERT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -