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

📄 sqlgetinfo.c

📁 这个是内存数据库的客户端
💻 C
📖 第 1 页 / 共 2 页
字号:
		sValue = MONETDB_PRODUCT_NAME;		break;	case SQL_DBMS_VER:		sValue = MONETDB_DRIVER_VER;		break;	case SQL_PROCEDURES:		sValue = "N";		break;	case SQL_DEFAULT_TXN_ISOLATION:		nValue = SQL_TXN_READ_COMMITTED;		len = sizeof(SQLUINTEGER);		break;	case SQL_EXPRESSIONS_IN_ORDERBY:		sValue = "Y";		break;	case SQL_IDENTIFIER_CASE:		nValue = SQL_IC_LOWER;		len = sizeof(SQLUSMALLINT);		break;	case SQL_IDENTIFIER_QUOTE_CHAR:		sValue = "\"";	/* the " (double quote) */		break;	case SQL_MAX_COLUMN_NAME_LEN:	case SQL_MAX_TABLE_NAME_LEN:	case SQL_MAX_SCHEMA_NAME_LEN:	case SQL_MAX_CATALOG_NAME_LEN:		/* in monet strings can be very long, but limit it		   here to 255 which should be enough in most cases */		nValue = 255;		len = sizeof(SQLUSMALLINT);		break;	case SQL_MAX_CURSOR_NAME_LEN:		nValue = 0;	/* currently SQLSetCursorName is not supported */		len = sizeof(SQLUSMALLINT);		break;	case SQL_MAX_PROCEDURE_NAME_LEN:		/* No support for stored procedures: return 0 as value */		nValue = 0;		len = sizeof(SQLUSMALLINT);		break;	case SQL_MULT_RESULT_SETS:		sValue = "N";		break;	case SQL_MULTIPLE_ACTIVE_TXN:		sValue = "Y";		break;	case SQL_OUTER_JOINS:		sValue = "Y";		break;	case SQL_PROCEDURE_TERM:		sValue = "procedure";		break;	case SQL_SCHEMA_TERM:		sValue = "schema";		break;	case SQL_TABLE_TERM:		sValue = "table";		break;	case SQL_SCROLL_CONCURRENCY:		nValue = SQL_SCCO_READ_ONLY;		len = sizeof(SQLUSMALLINT);		break;	case SQL_TXN_CAPABLE:		nValue = SQL_TC_ALL;		len = sizeof(SQLUSMALLINT);		break;	case SQL_USER_NAME:		sValue = dbc->uid ? dbc->uid : "";		break;	case SQL_NUMERIC_FUNCTIONS:		nValue = SQL_FN_NUM_ABS |			SQL_FN_NUM_ACOS |			SQL_FN_NUM_ASIN |			SQL_FN_NUM_ATAN |			SQL_FN_NUM_ATAN2 |			SQL_FN_NUM_CEILING |			SQL_FN_NUM_COS |			SQL_FN_NUM_COT |			SQL_FN_NUM_DEGREES |			SQL_FN_NUM_EXP |			SQL_FN_NUM_FLOOR |			SQL_FN_NUM_LOG |			SQL_FN_NUM_LOG10 |			SQL_FN_NUM_MOD |			SQL_FN_NUM_PI |			SQL_FN_NUM_POWER |			SQL_FN_NUM_RADIANS |			SQL_FN_NUM_RAND |			SQL_FN_NUM_ROUND |			SQL_FN_NUM_SIGN |			SQL_FN_NUM_SIN |			SQL_FN_NUM_SQRT |			SQL_FN_NUM_TRUNCATE |			SQL_FN_NUM_TAN;		len = sizeof(SQLUINTEGER);		break;	case SQL_STRING_FUNCTIONS:		nValue = SQL_FN_STR_ASCII |			SQL_FN_STR_CHAR |			SQL_FN_STR_CONCAT |			SQL_FN_STR_DIFFERENCE |			SQL_FN_STR_INSERT |			SQL_FN_STR_LCASE |			SQL_FN_STR_LEFT |			SQL_FN_STR_LENGTH |			SQL_FN_STR_LOCATE |			SQL_FN_STR_LTRIM |			SQL_FN_STR_REPEAT |			SQL_FN_STR_REPLACE |			SQL_FN_STR_RIGHT |			SQL_FN_STR_RTRIM |			SQL_FN_STR_SOUNDEX |			SQL_FN_STR_SPACE | 			SQL_FN_STR_UCASE;		len = sizeof(SQLUINTEGER);		break;	case SQL_SYSTEM_FUNCTIONS:		nValue = SQL_FN_SYS_DBNAME | SQL_FN_SYS_USERNAME | SQL_FN_SYS_IFNULL;		len = sizeof(SQLUINTEGER);		break;	case SQL_TIMEDATE_FUNCTIONS:		nValue = SQL_FN_TD_CURDATE |			SQL_FN_TD_CURTIME |			SQL_FN_TD_DAYNAME |			SQL_FN_TD_DAYOFMONTH |			SQL_FN_TD_DAYOFWEEK |			SQL_FN_TD_DAYOFYEAR |			SQL_FN_TD_HOUR |			SQL_FN_TD_MINUTE |			SQL_FN_TD_MONTH |			SQL_FN_TD_MONTHNAME |			SQL_FN_TD_NOW |			SQL_FN_TD_QUARTER |			SQL_FN_TD_SECOND |			SQL_FN_TD_TIMESTAMPADD |			SQL_FN_TD_TIMESTAMPDIFF |			SQL_FN_TD_WEEK |			SQL_FN_TD_YEAR;		len = sizeof(SQLUINTEGER);		break;	case SQL_TXN_ISOLATION_OPTION:		nValue = SQL_TXN_REPEATABLE_READ;		len = sizeof(SQLUINTEGER);		break;	case SQL_INTEGRITY:		sValue = "N";		break;	case SQL_NON_NULLABLE_COLUMNS:		nValue = SQL_NNC_NON_NULL;		len = sizeof(SQLUSMALLINT);		break;	case SQL_POSITIONED_STATEMENTS:		nValue = SQL_PS_SELECT_FOR_UPDATE;		len = sizeof(SQLUINTEGER);		break;	case SQL_GETDATA_EXTENSIONS:		nValue = SQL_GD_ANY_COLUMN | SQL_GD_ANY_ORDER | SQL_GD_BLOCK | SQL_GD_BOUND;		len = sizeof(SQLUINTEGER);		break;	case SQL_FILE_USAGE:		nValue = SQL_FILE_NOT_SUPPORTED;		len = sizeof(SQLUSMALLINT);		break;	case SQL_NULL_COLLATION:		nValue = SQL_NC_LOW;		len = sizeof(SQLUSMALLINT);		break;	case SQL_GROUP_BY:		nValue = SQL_GB_NO_RELATION;		len = sizeof(SQLUSMALLINT);		break;	case SQL_KEYWORDS:{		/* Returns the MonetDB keywords which are not listed		 * as ODBC keyword in the #define SQL_ODBC_KEYWORDS		 * in sql.h		 */		sValue = "BOOLEAN,COLUMNS,FLOOR,IMPORT,REAL";		break;	}	case SQL_ORDER_BY_COLUMNS_IN_SELECT:		sValue = "N";		break;	case SQL_QUOTED_IDENTIFIER_CASE:		nValue = SQL_IC_SENSITIVE;		len = sizeof(SQLUSMALLINT);		break;	case SQL_SPECIAL_CHARACTERS:		sValue = "`!#$;:'<>";	/* allowed table name chars */		break;	case SQL_SUBQUERIES:		nValue = SQL_SQ_COMPARISON | SQL_SQ_EXISTS | SQL_SQ_IN | SQL_SQ_CORRELATED_SUBQUERIES;		len = sizeof(SQLUINTEGER);		break;	case SQL_UNION:		nValue = SQL_U_UNION;		len = sizeof(SQLUINTEGER);		break;	case SQL_MAX_COLUMNS_IN_GROUP_BY:	case SQL_MAX_COLUMNS_IN_INDEX:	case SQL_MAX_COLUMNS_IN_ORDER_BY:	case SQL_MAX_COLUMNS_IN_SELECT:	case SQL_MAX_COLUMNS_IN_TABLE:	case SQL_MAX_TABLES_IN_SELECT:		/* no specified limit for SQL_MAX_COLUMNS_IN_xxx */		nValue = (SQLUSMALLINT) 0;	/* no limits */		len = sizeof(SQLUSMALLINT);		break;	case SQL_MAX_INDEX_SIZE:	case SQL_MAX_ROW_SIZE:	case SQL_MAX_STATEMENT_LEN:		nValue = (SQLUINTEGER) 0;	/* no max.len. */		len = sizeof(SQLUINTEGER);		break;	case SQL_MAX_ROW_SIZE_INCLUDES_LONG:		sValue = "N";		break;	case SQL_MAX_USER_NAME_LEN:		nValue = (SQLUSMALLINT) 0;	/* no max.len. */		len = sizeof(SQLUSMALLINT);		break;	case SQL_MAX_CHAR_LITERAL_LEN:		nValue = (SQLUINTEGER) 1024 *1024;	/* 1MB */		len = sizeof(SQLUINTEGER);		break;	case SQL_NEED_LONG_DATA_LEN:		sValue = "Y";		break;	case SQL_MAX_BINARY_LITERAL_LEN:		nValue = (SQLUINTEGER) 0;	/* not supported yet */		len = sizeof(SQLUINTEGER);		break;	case SQL_LIKE_ESCAPE_CLAUSE:		sValue = "Y";		break;	case SQL_STATIC_SENSITIVITY:		nValue = 0;		/* SQL_SS_ADDITIONS | SQL_SS_DELETIONS | SQL_SS_UPDATES */		len = sizeof(SQLINTEGER);		break;	case SQL_DATETIME_LITERALS:		nValue = SQL_DL_SQL92_DATE |			SQL_DL_SQL92_TIME |			SQL_DL_SQL92_TIMESTAMP |			SQL_DL_SQL92_INTERVAL_YEAR |			SQL_DL_SQL92_INTERVAL_MONTH |			SQL_DL_SQL92_INTERVAL_DAY |			SQL_DL_SQL92_INTERVAL_HOUR |			SQL_DL_SQL92_INTERVAL_MINUTE |			SQL_DL_SQL92_INTERVAL_SECOND |			SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH |			SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR |			SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE |			SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND |			SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE |			SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND |			SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND;		len = sizeof(SQLINTEGER);		break;	/* return default values */	case SQL_DDL_INDEX:	case SQL_DRIVER_HDESC:	case SQL_DROP_ASSERTION:	case SQL_DROP_CHARACTER_SET:	case SQL_DROP_COLLATION:	case SQL_DROP_DOMAIN:	case SQL_DROP_SCHEMA:	case SQL_DROP_TABLE:	case SQL_DROP_TRANSLATION:	case SQL_DROP_VIEW:	case SQL_INFO_SCHEMA_VIEWS:	case SQL_INSERT_STATEMENT:	case SQL_LOCK_TYPES:	case SQL_MAX_ASYNC_CONCURRENT_STATEMENTS:	case SQL_OJ_CAPABILITIES:	case SQL_PARAM_ARRAY_ROW_COUNTS:	case SQL_PARAM_ARRAY_SELECTS:	case SQL_POS_OPERATIONS:	case SQL_SCHEMA_USAGE:	case SQL_TIMEDATE_ADD_INTERVALS:	case SQL_TIMEDATE_DIFF_INTERVALS:		nValue = 0;		len = sizeof(SQLUINTEGER);		break;	case SQL_DESCRIBE_PARAMETER:		sValue = "N";		break;	case SQL_DM_VER:	case SQL_XOPEN_CLI_YEAR:		sValue = "";		break;	case SQL_MAX_IDENTIFIER_LEN:		nValue = 0;		len = sizeof(SQLUSMALLINT);		break;	default:		/* Invalid information type */		addDbcError(dbc, "HY096", NULL, 0);		return SQL_ERROR;	}	/* copy the data to the supplied output parameters */	if (sValue) {		copyString(sValue, pInfoValue, nInfoValueMax, pnLength, SQLSMALLINT, addDbcError, dbc);	} else if (pInfoValue) {		if (len == sizeof(SQLUINTEGER))			*(SQLUINTEGER *) pInfoValue = (SQLUINTEGER) nValue;		else if (len == sizeof(SQLUSMALLINT))			*(SQLUSMALLINT *) pInfoValue = (SQLUSMALLINT) nValue;		if (pnLength)			*pnLength = len;	}	return dbc->Error ? SQL_SUCCESS_WITH_INFO : SQL_SUCCESS;}SQLRETURN SQL_APISQLGetInfo(SQLHDBC hDbc, SQLUSMALLINT nInfoType, SQLPOINTER pInfoValue, SQLSMALLINT nInfoValueMax, SQLSMALLINT *pnLength){	ODBCDbc *dbc = (ODBCDbc *) hDbc;#ifdef ODBCDEBUG	ODBCLOG("SQLGetInfo " PTRFMT " %d\n", PTRFMTCAST hDbc, nInfoType);#endif	if (!isValidDbc(dbc))		return SQL_INVALID_HANDLE;	clearDbcErrors(dbc);	return SQLGetInfo_(dbc, nInfoType, pInfoValue, nInfoValueMax, pnLength);}#ifdef WITH_WCHARSQLRETURN SQL_APISQLGetInfoA(SQLHDBC hDbc, SQLUSMALLINT nInfoType, SQLPOINTER pInfoValue, SQLSMALLINT nInfoValueMax, SQLSMALLINT *pnLength){	return SQLGetInfo(hDbc, nInfoType, pInfoValue, nInfoValueMax, pnLength);}SQLRETURN SQL_APISQLGetInfoW(SQLHDBC hDbc, SQLUSMALLINT nInfoType, SQLPOINTER pInfoValue, SQLSMALLINT nInfoValueMax, SQLSMALLINT *pnLength){	ODBCDbc *dbc = (ODBCDbc *) hDbc;	SQLRETURN rc;	SQLPOINTER ptr;	SQLSMALLINT n;#ifdef ODBCDEBUG	ODBCLOG("SQLGetInfoW " PTRFMT " %d\n", PTRFMTCAST hDbc, nInfoType);#endif	if (!isValidDbc(dbc))		return SQL_INVALID_HANDLE;	clearDbcErrors(dbc);	switch (nInfoType) {		/* all string attributes */	case SQL_ACCESSIBLE_PROCEDURES:	case SQL_ACCESSIBLE_TABLES:	case SQL_CATALOG_NAME:	case SQL_CATALOG_NAME_SEPARATOR:	case SQL_CATALOG_TERM:	case SQL_COLLATION_SEQ:	case SQL_COLUMN_ALIAS:	case SQL_DATABASE_NAME:	case SQL_DATA_SOURCE_NAME:	case SQL_DATA_SOURCE_READ_ONLY:	case SQL_DBMS_NAME:	case SQL_DBMS_VER:	case SQL_DESCRIBE_PARAMETER:	case SQL_DM_VER:	case SQL_DRIVER_NAME:	case SQL_DRIVER_ODBC_VER:	case SQL_DRIVER_VER:	case SQL_EXPRESSIONS_IN_ORDERBY:	case SQL_IDENTIFIER_QUOTE_CHAR:	case SQL_INTEGRITY:	case SQL_KEYWORDS:	case SQL_LIKE_ESCAPE_CLAUSE:	case SQL_MAX_ROW_SIZE_INCLUDES_LONG:	case SQL_MULTIPLE_ACTIVE_TXN:	case SQL_MULT_RESULT_SETS:	case SQL_NEED_LONG_DATA_LEN:	case SQL_ODBC_VER:	case SQL_ORDER_BY_COLUMNS_IN_SELECT:	case SQL_OUTER_JOINS:	case SQL_PROCEDURES:	case SQL_PROCEDURE_TERM:	case SQL_ROW_UPDATES:	case SQL_SCHEMA_TERM:	case SQL_SEARCH_PATTERN_ESCAPE:	case SQL_SERVER_NAME:	case SQL_SPECIAL_CHARACTERS:	case SQL_TABLE_TERM:	case SQL_USER_NAME:	case SQL_XOPEN_CLI_YEAR:		n = nInfoValueMax * 4;		ptr = (SQLPOINTER) malloc(n);		break;	default:		n = nInfoValueMax;		ptr = pInfoValue;		break;	}	rc = SQLGetInfo_(dbc, nInfoType, ptr, n, &n);	if (ptr !=pInfoValue)		fixWcharOut(rc, ptr, n, pInfoValue, nInfoValueMax, pnLength, 2, addDbcError, dbc);	else if (pnLength)		*pnLength = n;	return rc;}#endif /* WITH_WCHAR */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -