⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdodbc.pas

📁 SQLDirect Component Library is a light-weight Borland Database Engine replacement for Borland Delphi
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -