亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? intepretor.h

?? 實(shí)現(xiàn)一個精簡型單用戶SQL引擎(DBMS)MiniSQL
?? H
?? 第 1 頁 / 共 2 頁
字號:
	}
  ~TB_Select_Info(){delete ColumnHead;delete ConditionHead;}
};
    
//插入的記錄的其中一個字段信息
typedef struct TInsert_Column *pIns_Col;
typedef  struct TInsert_Column  
{											    
	char		      		ColumnName[NAMEMAXLEN];			    //字段名
	Column_Type		  	    ColType;		              		//此字段的類型
	COLVAL		            value;
	TInsert_Column*		    next;			                	//下一個字段信息
	TInsert_Column(char* str,Column_Type coltype,COLVAL val):
        ColType(coltype),value(val) {strcpy(ColumnName,str);
	next = NULL;}
	~TInsert_Column(){delete next;}
}Insert_Column;

//插入的記錄
class TB_Insert_Info							
{
public:
	TB_Insert_Info(char* tbname,pIns_Col phead,int ival):head(phead),ColumnNum(ival){strcpy(TableName,tbname);}
	char 			        TableName[NAMEMAXLEN];				//所要插入的表名
	Insert_Column*      	head;				               	//所有字段信息鏈表
	int			           	ColumnNum;		          			//鏈表長度
	~TB_Insert_Info(){delete head;} 
};

										    
//修改的記錄的其中一個字段信息
typedef struct TUpdate_Column *pUpd_Col;
typedef struct TUpdate_Column 
{
	char				    ColumnName[NAMEMAXLEN];		        //字段名
	Column_Type		    	ColType;	            		    //此字段的類型
	COLVAL		            value;                              //字段的新值
	TUpdate_Column*		    next;	              			    //下一個字段信息
	TUpdate_Column(char* colname,Column_Type tcoltype,COLVAL val):
	ColType(tcoltype),value(val),next(0)
	{strcpy(ColumnName,colname);
	}
	~TUpdate_Column(){delete next;}
}Update_Column;


//修改信息
class	 TB_Update_Info						
{
public:
	TB_Update_Info(char* tbname,Update_Column* colhead,int colnum,pConds condhead,int condnum):
	ColumnHead(colhead),ConditionHead(condhead),ColumnNum(colnum),ConditionNum(condnum)
	{strcpy(TableName,tbname);}
	Update_Column*		ColumnHead;		      	                //所要修改的字段及其值的鏈表
	pConds 	            ConditionHead;	    	                //修改的范圍的查詢條件鏈表
	int					ColumnNum;			                    //字段數(shù)
	int					ConditionNum;		                    //條件數(shù)
	char				TableName[NAMEMAXLEN];		            //要執(zhí)行修改的表名
	~TB_Update_Info(){delete ColumnHead;delete ConditionHead;}
};


//刪除信息
class	 TB_Delete_Info						
{
public:
	char		      		TableName[32];		                //要進(jìn)行刪除的表名
	Delete_Condition*	    head;			    	            //條件鏈表
	int					    ConditionNum;	  	                //條件鏈表長度
	TB_Delete_Info(char* tbn,Delete_Condition *pdel_cond,int icond):
	head(pdel_cond),ConditionNum(icond)
	{
		strcpy(TableName,tbn);
	}
	~TB_Delete_Info(){delete head;};
};

 //*** 類型說明:這是有關(guān)處理輸入的一個類,包括輸入->有意字串,有意字串->參數(shù)類的組織全在其成員函數(shù)之中
 class Ch_csVstrBlk
 {
  public:
    Ch_csVstrBlk();                                             
    //對輸入進(jìn)行處理,產(chǎn)生一個有以字串的集合
  	~Ch_csVstrBlk(){delete strInputCharList;delete  StrHead;}

    void MakeVstrBlkList();
    //** 功能描述: 用于將所有vstrBlk給打印出來
    TB_Create_Info* CH_Create();
    //** 功能描述:負(fù)責(zé)Create命令的所有操作
    TB_Select_Info* CH_Select();
    //** 功能描述:負(fù)責(zé)Select命令的所有操作 
    TB_Insert_Info* CH_Insert();
    //** 功能描述:負(fù)責(zé)Insert命令的所有操作 
    TB_Update_Info* CH_Update();
    //** 功能描述:負(fù)責(zé)Update命令的所有操作 
    TB_Delete_Info* CH_Delete();
    //** 功能描述:負(fù)責(zé)Deletc命令的所有操作
	  
    ECMD_TYPE ResolveCmd();
    //** 功能描述:負(fù)責(zé)判斷第一個有意字串并決定輸入的到底是何命令
	void ThrowStrErr(int type,int iNum = 0);
    //** 功能描述:負(fù)責(zé)構(gòu)造一個錯誤類并將它拋出來
    void PassCommon(char*);
    void ChoseDatabase();
    //** 功能描述:選擇一個數(shù)據(jù)庫
    void DropDB();
    //** 功能描述:刪除一個數(shù)據(jù)庫
    void DropTB();
   //** 功能描述:刪除一個表
    void NewDB();
   //** 功能描述:創(chuàng)建一個數(shù)據(jù)庫

  private:
    VSTR_BLK_PTR StrHead;
    VSTR_BLK_PTR StrNow;
    VSTR_BLK_PTR StrTail;
    char* strInputCharList;
    int iNumNowInVstr;
    //** 功能描述:記錄現(xiàn)在StrNow所指的對象在鏈表中所處的序號(從1開始計(jì)數(shù))
    int iLineNum[20][2];                                        
    //** 功能描述:記錄輸入的行數(shù)信息,用于出錯時提示,
    //如x=iLineNum[i][0]:表示第i行的起始元素在StrHead所指向的鏈表中處于第x個位置(從0開始計(jì))
    int sta_i;
    //** 功能描述:用于描述對于這一次的命令輸入的處理中當(dāng)前所出的在strInputCharList中的位置,見InString();函數(shù)

	char* InitialInput();
    //** 功能描述:初始化輸入
    char* GetTBName();
    //** 功能描述:從StrNow->str中得到所需要的表名
    bool InString(char**);
    //** 功能描述:在初始化得到的字符串中獲取一個有意字串
    void InitialVar();
    //** 功能描述:初始化一些特殊的值
    void NextStr();
    //** 功能描述:跳到下一個有意字串
    pCreate_Column GetColumnInfo(bool* NotEnd,bool&);
    void GetCheckInfo(bool *NotEnd,pCreate_Column pHead);
    //** 功能描述:得到有關(guān)一個列的約束信息
    EOPE_TYPE GetOptype();
    //** 功能描述:得到一個列的約束的操作類型
    pCreate_Column GetColForCheck(char* str,pCreate_Column pHead);
    //** 功能描述:得到有關(guān)一個列的約束類型,是 enum Operator_Type {B, BE, L, LE, E, NE,BETWEEN} 中的一種 
    void SetMin_Max(COLVAL& min,COLVAL& max,EOPE_TYPE optype,ECOL_TYPE coltype,bool next = 1);
    //** 功能描述:根據(jù)optype給min和max賦值,當(dāng)前StrNow必須處在處理的有意字串上
    void SetMin_Max(COLVAL temp,COLVAL& min,COLVAL& max,EOPE_TYPE optype,ECOL_TYPE coltype);
    //** 功能描述:重載SetMin_Max,利用temp的值配合optype和coltype來給min和max賦值
    void SetColValFStr(ECOL_TYPE& coltype,COLVAL& tColval,bool next = 1);
    //** 功能描述:得到有關(guān)一個輸入的字串為和類型(I,C,F)及對相應(yīng)的tColVal賦值
    pSel_Col   GetSelColList(int& iColNum);
    //** 功能描述:得到select中關(guān)于字段(列名)的列表
    pSel_Cond  GetCondList(int& iCondNum);
    //** 功能描述:得到select,update,delete,insert中有關(guān)條件的描述信息的列表
    pIns_Col GetInsValList(int& iValNum);
    //** 功能描述:得到一個有關(guān)Insert函數(shù)中所有的輸入的值得鏈表
    pUpd_Col GetUpdColList(int &iColNum);
    //** 功能描述:得到Update中關(guān)于字段(列名)及其值的列表
 };

 /***********************類定義***********************/
 /***********************函數(shù)聲明***********************/
// enum MSG { CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, QUIT} ;
 ECMD_TYPE GetCommand(TB_Create_Info**,TB_Select_Info**,TB_Insert_Info**,TB_Update_Info**,TB_Delete_Info**);
 //** 功能描述:該模塊的主函數(shù),負(fù)責(zé)所有操作
 char ChUpToLowCase(char);
 //** 功能描述:將一個大寫字母換成小寫,否則原樣返回
 char* FilterQuota(char* strin);
 //** 功能描述:負(fù)責(zé)將一個字符串中的單引號過濾,如FilterQuota("'abc'") == "abc"
 bool CompStrEver(char* str1,char* str2);
 //** 功能描述:比較兩個字符串是否相等,忽略大小寫,return 1--相同,0---不同
 void SaveKeyChar(char* str,int* index,char In);
 //** 功能描述:保存關(guān)鍵的由于辨別有意字串的關(guān)鍵字符,如回車,在InitialInput()中調(diào)用
 void SetCurLocation(char* str);
 //將當(dāng)前的路徑設(shè)置好
 void SetCurRelation(char* str);
 //將當(dāng)前的表名設(shè)置好
 void ShowHelp();
 //顯示幫助信息
 void QuitSQL();
 //退出MiniSQL
 void ShowMsg();
 //在屏幕上打印消息
 void GnlTrwErr(int);
 //Generally Throw the Errors,一般性錯誤,如db不存在

 // void ResetDBinfo();
 //刪除當(dāng)前正在使用的數(shù)據(jù)庫后對有關(guān)數(shù)據(jù)庫路徑和名稱信息的重新設(shè)置
/***********************函數(shù)聲明***********************/
  
#endif// INTEPRETOR_HPP

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品美女一区二区| 国产伦精品一区二区三区免费迷| 国产精品日韩成人| 久久久久综合网| 精品久久免费看| 精品少妇一区二区三区免费观看| 91精品国产美女浴室洗澡无遮挡| 欧美性生交片4| 欧美日韩国产小视频在线观看| 欧美午夜片在线观看| 欧美三级中文字幕在线观看| 欧美日韩国产成人在线91| 欧美裸体一区二区三区| 欧美一卡2卡三卡4卡5免费| 欧美日韩精品福利| 91精品国产高清一区二区三区蜜臀 | 亚洲mv大片欧洲mv大片精品| 亚洲h在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 美女视频黄a大片欧美| 国产一区二区在线免费观看| 国产乱人伦精品一区二区在线观看 | 国产精品人成在线观看免费| 中文字幕av一区 二区| 亚洲欧洲三级电影| 一区二区三区在线免费视频| 亚洲成人一区二区在线观看| 日韩不卡一二三区| 国产一区二区精品久久99| 成人免费的视频| 色妞www精品视频| 欧美老人xxxx18| 欧美精品一区二区三区蜜桃 | 国产精品一区二区91| 成人三级伦理片| 欧美午夜一区二区三区| 精品欧美乱码久久久久久| 日本一区二区三区在线观看| 亚洲免费观看高清完整版在线 | 成人欧美一区二区三区小说 | 亚洲精选免费视频| 首页综合国产亚洲丝袜| 精品一区二区三区免费观看| 粉嫩绯色av一区二区在线观看 | 国产日韩三级在线| 亚洲制服丝袜av| 激情久久五月天| 91一区二区三区在线播放| 国产精品丝袜一区| 午夜精品成人在线视频| 国产成人aaa| 欧美丝袜丝交足nylons图片| 久久影院视频免费| 亚洲一区二区在线播放相泽| 国产最新精品免费| 91九色02白丝porn| 国产亚洲欧美一区在线观看| 一区二区在线免费观看| 国产一区二区三区在线观看免费 | 久久在线观看免费| 亚洲福利视频一区| 成人丝袜高跟foot| 91精品国产免费| 玉米视频成人免费看| 国产一区二区免费看| 欧美色手机在线观看| 亚洲国产精品v| 久久精品国产免费看久久精品| 一本一道久久a久久精品 | 一区二区三区中文字幕在线观看| 韩国欧美国产一区| 欧美精品在线观看播放| 亚洲色图丝袜美腿| 高清不卡一区二区| 欧美tk—视频vk| 首页亚洲欧美制服丝腿| 99国产精品久久久久久久久久| 日韩欧美国产高清| 天天综合天天综合色| 色噜噜狠狠色综合中国| 欧美国产一区二区| 国产毛片精品国产一区二区三区| 91精品欧美福利在线观看| 亚洲一区二区三区免费视频| 99久久精品久久久久久清纯| 欧洲色大大久久| 欧美高清一级片在线观看| 天天色综合天天| 蜜桃av一区二区| 色综合久久久久综合99| 久久久精品欧美丰满| 日本不卡的三区四区五区| 欧美体内she精高潮| 18成人在线观看| 国产精品一线二线三线| 日韩免费看的电影| 午夜精品久久久久久| 在线观看中文字幕不卡| 精品福利av导航| 精品中文字幕一区二区小辣椒 | 欧美日本韩国一区二区三区视频| 亚洲人成精品久久久久久| 国产毛片精品视频| 精品久久久久久无| 蜜臀a∨国产成人精品| 欧美日韩亚洲综合在线| 亚洲激情图片qvod| 色婷婷综合激情| √…a在线天堂一区| 成人黄动漫网站免费app| 国产精品婷婷午夜在线观看| 欧美bbbbb| 91精品在线麻豆| 亚洲资源中文字幕| 欧美在线视频全部完| 亚洲男女一区二区三区| 国产.欧美.日韩| 中文字幕一区二区在线观看 | 成人av影视在线观看| 国产精品人妖ts系列视频| 丰满放荡岳乱妇91ww| 国产精品美女久久久久aⅴ国产馆| 国产在线精品免费| 久久嫩草精品久久久久| 国产美女精品在线| 26uuu久久天堂性欧美| 精品一区二区三区av| 久久―日本道色综合久久| 国产精品白丝av| 欧美国产精品一区二区三区| 大胆欧美人体老妇| 亚洲欧美日本在线| 欧美日韩精品久久久| 免费观看日韩电影| 26uuu成人网一区二区三区| 国产麻豆精品在线| 91精品一区二区三区久久久久久| 久久久久久久综合| 一本色道久久综合精品竹菊| 国产午夜精品久久久久久久| 韩国av一区二区| 欧美不卡一区二区三区| 老司机精品视频线观看86 | 国产成人av电影在线播放| 中文av一区二区| 色综合久久天天综合网| 午夜私人影院久久久久| 日韩女优视频免费观看| 国产成人夜色高潮福利影视| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲婷婷国产精品电影人久久| 欧美日韩国产综合一区二区三区| 日本v片在线高清不卡在线观看| 久久综合久久久久88| 99国产精品久久久久久久久久久| 亚洲一区二区精品久久av| 欧美精品 日韩| 成人手机在线视频| 亚洲va天堂va国产va久| 欧美不卡在线视频| 色综合天天综合在线视频| 亚洲超丰满肉感bbw| www国产精品av| 欧美一区二区三区日韩| 精品一二三四在线| 久久综合久久综合亚洲| 97久久久精品综合88久久| 免费久久精品视频| 国产精品色眯眯| 欧美精品成人一区二区三区四区| 国产大陆a不卡| 亚洲一区二区三区在线看| 精品国产一区二区精华| 在线亚洲一区二区| 黄页网站大全一区二区| 亚洲欧洲99久久| 欧美成人精品高清在线播放| av中文字幕在线不卡| 蜜臀av国产精品久久久久| 亚洲午夜激情网页| 国产精品乱码久久久久久| 日韩视频123| 日本韩国欧美一区二区三区| 国产精品一区二区在线播放| 亚洲欧美日韩国产一区二区三区| 欧美白人最猛性xxxxx69交| 91精品福利视频| 丁香婷婷综合色啪| 久久99这里只有精品| 亚洲成av人片| 亚洲黄色性网站| 亚洲伦理在线免费看| 国产欧美精品一区二区色综合朱莉| 欧美日韩视频第一区| 91亚洲精华国产精华精华液| 国产成人综合视频| 国产一区 二区 三区一级| 免费在线视频一区| 夜夜操天天操亚洲| 国产精品情趣视频|