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

📄 databasemetadata.cpp.svn-base

📁 絲路server源碼 Silk Road server source
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
bool DatabaseMetaData::supportsAlterTableWithAddColumn(){  return (this->_getNumeric32	  (SQL_ALTER_TABLE)&SQL_AT_ADD_COLUMN)!=0;}bool DatabaseMetaData::supportsAlterTableWithDropColumn(){  return (this->_getNumeric32	  (SQL_ALTER_TABLE)&SQL_AT_DROP_COLUMN)!=0;}ODBCXX_STRING DatabaseMetaData::getExtraNameCharacters(){  return this->_getStringInfo(SQL_SPECIAL_CHARACTERS);}ODBCXX_STRING DatabaseMetaData::getSearchStringEscape(){  return this->_getStringInfo(SQL_SEARCH_PATTERN_ESCAPE);}ODBCXX_STRING DatabaseMetaData::getNumericFunctions(){  static struct {    int funcId;    const ODBCXX_CHAR_TYPE* funcName;  } fmap[] = {    { SQL_FN_NUM_ABS,      ODBCXX_STRING_CONST("ABS") },    { SQL_FN_NUM_ACOS,     ODBCXX_STRING_CONST("ACOS") },    { SQL_FN_NUM_ASIN,     ODBCXX_STRING_CONST("ASIN") },    { SQL_FN_NUM_ATAN,     ODBCXX_STRING_CONST("ATAN") },    { SQL_FN_NUM_ATAN2,    ODBCXX_STRING_CONST("ATAN2") },    { SQL_FN_NUM_CEILING,  ODBCXX_STRING_CONST("CEILING") },    { SQL_FN_NUM_COS,      ODBCXX_STRING_CONST("COS") },    { SQL_FN_NUM_COT,      ODBCXX_STRING_CONST("COT") },    { SQL_FN_NUM_DEGREES,  ODBCXX_STRING_CONST("DEGREES") },    { SQL_FN_NUM_EXP,      ODBCXX_STRING_CONST("EXP") },    { SQL_FN_NUM_FLOOR,    ODBCXX_STRING_CONST("FLOOR") },    { SQL_FN_NUM_LOG,      ODBCXX_STRING_CONST("LOG") },    { SQL_FN_NUM_LOG10,    ODBCXX_STRING_CONST("LOG10") },    { SQL_FN_NUM_MOD,      ODBCXX_STRING_CONST("MOD") },    { SQL_FN_NUM_PI,       ODBCXX_STRING_CONST("PI") },    { SQL_FN_NUM_POWER,    ODBCXX_STRING_CONST("POWER") },    { SQL_FN_NUM_RADIANS,  ODBCXX_STRING_CONST("RADIANS") },    { SQL_FN_NUM_RAND,     ODBCXX_STRING_CONST("RAND") },    { SQL_FN_NUM_ROUND,    ODBCXX_STRING_CONST("ROUND") },    { SQL_FN_NUM_SIGN,     ODBCXX_STRING_CONST("SIGN") },    { SQL_FN_NUM_SIN,      ODBCXX_STRING_CONST("SIN") },    { SQL_FN_NUM_SQRT,     ODBCXX_STRING_CONST("SQRT") },    { SQL_FN_NUM_TAN,      ODBCXX_STRING_CONST("TAN") },    { SQL_FN_NUM_TRUNCATE, ODBCXX_STRING_CONST("TRUNCATE") },    { 0, NULL }  };  SQLUINTEGER r=this->_getNumeric32    (SQL_NUMERIC_FUNCTIONS);  ODBCXX_STRING ret=ODBCXX_STRING_CONST("");  for(int i=0; fmap[i].funcId>0; i++) {    if(r&(fmap[i].funcId)) {      if(ret.length()>0) {	ret+=ODBCXX_STRING_CONST(",");      }      ret+=fmap[i].funcName;    }  }  return ret;}ODBCXX_STRING DatabaseMetaData::getStringFunctions(){  static struct {    int funcId;    const ODBCXX_CHAR_TYPE* funcName;  } fmap[] = {#if ODBCVER>=0x0300    { SQL_FN_STR_BIT_LENGTH,       ODBCXX_STRING_CONST("BIT_LENGTH") },    { SQL_FN_STR_CHAR_LENGTH,      ODBCXX_STRING_CONST("CHAR_LENGTH") },    { SQL_FN_STR_CHARACTER_LENGTH, ODBCXX_STRING_CONST("CHARACTER_LENGTH") },    { SQL_FN_STR_OCTET_LENGTH,     ODBCXX_STRING_CONST("OCTET_LENGTH") },    { SQL_FN_STR_POSITION,         ODBCXX_STRING_CONST("POSITION") },#endif    { SQL_FN_STR_ASCII,            ODBCXX_STRING_CONST("ASCII") },    { SQL_FN_STR_CHAR,             ODBCXX_STRING_CONST("CHAR") },    { SQL_FN_STR_CONCAT,           ODBCXX_STRING_CONST("CONCAT") },    { SQL_FN_STR_DIFFERENCE,       ODBCXX_STRING_CONST("DIFFERENCE") },    { SQL_FN_STR_INSERT,           ODBCXX_STRING_CONST("INSERT") },    { SQL_FN_STR_LCASE,            ODBCXX_STRING_CONST("LCASE") },    { SQL_FN_STR_LEFT,             ODBCXX_STRING_CONST("LEFT") },    { SQL_FN_STR_LENGTH,           ODBCXX_STRING_CONST("LENGTH") },    { SQL_FN_STR_LOCATE,           ODBCXX_STRING_CONST("LOCATE") },    { SQL_FN_STR_LOCATE_2,         ODBCXX_STRING_CONST("LOCATE_2") },    { SQL_FN_STR_LTRIM,            ODBCXX_STRING_CONST("LTRIM") },    { SQL_FN_STR_REPEAT,           ODBCXX_STRING_CONST("REPEAT") },    { SQL_FN_STR_REPLACE,          ODBCXX_STRING_CONST("REPLACE") },    { SQL_FN_STR_RIGHT,            ODBCXX_STRING_CONST("RIGHT") },    { SQL_FN_STR_RTRIM,            ODBCXX_STRING_CONST("RTRIM") },    { SQL_FN_STR_SOUNDEX,          ODBCXX_STRING_CONST("SOUNDEX") },    { SQL_FN_STR_SPACE,            ODBCXX_STRING_CONST("SPACE") },    { SQL_FN_STR_SUBSTRING,        ODBCXX_STRING_CONST("SUBSTRING") },    { SQL_FN_STR_UCASE,            ODBCXX_STRING_CONST("UCASE") },    { 0, NULL }  };  SQLUINTEGER r=this->_getNumeric32    (SQL_STRING_FUNCTIONS);  ODBCXX_STRING ret=ODBCXX_STRING_CONST("");  for(int i=0; fmap[i].funcId>0; i++) {    if(r&(fmap[i].funcId)) {      if(ret.length()>0) {	ret+=ODBCXX_STRING_CONST(",");      }      ret+=fmap[i].funcName;    }  }  return ret;}ODBCXX_STRING DatabaseMetaData::getSystemFunctions(){  static struct {    int funcId;    const ODBCXX_CHAR_TYPE* funcName;  } fmap[] = {    { SQL_FN_SYS_DBNAME,   ODBCXX_STRING_CONST("DBNAME") },    { SQL_FN_SYS_IFNULL,   ODBCXX_STRING_CONST("IFNULL") },    { SQL_FN_SYS_USERNAME, ODBCXX_STRING_CONST("USERNAME") },    { 0, NULL }  };  SQLUINTEGER r=this->_getNumeric32    (SQL_SYSTEM_FUNCTIONS);  ODBCXX_STRING ret=ODBCXX_STRING_CONST("");  for(int i=0; fmap[i].funcId>0; i++) {    if(r&(fmap[i].funcId)) {      if(ret.length()>0) {	ret+=ODBCXX_STRING_CONST(",");      }      ret+=fmap[i].funcName;    }  }  return ret;}ODBCXX_STRING DatabaseMetaData::getTimeDateFunctions(){  static struct {    int funcId;    const ODBCXX_CHAR_TYPE* funcName;  } fmap[] = {#if ODBCVER>=0x0300    { SQL_FN_TD_CURRENT_DATE,      ODBCXX_STRING_CONST("CURRENT_DATE") },    { SQL_FN_TD_CURRENT_TIME,      ODBCXX_STRING_CONST("CURRENT_TIME") },    { SQL_FN_TD_CURRENT_TIMESTAMP, ODBCXX_STRING_CONST("CURRENT_TIMESTAMP") },    { SQL_FN_TD_EXTRACT,           ODBCXX_STRING_CONST("EXTRACT") },#endif    { SQL_FN_TD_CURDATE,           ODBCXX_STRING_CONST("CURDATE") },    { SQL_FN_TD_CURTIME,           ODBCXX_STRING_CONST("CURTIME") },    { SQL_FN_TD_DAYNAME,           ODBCXX_STRING_CONST("DAYNAME") },    { SQL_FN_TD_DAYOFMONTH,        ODBCXX_STRING_CONST("DAYOFMONTH") },    { SQL_FN_TD_DAYOFWEEK,         ODBCXX_STRING_CONST("DAYOFWEEK") },    { SQL_FN_TD_DAYOFYEAR,         ODBCXX_STRING_CONST("DAYOFYEAR") },    { SQL_FN_TD_HOUR,              ODBCXX_STRING_CONST("HOUR") },    { SQL_FN_TD_MINUTE,            ODBCXX_STRING_CONST("MINUTE") },    { SQL_FN_TD_MONTH,             ODBCXX_STRING_CONST("MONTH") },    { SQL_FN_TD_MONTHNAME,         ODBCXX_STRING_CONST("MONTHNAME") },    { SQL_FN_TD_NOW,               ODBCXX_STRING_CONST("NOW") },    { SQL_FN_TD_QUARTER,           ODBCXX_STRING_CONST("QUARTER") },    { SQL_FN_TD_SECOND,            ODBCXX_STRING_CONST("SECOND") },    { SQL_FN_TD_TIMESTAMPADD,      ODBCXX_STRING_CONST("TIMESTAMPADD") },    { SQL_FN_TD_TIMESTAMPDIFF,     ODBCXX_STRING_CONST("TIMESTAMPDIFF") },    { SQL_FN_TD_WEEK,              ODBCXX_STRING_CONST("WEEK") },    { SQL_FN_TD_YEAR,              ODBCXX_STRING_CONST("YEAR") },    { 0, NULL }  };  SQLUINTEGER r=this->_getNumeric32    (SQL_TIMEDATE_FUNCTIONS);  ODBCXX_STRING ret=ODBCXX_STRING_CONST("");  for(int i=0; fmap[i].funcId>0; i++) {    if(r&(fmap[i].funcId)) {      if(ret.length()>0) {	ret+=ODBCXX_STRING_CONST(",");      }      ret+=fmap[i].funcName;    }  }  return ret;}bool DatabaseMetaData::supportsCatalogsInDataManipulation(){  return (this->_getNumeric32	  (ODBC3_C(SQL_CATALOG_USAGE,		   SQL_QUALIFIER_USAGE))	  &ODBC3_C(SQL_CU_DML_STATEMENTS,		   SQL_QU_DML_STATEMENTS))!=0;}bool DatabaseMetaData::supportsCatalogsInProcedureCalls(){  return (this->_getNumeric32	  (ODBC3_C(SQL_CATALOG_USAGE,		   SQL_QUALIFIER_USAGE))	  &ODBC3_C(SQL_CU_PROCEDURE_INVOCATION,		   SQL_QU_PROCEDURE_INVOCATION))!=0;}bool DatabaseMetaData::supportsCatalogsInTableDefinitions(){  return (this->_getNumeric32	  (ODBC3_C(SQL_CATALOG_USAGE,		   SQL_QUALIFIER_USAGE))	  &ODBC3_C(SQL_CU_TABLE_DEFINITION,		   SQL_QU_TABLE_DEFINITION))!=0;}bool DatabaseMetaData::supportsCatalogsInIndexDefinitions(){  return (this->_getNumeric32	  (ODBC3_C(SQL_CATALOG_USAGE,		   SQL_QUALIFIER_USAGE))	  &ODBC3_C(SQL_CU_INDEX_DEFINITION,		   SQL_QU_INDEX_DEFINITION))!=0;}bool DatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(){  return (this->_getNumeric32	  (ODBC3_C(SQL_CATALOG_USAGE,		   SQL_QUALIFIER_USAGE))	  &ODBC3_C(SQL_CU_PRIVILEGE_DEFINITION,		   SQL_QU_PRIVILEGE_DEFINITION))!=0;}bool DatabaseMetaData::supportsSchemasInDataManipulation(){  return (this->_getNumeric32	  (ODBC3_C(SQL_SCHEMA_USAGE,		   SQL_OWNER_USAGE))	  &ODBC3_C(SQL_SU_DML_STATEMENTS,		   SQL_OU_DML_STATEMENTS))!=0;}bool DatabaseMetaData::supportsSchemasInProcedureCalls(){  return (this->_getNumeric32	  (ODBC3_C(SQL_SCHEMA_USAGE,		   SQL_OWNER_USAGE))	  &ODBC3_C(SQL_SU_PROCEDURE_INVOCATION,		   SQL_OU_PROCEDURE_INVOCATION))!=0;}bool DatabaseMetaData::supportsSchemasInTableDefinitions(){  return (this->_getNumeric32	  (ODBC3_C(SQL_SCHEMA_USAGE,		   SQL_OWNER_USAGE))	  &ODBC3_C(SQL_SU_TABLE_DEFINITION,		   SQL_OU_TABLE_DEFINITION))!=0;}bool DatabaseMetaData::supportsSchemasInIndexDefinitions(){  return (this->_getNumeric32	  (ODBC3_C(SQL_SCHEMA_USAGE,		   SQL_OWNER_USAGE))	  &ODBC3_C(SQL_SU_INDEX_DEFINITION,		   SQL_OU_INDEX_DEFINITION))!=0;}bool DatabaseMetaData::supportsSchemasInPrivilegeDefinitions(){  return (this->_getNumeric32	  (ODBC3_C(SQL_SCHEMA_USAGE,		   SQL_OWNER_USAGE))	  &ODBC3_C(SQL_SU_PRIVILEGE_DEFINITION,		   SQL_OU_PRIVILEGE_DEFINITION))!=0;}bool DatabaseMetaData::supportsGroupBy(){  return this->_getNumeric16    (SQL_GROUP_BY)!=SQL_GB_NOT_SUPPORTED;}bool DatabaseMetaData::supportsGroupByUnrelated(){  SQLUSMALLINT r=this->_getNumeric16    (SQL_GROUP_BY);  return r==SQL_GB_NO_RELATION;}bool DatabaseMetaData::supportsGroupByBeyondSelect(){  SQLUSMALLINT r=this->_getNumeric16    (SQL_GROUP_BY);  return r==SQL_GB_GROUP_BY_CONTAINS_SELECT;}bool DatabaseMetaData::supportsUnion(){  return (this->_getNumeric32	  (SQL_UNION)&SQL_U_UNION)!=0;}bool DatabaseMetaData::supportsUnionAll(){  return (this->_getNumeric32	  (SQL_UNION)&(SQL_U_UNION | SQL_U_UNION_ALL))!=0;}bool DatabaseMetaData::supportsOuterJoins(){  return (this->_getNumeric32	  (SQL_OJ_CAPABILITIES)&	  (SQL_OJ_LEFT | SQL_OJ_RIGHT | SQL_OJ_FULL | SQL_OJ_NESTED))!=0;}bool DatabaseMetaData::supportsFullOuterJoins(){  return (this->_getNumeric32	  (SQL_OJ_CAPABILITIES)&(SQL_OJ_FULL | SQL_OJ_NESTED))!=0;}bool DatabaseMetaData::supportsLimitedOuterJoins(){  return this->supportsFullOuterJoins() || this->supportsOuterJoins();}bool DatabaseMetaData::usesLocalFilePerTable(){  return this->_getNumeric16    (SQL_FILE_USAGE)==SQL_FILE_TABLE;}bool DatabaseMetaData::usesLocalFiles(){  return this->_getNumeric16    (SQL_FILE_USAGE)!=SQL_FILE_NOT_SUPPORTED;}bool DatabaseMetaData::nullsAreSortedHigh(){  return this->_getNumeric16    (SQL_NULL_COLLATION)==SQL_NC_HIGH;}bool DatabaseMetaData::nullsAreSortedLow(){  return this->_getNumeric16    (SQL_NULL_COLLATION)==SQL_NC_LOW;}bool DatabaseMetaData::nullsAreSortedAtStart(){  return this->_getNumeric16    (SQL_NULL_COLLATION)==SQL_NC_START;}bool DatabaseMetaData::nullsAreSortedAtEnd(){  return this->_getNumeric16    (SQL_NULL_COLLATION)==SQL_NC_END;}bool DatabaseMetaData::allProceduresAreCallable(){  return this->_getStringInfo(SQL_ACCESSIBLE_PROCEDURES)==ODBCXX_STRING_CONST("Y");}bool DatabaseMetaData::allTablesAreSelectable(){  return this->_getStringInfo(SQL_ACCESSIBLE_TABLES)==ODBCXX_STRING_CONST("Y");}bool DatabaseMetaData::isReadOnly(){  return this->_getStringInfo(SQL_DATA_SOURCE_READ_ONLY)==ODBCXX_STRING_CONST("Y");}bool DatabaseMetaData::supportsTableCorrelationNames(){  return this->_getNumeric16    (SQL_CORRELATION_NAME)!=SQL_CN_NONE;}bool DatabaseMetaData::supportsCorrelatedSubqueries(){  return (this->_getNumeric32	  (SQL_SUBQUERIES)&SQL_SQ_CORRELATED_SUBQUERIES)!=0;}bool DatabaseMetaData::supportsSubqueriesInComparisons(){  return (this->_getNumeric32	  (SQL_SUBQUERIES)&SQL_SQ_COMPARISON)!=0;}bool DatabaseMetaData::supportsSubqueriesInExists(){  return (this->_getNumeric32	  (SQL_SUBQUERIES)&SQL_SQ_EXISTS)!=0;}bool DatabaseMetaData::supportsSubqueriesInIns(){  return (this->_getNumeric32	  (SQL_SUBQUERIES)&SQL_SQ_IN)!=0;}bool DatabaseMetaData::supportsSubqueriesInQuantifieds(){  return (this->_getNumeric32	  (SQL_SUBQUERIES)&SQL_SQ_QUANTIFIED)!=0;}bool DatabaseMetaData::supportsExpressionsInOrderBy(){  return this->_getStringInfo(SQL_EXPRESSIONS_IN_ORDERBY)==ODBCXX_STRING_CONST("Y");}bool DatabaseMetaData::supportsLikeEscapeClause(){  return this->_getStringInfo(SQL_LIKE_ESCAPE_CLAUSE)==ODBCXX_STRING_CONST("Y");}bool DatabaseMetaData::supportsMultipleResultSets(){  return this->_getStringInfo(SQL_MULT_RESULT_SETS)==ODBCXX_STRING_CONST("Y");}bool DatabaseMetaData::supportsNonNullableColumns(){  return this->_getNumeric16    (SQL_NON_NULLABLE_COLUMNS)==SQL_NNC_NON_NULL;}bool DatabaseMetaData::supportsMinimumSQLGrammar(){  return true;}bool DatabaseMetaData::supportsCoreSQLGrammar(){  return this->_getNumeric16    (SQL_ODBC_SQL_CONFORMANCE)!=SQL_OSC_MINIMUM;}bool DatabaseMetaData::supportsExtendedSQLGrammar(){  return this->_getNumeric16    (SQL_ODBC_SQL_CONFORMANCE)==SQL_OSC_EXTENDED;}bool DatabaseMetaData::supportsANSI92EntryLevelSQL(){  return ODBC3_DC((this->_getNumeric32		   (SQL_SQL_CONFORMANCE)&SQL_SC_SQL92_ENTRY)!=0,		  false);}bool DatabaseMetaData::supportsANSI92FullSQL(){  return ODBC3_DC((this->_getNumeric32		   (SQL_SQL_CONFORMANCE)&SQL_SC_SQL92_FULL)!=0,		  false);}bool DatabaseMetaData::supportsANSI92IntermediateSQL(){  return ODBC3_DC((this->_getNumeric32		   (SQL_SQL_CONFORMANCE)&SQL_SC_SQL92_INTERMEDIATE)!=0,		  false);}intDatabaseMetaData::getMaxBinaryLiteralLength(){  return this->_getNumeric32    (SQL_MAX_BINARY_LITERAL_LEN);}intDatabaseMetaData::getMaxCharLiteralLength(){  return this->_getNumeric32    (SQL_MAX_CHAR_LITERAL_LEN);}intDatabaseMetaData::getMaxColumnNameLength(){  return this->_getNumeric16    (SQL_MAX_COLUMN_NAME_LEN);}intDatabaseMetaData::getMaxColumnsInGroupBy(){  return this->_getNumeric16    (SQL_MAX_COLUMNS_IN_GROUP_BY);}intDatabaseMetaData::getMaxColumnsInIndex(){  return this->_getNumeric16    (SQL_MAX_COLUMNS_IN_INDEX);}intDatabaseMetaData::getMaxColumnsInOrderBy(){  return this->_getNumeric16    (SQL_MAX_COLUMNS_IN_ORDER_BY);}intDatabaseMetaData::getMaxColumnsInSelect(){  return this->_getNumeric16    (SQL_MAX_COLUMNS_IN_SELECT);}intDatabaseMetaData::getMaxColumnsInTable(){  return this->_getNumeric16    (SQL_MAX_COLUMNS_IN_TABLE);}intDatabaseMetaData::getMaxCursorNameLength(){  return this->_getNumeric16    (SQL_MAX_CURSOR_NAME_LEN);}intDatabaseMetaData::getMaxIndexLength(){  return this->_getNumeric32    (SQL_MAX_INDEX_SIZE);}intDatabaseMetaData::getMaxSchemaNameLength(){  return this->_getNumeric16    (ODBC3_C(SQL_MAX_SCHEMA_NAME_LEN,SQL_MAX_OWNER_NAME_LEN));}intDatabaseMetaData::getMaxProcedureNameLength(){  return this->_getNumeric16    (SQL_MAX_PROCEDURE_NAME_LEN);}intDatabaseMetaData::getMaxCatalogNameLength(){  return this->_getNumeric16    (ODBC3_C(SQL_MAX_CATALOG_NAME_LEN,SQL_MAX_QUALIFIER_NAME_LEN));

⌨️ 快捷键说明

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