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

📄 sdbms_globaldefines.h

📁 使用yacc的一个例子
💻 H
字号:
#ifndef _SDBMS_GLOBALDEFINES_H
#define _SDBMS_GLOBALDEFINES_H

#define	MAX_RANGE	50			//非分层范围最大个数

#define MAX_RECORD_SIZE	4096	//记录最长为4K字节

#define PASSWORD_LENGTH	10		//用户口令长度

#define NULL_CHAR		0xFF	//表示空字符,用在记录数据中,表示该属性为空值

#define	ROLE_DBA		0		//全局DBA角色
#define	ROLE_DBSA		1		//全局DBSA角色
#define	ROLE_SYSTEM		2		//全局SYSTEM角色

#define SYSTEM_USER_DBA		"dba"		//定义DBA用户名
#define SYSTEM_USER_DBSA	"dbsa"		//定义DBSA用户名

#define	SYSTEM_ROLE_DBA		"DBA"		//定义DBA角色名
#define	SYSTEM_ROLE_DBSA	"DBSA"		//定义DBSA角色名
#define	SYSTEM_ROLE_SYSTEM	"SYSTEM"	//定义SYSTEM角色名
#define	SYSTEM_ROLE_LOGIN	"LOGIN"		//定义login角色名
#define	SYSTEM_ROLE_GUEST	"GUEST"		//定义gust角色名
#define	SYSTEM_ROLE_OWNER	"OWNER"		//定义owner角色名

#define SYSTEM_TABLE_TEMP	"temptable"	//定义临时表的表名
#define SYSTEM_TABLE_AUDIT	"audittable"//定义审计记录表名

//不能使用预定义角色名
#define CantUseRoleName(strRoleName, strDefinedRoleName) \
	if (strRoleName.CompareNoCase(strDefinedRoleName) == 0) \
	{ \
		sprintf(g_strMsg, "不能使用预定义角色名%s", strDefinedRoleName); \
		g_msg.ThrowErrorMsg(g_strMsg); \
		return FALSE; \
	}

//不能使用预定义表名
#define CantUseTableName(strTableName, strDefinedTableName) \
	if (strTableName.CompareNoCase(strDefinedTableName) == 0) \
	{ \
		sprintf(g_strMsg, "不能使用预定义表名%s", strDefinedTableName); \
		g_msg.ThrowErrorMsg(g_strMsg); \
		return FALSE; \
	}

//数据类型
typedef enum //DataType		//因为DT_XX与CJLibrary已有定义冲突,所以改用DATATYPE_XX
{
	DATATYPE_INT,		//整型,int
	DATATYPE_UINT,		//无符号整型,UINT
	DATATYPE_BOOL,		//布尔型,BOOL
	DATATYPE_STRING,	//字符串型,规定长度最大为256个字符
	DATATYPE_SECLEVEL,	//安全级型,CSecurityLevel
	DATATYPE_COLREF		//列名
}DataType;

//角色类型
typedef enum //RoleType
{
	RT_GLOBAL,		//全局型
	RT_DATABASE,	//数据库级
	RT_TABLE		//表级
}RoleType;

//系统权限
typedef enum// SystemRight
{
	SR_CONNECT_DATABASE,
	SR_CREATE_DATABASE,
	SR_CREATE_TABLE,
	SR_CREATE_VIEW,
	SR_CREATE_INDEX,
	SR_DROP_DATABASE,
	SR_DROP_TABLE,
	SR_DROP_VIEW,
	SR_DROP_INDEX,
	SR_GRANT_SYSTEM,					//系统命令授权
	SR_REVOKE_SYSTEM,
	SR_CREATE_USER,
	SR_CREATE_ROLE,
	SR_DROP_USER,
	SR_DROP_ROLE,
	SR_SET_PARENT_ROLE,
	SR_SET_CHILD_ROLE,
	SR_SET_TOP_ROLE,
	SR_ADD_ROLE,
	SR_DEL_ROLE,
	SR_CHANGE_ROLE,
	SR_GRANT_OBJECT,						//表级授权
	SR_REVOKE_OBJECT,
	SR_SET_USER_SECURITY_LEVEL,			//设置用户最大安全级
	SR_SET_TABLE_SECURITY_LEVEL,		//设置表安全级
	SR_SET_USER_ALLOW_SECURITY_LEVEL,
	SR_SET_USER_CURRENT_SECURITY_LEVEL,
	SR_AUDIT_USER,						//审计1
	SR_NOAUDIT_USER,
	SR_AUDIT_OBJECT,					//审计2
	SR_NOAUDIT_OBJECT,
	SR_AUDIT_SYSTEM,					//审计3
	SR_NOAUDIT_SYSTEM,
	//辅助权限
	SR_ADDDEL_SYSTEM_ROLE,				//把用户加入/删除到SYSTEM角色中
	SR_ADDDEL_DBSA_ROLE,				//把用户加入/删除到DBSA角色中
	SR_ADDDEL_DBA_ROLE					//把用户加入/删除到DBA角色中
}SystemRight;

//对象权限
typedef enum //ObjectRight
{
	OR_SELECT,		
	OR_INSERT,
	OR_UPDATE,
	OR_DELETE
}ObjectRight;

//结点类型
typedef enum //NodeType
{
	NODE_LEAF,
	NODE_INTERIOR
}NodeType;

//运算操作符
typedef enum //Calcuate
{
	OP_ADD,		//'+'
	OP_SUB,		//'-'
	OP_MUL,		//'*'
	OP_DIV,		//'/'
	OP_UMINUS	//单目'-'
}OPCalc;

//连接符
typedef enum //Conj
{
	OP_OR,		//'OR'
	OP_AND,		//'AND'
	OP_NOT		//'NOT'
}OPConj;

//比较符
typedef enum //Comp
{
	OP_EQU,		//'='
	OP_UNEQU,	//'!='
	OP_LESS,	//'<'
	OP_LESSEQU,	//'<='
	OP_MORE,	//'>'
	OP_MOREEQU	//'>='
}OPComp;

//关系代数运算
typedef enum
{
	OP_PROJECTION,	//投影
	OP_SELECTION,	//选择
	OP_JOIN			//联接
}OPAlgebra;

#endif

⌨️ 快捷键说明

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