📄 sqldefine.h
字号:
// SqlDefine.h: interface for the CSqlDefine class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SQLDEFINE_H__35FA3F22_8323_4EC8_96D6_67858743B8B9__INCLUDED_)
#define AFX_SQLDEFINE_H__35FA3F22_8323_4EC8_96D6_67858743B8B9__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CSqlDefine
{
public:
int CleanOptions(BOOL bCleanLock);
int CheckSql(); //检查SQL语句构造是否合法
int CreateSql(); //根据输入建立SQL语句
CString GetTableName(); //获取该语句操作的表名
CString GetSqlGroupStr();//获取语句中用于分组的部分
CString GetSqlWhereStr();//获取语句中条件部分
CString GetSqlHavingStr();//获取语句中过滤部分
CString GetSqlOrderStr();//获取语句中排序部分
CString GetSqlDelStr(); //获取删除记录的sql语句
CString GetSqlSelStr();//获取查询记录的SQL语句
struct TagSqlDef{ //SQL语句结构
long nType; //分节类型
long nSubType; //操作类型 或操作(OPER_TYPE_OR+OPER_EQUAL)
long nGroup; //条件分组
char cStr[64]; //类型字符串
BOOL bLock; //是否锁定
char cStrVal[64]; //条件
int bres; //位操作比较结果
};
enum euOptionOperator
{
OPER_NONE=0, //直接使用原字符串做条件
OPER_EQUAL=1, //等于
OPER_GREAT=2, //大于
OPER_LESS=3, //小于
OPER_GREAT_EQUAL=4, //大于且等于
OPER_LESS_EQUAL=5, //小于且等于
OPER_LIKE=6, //相似
OPER_NOT_EQUAL=7, //不等于
OPER_BIT_AND_NEQUAL=8, //字位与运算, 结果不等于, &
OPER_BIT_AND_EQUAL=9, //字位与运算, 结果等于, &
OPER_TYPE_OR=1000, //与其他条件或操作
};
enum euSqlType
{
SQL_NORMAL_COLS =1,
SQL_COUNT_COLS =2,
SQL_TABLES =3,
SQL_UPDATE_COLS =4,
SQL_DELETE =5,
SQL_WHERE =6,
SQL_GROUPBY =7,
SQL_HAVING =8,
SQL_ORDERBY =9,
};
/*增加过滤条件
* pStrName 字段名
* pStrValue 字段条件的值 按需要自己加单引号
* nOper 操作类型
* bres 位操作比较结果
* bLock 是否锁定
// 对条件进行分组处理 默认是与操作 使用AddWhereOption("", "",OPER_TYPE_OR,0);可以让各组语句进行或操作
// 分组默认只有nGroupID=1 的一组
// 每组内各条件间 默认是与操作 设置组中第一个条件的操作类型为 OPER_TYPE_OR+nOper 就能够改变组内的操作为或操作
*/
int AddHavingOption(char *pStrName, char* pStrValue, int nOper = OPER_EQUAL, int bres=1 , bool bLock = false);
//增加查询条件
int AddWhereOption(char *pStrName, char* pStrValue, int nOper = OPER_EQUAL, int nGroupID=1,int bres=1 , bool bLock = false);
//设置SQL语句的其他部分(euSqlType中SQL_WHERE和SQL_HAVING以外的
int AddSqlOption(char *pStr, int nType, bool bLock=false);
int DefNewBuf(int nMaxLength);
void SetSqlLikeKey(char cKey) { m_SqlLike=cKey; };
CSqlDefine();
virtual ~CSqlDefine();
private:
CString CreateDelSql();
CString CreatSqlOption(int index);
CString CreateSqlOrderby();
CString CreateSqlHaving();
CString CreateSelSql();
CString CreateSqlGroupby();
CString CreateSqlWhere();
CString CreateGroupSql(int nGroup);
TagSqlDef *m_SqlDefine;
char m_SqlLike;
int m_nCurOption;
int m_nMaxOption;
CString m_strSqlSel;
CString m_strSqlDel;
CString m_strSqlWhere;
CString m_strSqlGroupby;
CString m_strSqlOrderby;
CString m_strSqlHaving;
CString m_strTableName;
};
#endif // !defined(AFX_SQLDEFINE_H__35FA3F22_8323_4EC8_96D6_67858743B8B9__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -