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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ljfiledb.h

?? 小型文件數據庫 一個文件對應一個表 最大只支持65535條記錄(可以修改宏) 定長記錄 一級索引 支持多關鍵字索引 不支持sql語句
?? H
字號:
#ifndef __LJFILEDBH
#define __LJFILEDBH

#include <string>
#include <vector>
#include <stdarg.h>
#include <stdio.h>
#include <map>

using namespace std;

namespace filedbns{

#define int_8	char
#define int_16  short
#define int_32	int
#define THEADSIZE		3		//表頭大小
#define TFIELDSZ		36		//字段記錄長度
#define MAXRECORDCOUNT 1000		//最大記錄數
#define TKEYFIELD		0x01
#define FIELDNAMESZ		32		//字段名長度

class CHead;
class CFieldSet;
class CIndexTable;
class CRecordSet;
class CFileDB;

enum{
	ST_CREA,
	ST_OPEN,
	ST_CLOS,
};

enum{
	ER_NOERROR			= 0,	//正常,無異常
	ER_ERROR			= -1,	//普通錯誤
	ER_FILEOPENER		= -2,	//文件不能被打開,可能的原因是文件不存在或有同名的文件存在
	ER_FILESEEKER		= -3,	//文件定位錯誤,可能的原因是文件越界
	ER_FILEWRITEER		= -4,	//寫文件失敗
	ER_EMPTYTABLE		= -5,	//打開一張空表,可能的原因為表中沒有一個字段
	ER_DBNOTOPEN		= -6,	//數據庫未打開
	ER_KEYCONFICT		= -7,	//主鍵重復,可能的原因是表中已經存在該記錄
	ER_NONKEYINDEX		= -8,	//非主鍵索引,可能的原因是查詢的條件中使用了非索引字段
	ER_NORECORD			= -9,	//記錄不存在,查詢無記錄
	ER_DBOPENED			= -10,	//數據庫已經打開
	ER_FIELDISNOTEXIST	= -11,	//不存在的字段
};

enum{
	FT_STR				= 0,	//字符串字段類型
	FT_INT4				= 1,	//4字節整形字段類型
};

enum{
	FT_NOR				= 0,	//普通字段
	FT_KEY				= 1,	//主鍵字段
};

typedef struct{
	char	fn[FIELDNAMESZ];	//字段名
	char*	val;				//字段值
	int_32	oper;				//運算符
}TWHERE;

typedef vector<TWHERE> TWHEREEXPRESS;	//條件表達式

typedef struct _thead{	
	int_8	_fc;	//field count;
	int_16	_rc;	//record count;
}THEAD;

class CHead:public THEAD{
	friend class CFileDB;
	CFileDB* db;
	void attch(THEAD& head);
	CHead();
	void Free();
public:
	void write();
	void read();
};

typedef struct{
	int_8	_no;				//字段序號
	char	_fn[FIELDNAMESZ];	//字段名
	int_8	_fsz;				//字段長度
	int_8	_ft;				//字段類型
	int_8   _key;				//是否主鍵  	int_8   _key:1;	//是否主鍵
}TField;

class CFieldSet{
	friend class CFileDB;
	friend class CRecordSet;
	CFileDB* db;
	vector<TField> _fields;		//字段列表
	int_8	_ct;				//表元數據記錄數
	int_32	_bp;				//表元數據區開始位置
	int_32 Write(TField& field);
	void Load();
	void Free();
public:
	CFieldSet();
	TField& operator[](int i);
	int_8	Count(){ return _ct; }
	TField* Fnd(string fn);

	//Add方法添加一個字段,注意該方法必須在create數據庫之后,open數據庫之前操作,否則會操作失敗.
	//fn	字段名
	//fsz	字段長度
	//ft	字段類型(0:字符串;1-4字節int)
	//key	是否為主鍵(true:主鍵;false:非主鍵)
	//返回值:成功返回新字段的指針,失敗返回NULL.
	TField* Add(char* fn,int_8 fsz,int_8 ft,bool key);
};

typedef struct{
	int_16	_no;			//記錄號
	vector<char*> _values;	//值表
	char* operator[](int i){
		return _values[i];
	}
}TRecord;

class CRecordSet{
	friend class CFileDB;
	friend class CFieldSet;
	vector<TRecord> _records;
	int_16 _act;			//總記錄數
	int_32 _bp;				//記錄區開始位置
	int_16 _rdsz1;			//一條記錄大小(定長記錄)
	int_32 Write(TRecord& record);
	CFileDB* db;
	void Free();
	void FreeRecords();
	void Serialize(char* buf,TRecord& record);
	void Structuralize(char* buf,TRecord& record);
	int_16 CacKeyv(char* keyv,TWHEREEXPRESS whereExpress);
public:
	CRecordSet();
	TRecord& operator[](int i);
	int_16 AllCount(){return _act;}
	int_16 Count(){	return _records.size();	}
	TRecord* Insert(char* val,...);//該方法存在內存泄露,待清理
	int_16 Select(TWHEREEXPRESS whereExpress);
	int_16 Delete(TWHEREEXPRESS whereExpress);
	int_16 Update(TWHEREEXPRESS whereExpress,TWHEREEXPRESS valSet);
	int_16 Select();
};

typedef struct _index{
	int_32 _sz;
	char* _val;
	bool operator==(const _index& index) const{
		return memcmp(_val,index._val,_sz) == 0 ;
	}
	bool operator>(const _index& index) const{
		return memcmp(_val,index._val,_sz) > 0 ;
	}
	bool operator<(const _index& index) const{
		return memcmp(_val,index._val,_sz) < 0 ;
	}
}INDEX;

class CIndexTable{
	friend class	CFileDB;
	friend class	CFieldSet;
	friend class	CRecordSet;
	int_32				_bp;		//索引表區域開始位置
	map<INDEX,int_16>	_usedit;	//占用塊索引
	vector<int_16>		_unusedit;	//空閑塊索引
	int_32				_idsz1;		//一條索引大小,包含了索引標志位(1字節)
	CFileDB*			db;
	void Load();
	void Free();
public:
	CIndexTable();
	int GetFrontAvBlock();				//取空閑塊表的第一個空閑塊
	void AllocBlock(int i,char* keyv);	//占用一個空閑塊
	void ResetBlock(char* keyv);		//釋放一個占用塊
	void SetBlock(char* okey,char* nkey);	//修改索引塊
	int_16 Find(char* key);				//查找
};

class CFileDB{
	friend class CHead;
	friend class CFieldSet;
	friend class CRecordSet;
	friend class CIndexTable;
	int_32			_stat;			//數據庫狀態
	FILE*			file;
	int_32			_err;			//錯誤代碼
	char*			fn;				//文件名
public:
		
	CHead		Head;
	CFieldSet	FieldSet;
	CRecordSet	RecordSet;
	CIndexTable	IndexTable;

	CFileDB();
	~CFileDB();

	//庫相關函數
	int_32 Create(char* fn);
	int_32 Open();
	int_32 Open(char* fn);
	void   Clos();
	int_32 Commit(); 

	//狀態相關函數
	int_32 Stat() { return _stat;}
	int_32 Erro() { return _err; }
};

}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产又黄又大久久| 亚洲超丰满肉感bbw| 性欧美疯狂xxxxbbbb| 国产精品美女久久久久aⅴ| 国产高清不卡二三区| 亚洲少妇中出一区| 欧美色大人视频| 日韩黄色免费网站| 久久久久亚洲蜜桃| 97精品久久久午夜一区二区三区| 国产精品日韩精品欧美在线| 国产日韩亚洲欧美综合| 色偷偷一区二区三区| 午夜精品成人在线视频| 国产偷国产偷精品高清尤物| 欧美伊人久久大香线蕉综合69 | 亚洲成av人综合在线观看| 亚洲精品v日韩精品| 欧美成人aa大片| av中文一区二区三区| 午夜国产精品一区| 热久久国产精品| 一区二区三区精品久久久| 久久久精品黄色| 国产精品久久久久久久岛一牛影视 | 国产精品久久久久影院| 亚洲日本一区二区| 午夜视黄欧洲亚洲| 狠狠网亚洲精品| 亚洲18女电影在线观看| 美女诱惑一区二区| 午夜精品久久久久久久99樱桃| 日韩在线播放一区二区| 国产一区二区三区| 欧美在线一二三四区| 99久久国产综合精品女不卡| 欧美午夜理伦三级在线观看| 精品日产卡一卡二卡麻豆| 欧美经典一区二区| 欧美成人免费网站| 亚洲国产精品av| 亚洲国产sm捆绑调教视频 | www.视频一区| 欧美久久高跟鞋激| 欧洲在线/亚洲| 日韩免费福利电影在线观看| 欧美手机在线视频| 国产亚洲视频系列| 午夜精品久久久久久久蜜桃app| 国产麻豆精品久久一二三| 欧美专区在线观看一区| 久久这里只有精品视频网| 26uuu精品一区二区三区四区在线| 亚洲欧洲韩国日本视频| 国产精品夫妻自拍| 蜜桃视频在线观看一区二区| 91同城在线观看| 欧美午夜精品久久久久久超碰| 久久影院午夜片一区| 亚洲夂夂婷婷色拍ww47| 午夜激情久久久| 色综合欧美在线| 欧美激情一区不卡| 激情图片小说一区| 欧美一区二区三区在线观看| 91精品国产91热久久久做人人| 国产精品女同互慰在线看| 日韩av一区二区三区四区| 激情文学综合丁香| 91精品国产乱码久久蜜臀| 性欧美大战久久久久久久久| 91蜜桃免费观看视频| 国产精品久久久久精k8| 国产成人在线色| 精品理论电影在线观看 | 美女精品一区二区| 欧美一区二区三区人| 午夜视频在线观看一区二区三区 | 亚洲天堂免费在线观看视频| 国产福利一区二区| 国产欧美日韩亚州综合| 风流少妇一区二区| 成人免费视频caoporn| 在线一区二区三区四区五区| 日韩一级黄色片| 国产精品福利一区二区| 播五月开心婷婷综合| 欧美高清www午色夜在线视频| 亚洲一区在线观看网站| 色噜噜久久综合| 亚洲小说欧美激情另类| 在线一区二区三区四区五区| 亚洲国产视频直播| 欧美电影影音先锋| 九色综合狠狠综合久久| 在线观看视频欧美| 爽好多水快深点欧美视频| 欧美美女直播网站| 极品少妇一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品综合视频| 欧美一区二区在线视频| 免费观看一级欧美片| 欧美精品一区二区三区四区| 樱花草国产18久久久久| 欧美日韩久久不卡| 一区二区三区四区乱视频| 91国内精品野花午夜精品| 五月天激情小说综合| 2022国产精品视频| 99久久精品国产导航| 偷窥国产亚洲免费视频| 久久免费视频一区| 欧美在线视频你懂得| 狠狠色2019综合网| 亚洲精品va在线观看| 日韩精品一区二区在线| 99re这里都是精品| 麻豆精品久久精品色综合| **欧美大码日韩| 欧美一区日韩一区| 91浏览器入口在线观看| 精品无码三级在线观看视频| 亚洲六月丁香色婷婷综合久久 | 肉丝袜脚交视频一区二区| 国产亚洲综合av| 制服丝袜亚洲网站| 日韩精品电影一区亚洲| 国产精品久久久久影院老司| 欧美成人vr18sexvr| 色偷偷成人一区二区三区91| 国产中文字幕精品| 婷婷综合另类小说色区| 亚洲日本成人在线观看| 欧美精品一区男女天堂| 欧美日本不卡视频| 99久久综合狠狠综合久久| 九九九久久久精品| 天天色综合成人网| 亚洲欧美激情一区二区| 欧美午夜片在线看| va亚洲va日韩不卡在线观看| 国模无码大尺度一区二区三区| 一区二区三区四区在线| 中文字幕欧美国产| 久久婷婷国产综合国色天香 | 欧美日韩国产大片| 99综合电影在线视频| 国产精品亚洲成人| 九九视频精品免费| 精品影视av免费| 蜜臀国产一区二区三区在线播放| 夜夜揉揉日日人人青青一国产精品 | 国产jizzjizz一区二区| 久久 天天综合| 精品一二三四区| 麻豆高清免费国产一区| 日韩av午夜在线观看| 日欧美一区二区| 日韩极品在线观看| 久久精品国产秦先生| 国产亚洲欧美在线| 国产欧美va欧美不卡在线| 久久中文娱乐网| 欧美韩国日本一区| 中文字幕一区二区5566日韩| 国产日产欧美一区二区三区| 久久久久9999亚洲精品| 国产亚洲一本大道中文在线| 久久久99精品免费观看| 国产精品免费看片| 亚洲欧洲另类国产综合| 亚洲国产欧美日韩另类综合 | 欧美日本一区二区三区四区| 欧美日韩国产一级二级| 在线综合视频播放| 欧美精品一区二区三区蜜桃视频| 精品美女在线观看| 中文子幕无线码一区tr| 最新热久久免费视频| 一区二区三区国产精华| 三级欧美在线一区| 国产福利一区二区三区| 97精品国产露脸对白| 欧美久久久久中文字幕| 久久一夜天堂av一区二区三区| 国产蜜臀av在线一区二区三区| 亚洲色图在线播放| 日韩电影在线观看一区| 国内一区二区在线| 91麻豆国产精品久久| 日韩欧美国产小视频| 国产精品视频你懂的| 午夜激情综合网| 丁香激情综合国产| 欧美日韩国产大片| 中文子幕无线码一区tr| 免费黄网站欧美| 色欲综合视频天天天| 精品精品欲导航|