📄 sdodbc.pas
字号:
SQL_C_VARBOOKMARK = SQL_C_BINARY;
//#endif /* ODBCVER >= 0x0300 */
// define for SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER
//#if (ODBCVER >= 0x0300)
SQL_NO_ROW_NUMBER = (-1);
SQL_NO_COLUMN_NUMBER = (-1);
SQL_ROW_NUMBER_UNKNOWN = (-2);
SQL_COLUMN_NUMBER_UNKNOWN = (-2);
//#endif /* ODBCVER >= 0x0300 */
// SQLBindParameter extensions
SQL_DEFAULT_PARAM = (-5);
SQL_IGNORE = (-6);
//#if (ODBCVER >= 0x0300)
SQL_COLUMN_IGNORE = SQL_IGNORE;
//#endif /* ODBCVER >= 0x0300 */
SQL_LEN_DATA_AT_EXEC_OFFSET = (-100);
// SQL_LEN_DATA_AT_EXEC(length) = (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET);
function SQL_LEN_DATA_AT_EXEC(ALength: SQLINTEGER): SQLINTEGER;
const
// binary length for driver specific attributes
SQL_LEN_BINARY_ATTR_OFFSET = (-100);
// SQL_LEN_BINARY_ATTR(length) = (-(length)+SQL_LEN_BINARY_ATTR_OFFSET);
// Defines used by Driver Manager when mapping SQLSetParam to SQLBindParameter
{ SQL_PARAM_TYPE_DEFAULT = SQL_PARAM_INPUT_OUTPUT; }
SQL_SETPARAM_VALUE_MAX = (-1);
// SQLColAttributes defines
SQL_COLUMN_COUNT = 0;
SQL_COLUMN_NAME = 1;
SQL_COLUMN_TYPE = 2;
SQL_COLUMN_LENGTH = 3;
SQL_COLUMN_PRECISION = 4;
SQL_COLUMN_SCALE = 5;
SQL_COLUMN_DISPLAY_SIZE = 6;
SQL_COLUMN_NULLABLE = 7;
SQL_COLUMN_UNSIGNED = 8;
SQL_COLUMN_MONEY = 9;
SQL_COLUMN_UPDATABLE = 10;
SQL_COLUMN_AUTO_INCREMENT = 11;
SQL_COLUMN_CASE_SENSITIVE = 12;
SQL_COLUMN_SEARCHABLE = 13;
SQL_COLUMN_TYPE_NAME = 14;
SQL_COLUMN_TABLE_NAME = 15;
SQL_COLUMN_OWNER_NAME = 16;
SQL_COLUMN_QUALIFIER_NAME = 17;
SQL_COLUMN_LABEL = 18;
SQL_COLATT_OPT_MAX = SQL_COLUMN_LABEL;
//#if (ODBCVER < 0x0300)
SQL_COLUMN_DRIVER_START = 1000;
//#endif /* ODBCVER < 0x0300 */
SQL_COLATT_OPT_MIN = SQL_COLUMN_COUNT;
// SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE
SQL_ATTR_READONLY = 0;
SQL_ATTR_WRITE = 1;
SQL_ATTR_READWRITE_UNKNOWN = 2;
// SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE
// These are also used by SQLGetInfo
SQL_UNSEARCHABLE = 0;
SQL_LIKE_ONLY = 1;
SQL_ALL_EXCEPT_LIKE = 2;
SQL_SEARCHABLE = 3;
SQL_PRED_SEARCHABLE = SQL_SEARCHABLE;
// Special return values for SQLGetData
SQL_NO_TOTAL = (-4);
// New defines for SEARCHABLE column in SQLGetTypeInfo
//#if (ODBCVER >= 0x0300)
SQL_COL_PRED_CHAR = SQL_LIKE_ONLY;
SQL_COL_PRED_BASIC = SQL_ALL_EXCEPT_LIKE;
//#endif /* ODBCVER >= 0x0300 */
//#if (ODBCVER >= 0x0300)
// extended descriptor field
SQL_DESC_ARRAY_SIZE = 20;
SQL_DESC_ARRAY_STATUS_PTR = 21;
SQL_DESC_AUTO_UNIQUE_VALUE = SQL_COLUMN_AUTO_INCREMENT;
SQL_DESC_BASE_COLUMN_NAME = 22;
SQL_DESC_BASE_TABLE_NAME = 23;
SQL_DESC_BIND_OFFSET_PTR = 24;
SQL_DESC_BIND_TYPE = 25;
SQL_DESC_CASE_SENSITIVE = SQL_COLUMN_CASE_SENSITIVE;
SQL_DESC_CATALOG_NAME = SQL_COLUMN_QUALIFIER_NAME;
SQL_DESC_CONCISE_TYPE = SQL_COLUMN_TYPE;
SQL_DESC_DATETIME_INTERVAL_PRECISION = 26;
SQL_DESC_DISPLAY_SIZE = SQL_COLUMN_DISPLAY_SIZE;
SQL_DESC_FIXED_PREC_SCALE = SQL_COLUMN_MONEY;
SQL_DESC_LABEL = SQL_COLUMN_LABEL;
SQL_DESC_LITERAL_PREFIX = 27;
SQL_DESC_LITERAL_SUFFIX = 28;
SQL_DESC_LOCAL_TYPE_NAME = 29;
SQL_DESC_MAXIMUM_SCALE = 30;
SQL_DESC_MINIMUM_SCALE = 31;
SQL_DESC_NUM_PREC_RADIX = 32;
SQL_DESC_PARAMETER_TYPE = 33;
SQL_DESC_ROWS_PROCESSED_PTR = 34;
//#if (ODBCVER >= 0x0350)
SQL_DESC_ROWVER = 35;
//#endif /* ODBCVER >= 0x0350 */
SQL_DESC_SCHEMA_NAME = SQL_COLUMN_OWNER_NAME;
SQL_DESC_SEARCHABLE = SQL_COLUMN_SEARCHABLE;
SQL_DESC_TYPE_NAME = SQL_COLUMN_TYPE_NAME;
SQL_DESC_TABLE_NAME = SQL_COLUMN_TABLE_NAME;
SQL_DESC_UNSIGNED = SQL_COLUMN_UNSIGNED;
SQL_DESC_UPDATABLE = SQL_COLUMN_UPDATABLE;
// defines for diagnostics fields
SQL_DIAG_CURSOR_ROW_COUNT = (-1249);
SQL_DIAG_ROW_NUMBER = (-1248);
SQL_DIAG_COLUMN_NUMBER = (-1247);
//#endif /* ODBCVER >= 0x0300 */
{********************************************
* SQLGetFunctions: additional values for *
* fFunction to represent functions that *
* are not in the X/Open spec. *
********************************************}
//#if (ODBCVER >= 0x0300)
SQL_API_SQLALLOCHANDLESTD = 73;
SQL_API_SQLBULKOPERATIONS = 24;
//#endif /* ODBCVER >= 0x0300 */
SQL_API_SQLBINDPARAMETER = 72;
SQL_API_SQLBROWSECONNECT = 55;
SQL_API_SQLCOLATTRIBUTES = 6;
SQL_API_SQLCOLUMNPRIVILEGES = 56;
SQL_API_SQLDESCRIBEPARAM = 58;
SQL_API_SQLDRIVERCONNECT = 41;
SQL_API_SQLDRIVERS = 71;
SQL_API_SQLEXTENDEDFETCH = 59;
SQL_API_SQLFOREIGNKEYS = 60;
SQL_API_SQLMORERESULTS = 61;
SQL_API_SQLNATIVESQL = 62;
SQL_API_SQLNUMPARAMS = 63;
SQL_API_SQLPARAMOPTIONS = 64;
SQL_API_SQLPRIMARYKEYS = 65;
SQL_API_SQLPROCEDURECOLUMNS = 66;
SQL_API_SQLPROCEDURES = 67;
SQL_API_SQLSETPOS = 68;
SQL_API_SQLSETSCROLLOPTIONS = 69;
SQL_API_SQLTABLEPRIVILEGES = 70;
{*-------------------------------------------*
* SQL_EXT_API_LAST is not useful with ODBC *
* version 3.0 because some of the values *
* from X/Open are in the 10000 range. *
*-------------------------------------------*}
//#if (ODBCVER < 0x0300)
SQL_EXT_API_LAST = SQL_API_SQLBINDPARAMETER;
SQL_NUM_FUNCTIONS = 23;
SQL_EXT_API_START = 40;
SQL_NUM_EXTENSIONS = (SQL_EXT_API_LAST-SQL_EXT_API_START+1);
//#endif
{*--------------------------------------------*
* SQL_API_ALL_FUNCTIONS returns an array *
* of 'booleans' representing whether a *
* function is implemented by the driver. *
* *
* CAUTION: Only functions defined in ODBC *
* version 2.0 and earlier are returned, the *
* new high-range function numbers defined by *
* X/Open break this scheme. See the new *
* method -- SQL_API_ODBC3_ALL_FUNCTIONS *
*--------------------------------------------*}
SQL_API_ALL_FUNCTIONS = 0; // See CAUTION above
{*----------------------------------------------*
* 2.X drivers export a dummy function with *
* ordinal number SQL_API_LOADBYORDINAL to speed*
* loading under the windows operating system. *
* *
* CAUTION: Loading by ordinal is not supported *
* for 3.0 and above drivers. *
*----------------------------------------------*}
SQL_API_LOADBYORDINAL = 199; // See CAUTION above
{*----------------------------------------------*
* SQL_API_ODBC3_ALL_FUNCTIONS *
* This returns a bitmap, which allows us to *
* handle the higher-valued function numbers. *
* Use SQL_FUNC_EXISTS(bitmap,function_number) *
* to determine if the function exists. *
*----------------------------------------------*}
//#if (ODBCVER >= 0x0300)
SQL_API_ODBC3_ALL_FUNCTIONS = 999;
SQL_API_ODBC3_ALL_FUNCTIONS_SIZE = 250; // array of 250 words
{#define SQL_FUNC_EXISTS(pfExists, uwAPI) \
((*(((UWORD*) (pfExists)) + ((uwAPI) >> 4)) \
& (1 << ((uwAPI) & 0x000F)) \
) ? SQL_TRUE : SQL_FALSE \
)
}
//#endif /* ODBCVER >= 0x0300 */
{************************************************/
/* Extended definitions for SQLGetInfo */
/************************************************}
// Values in ODBC 2.0 that are not in the X/Open spec
SQL_INFO_FIRST = 0;
SQL_ACTIVE_CONNECTIONS = 0; // MAX_DRIVER_CONNECTIONS
SQL_ACTIVE_STATEMENTS = 1; // MAX_CONCURRENT_ACTIVITIES
SQL_DRIVER_HDBC = 3;
SQL_DRIVER_HENV = 4;
SQL_DRIVER_HSTMT = 5;
SQL_DRIVER_NAME = 6;
SQL_DRIVER_VER = 7;
SQL_ODBC_API_CONFORMANCE = 9;
SQL_ODBC_VER = 10;
SQL_ROW_UPDATES = 11;
SQL_ODBC_SAG_CLI_CONFORMANCE = 12;
SQL_ODBC_SQL_CONFORMANCE = 15;
SQL_PROCEDURES = 21;
SQL_CONCAT_NULL_BEHAVIOR = 22;
SQL_CURSOR_ROLLBACK_BEHAVIOR = 24;
SQL_EXPRESSIONS_IN_ORDERBY = 27;
SQL_MAX_OWNER_NAME_LEN = 32; // MAX_SCHEMA_NAME_LEN
SQL_MAX_PROCEDURE_NAME_LEN = 33;
SQL_MAX_QUALIFIER_NAME_LEN = 34; // MAX_CATALOG_NAME_LEN
SQL_MULT_RESULT_SETS = 36;
SQL_MULTIPLE_ACTIVE_TXN = 37;
SQL_OUTER_JOINS = 38;
SQL_OWNER_TERM = 39;
SQL_PROCEDURE_TERM = 40;
SQL_QUALIFIER_NAME_SEPARATOR = 41;
SQL_QUALIFIER_TERM = 42;
SQL_SCROLL_OPTIONS = 44;
SQL_TABLE_TERM = 45;
SQL_CONVERT_FUNCTIONS = 48;
SQL_NUMERIC_FUNCTIONS = 49;
SQL_STRING_FUNCTIONS = 50;
SQL_SYSTEM_FUNCTIONS = 51;
SQL_TIMEDATE_FUNCTIONS = 52;
SQL_CONVERT_BIGINT = 53;
SQL_CONVERT_BINARY = 54;
SQL_CONVERT_BIT = 55;
SQL_CONVERT_CHAR = 56;
SQL_CONVERT_DATE = 57;
SQL_CONVERT_DECIMAL = 58;
SQL_CONVERT_DOUBLE = 59;
SQL_CONVERT_FLOAT = 60;
SQL_CONVERT_INTEGER = 61;
SQL_CONVERT_LONGVARCHAR = 62;
SQL_CONVERT_NUMERIC = 63;
SQL_CONVERT_REAL = 64;
SQL_CONVERT_SMALLINT = 65;
SQL_CONVERT_TIME = 66;
SQL_CONVERT_TIMESTAMP = 67;
SQL_CONVERT_TINYINT = 68;
SQL_CONVERT_VARBINARY = 69;
SQL_CONVERT_VARCHAR = 70;
SQL_CONVERT_LONGVARBINARY = 71;
SQL_ODBC_SQL_OPT_IEF = 73; // SQL_INTEGRITY
SQL_CORRELATION_NAME = 74;
SQL_NON_NULLABLE_COLUMNS = 75;
SQL_DRIVER_HLIB = 76;
SQL_DRIVER_ODBC_VER = 77;
SQL_LOCK_TYPES = 78;
SQL_POS_OPERATIONS = 79;
SQL_POSITIONED_STATEMENTS = 80;
SQL_BOOKMARK_PERSISTENCE = 82;
SQL_STATIC_SENSITIVITY = 83;
SQL_FILE_USAGE = 84;
SQL_COLUMN_ALIAS = 87;
SQL_GROUP_BY = 88;
SQL_KEYWORDS = 89;
SQL_OWNER_USAGE = 91;
SQL_QUALIFIER_USAGE = 92;
SQL_QUOTED_IDENTIFIER_CASE = 93;
SQL_SUBQUERIES = 95;
SQL_UNION = 96;
SQL_MAX_ROW_SIZE_INCLUDES_LONG= 103;
SQL_MAX_CHAR_LITERAL_LEN = 108;
SQL_TIMEDATE_ADD_INTERVALS = 109;
SQL_TIMEDATE_DIFF_INTERVALS = 110;
SQL_NEED_LONG_DATA_LEN = 111;
SQL_MAX_BINARY_LITERAL_LEN = 112;
SQL_LIKE_ESCAPE_CLAUSE = 113;
SQL_QUALIFIER_LOCATION = 114;
// values for SQL_BATCH_ROW_COUNT
SQL_BRC_PROCEDURES = 1;
SQL_BRC_EXPLICIT = 2;
SQL_BRC_ROLLED_UP = 4;
// bitmasks for SQL_BATCH_SUPPORT
SQL_BS_SELECT_EXPLICIT = 1;
SQL_BS_ROW_COUNT_EXPLICIT = 2;
SQL_BS_SELECT_PROC = 4;
SQL_BS_ROW_COUNT_PROC = 8;
// Values for SQL_PARAM_ARRAY_ROW_COUNTS getinfo
SQL_PARC_BATCH = 1;
SQL_PARC_NO_BATCH = 2;
// values for SQL_PARAM_ARRAY_SELECT_BATCH
SQL_PAS_BATCH = 1;
SQL_PAS_NO_BATCH = 2;
SQL_PAS_NO_SELECT = 3;
// Bitmasks for SQL_INDEX_KEYWORDS
SQL_IK_NONE = 0;
SQL_IK_ASC = 1;
SQL_IK_DESC = 2;
SQL_IK_ALL = (1 or 2);
{
#if (ODBCVER >= 0x0201 && ODBCVER < 0x0300)
#define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */
#endif /* ODBCVER >= 0x0201 && ODBCVER < 0x0300 */
}
{*----------------------------------------------*
* SQL_INFO_LAST and SQL_INFO_DRIVER_START are *
* not useful anymore, because X/Open has *
* values in the 10000 range. You *
* must contact X/Open directly to get a range *
* of numbers for driver-specific values. *
*----------------------------------------------*}
//#if (ODBCVER < 0x0300)
SQL_INFO_LAST = SQL_QUALIFIER_LOCATION;
SQL_INFO_DRIVER_START = 1000;
//#endif /* ODBCVER < 0x0300 */
{*-----------------------------------------------*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -