91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 97KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: C/C++
  • 標簽: c++??sql??

資源簡介

c++實現的sql基本功能 Linux,win下可運行 c++實現的sql基本功能 Linux,win下可運行

資源截圖

代碼片段和文件信息


#include?“stdafx.h“
#include?“buffer_manager.h“

using?namespace?std;

//CBufferManager?m_ptheblocks[MAX_BLOCKS];
CBufferManager*?CBufferManager::m_ptheblocks?=?NULL;


/*初始化buffer區,但不分配內存*/
void?CBufferManager::initiate_blocks()
{
unsigned?int?i;
m_ptheblocks?=?new?CBufferManager?[MAX_BLOCKS];
for(i=0;i m_ptheblocks[i].m_address?=?NULL;
m_ptheblocks[i].m_index_table=0;
m_ptheblocks[i].m_is_written=0;
m_ptheblocks[i].m_being_used=0;
m_ptheblocks[i].m_count=0;
}
}

/*退出時調用,將所有需要寫回的塊數據寫回相應文件,并釋放buffer區*/
void?CBufferManager::flush_all_blocks(){???
for(int?i=0;i m_ptheblocks[i].flush_block();
if(m_ptheblocks[i].m_address?!=?NULL)
delete?[]?m_ptheblocks[i].m_address;
}
}

/*使用塊函數,buffer內部函數*/
void?CBufferManager::using_block(unsigned?int?number)
{
unsigned?int?i;
m_ptheblocks[number].m_being_used=1;
for(i=0;i if(i!=number?&&?!m_ptheblocks[number].m_being_used)
m_ptheblocks[i].m_count++;??//所有沒正在使用的塊count加1
else?if(i==number)
m_ptheblocks[i].m_count=0;??//正在使用的塊count置0,使正在被使用的塊不被換出
}
}

/*找到count值最大的塊號(即近似LRU算法中要求替換出的塊),buffer內部函數*/
unsigned?int?CBufferManager::max_count_number()
{
unsigned?int?i;
unsigned?int?max_count=m_ptheblocks[0].m_count;
unsigned?int?block_number=0;
for(i=0;i if(m_ptheblocks[i].m_count>max_count){
max_count=m_ptheblocks[i].m_count;
block_number=i;
}
return?block_number;
}

/*若該塊需要寫回,將該塊的數據寫回相應文件,換出時和退出時調用buffer內部函數*/
void?CBufferManager::flush_block()
{
FILE?*fp;
if(m_is_written?&&?m_index_table)?{
if(fp=fopen((LPCTSTR)m_name“rb+“)){??
fseek(fpBLOCK_SIZE*m_offset_number0);
fwrite(m_addressBLOCK_SIZE1fp);
fclose(fp);
}
}
}

/*為record?manager和index?manager提供塊(寫),在其初始建立時調用*/
unsigned?int?CBufferManager::get_blank_block(short?int?index_table)
{
unsigned?int?number;
unsigned?int?i;
char?*p;
for(i=0;i if(!m_ptheblocks[i].m_index_table?&&?!m_ptheblocks[i].m_being_used)
break;
if(i number=i;
m_ptheblocks[number].m_address?=?new?char?[BLOCK_SIZE];

????????for(p=m_ptheblocks[number].m_address;p ???*p=‘$‘;
}
else{?//表示無空塊,須判斷換出哪個塊和是否有必要寫回文件
number=max_count_number();
m_ptheblocks[number].flush_block();
}
using_block(number);
m_ptheblocks[number].m_index_table=index_table;
return?number;
}

/*為record?manager和index?manager提供塊(讀或改)若在buffer中找不到則調用get_blank_block為其分配空間并做標記*/
unsigned?int?CBufferManager::get_block(short?int?index_table?CString?filename?unsigned?int?offset_number)
{
FILE?*fp;
unsigned?int?number;
unsigned?int?imark;

for(i=0;i if(m_ptheblocks[i].m_index_table==index_table?&&?m_ptheblocks[i].m_name?==?filename?&&?
m_ptheblocks[i].m_offset_number==offset_number)?{?//表示在buffer中找到了該塊
number=i;
using_block(number);
return

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-22?10:17??MiniSQL\
?????文件????????2685??2005-01-12?01:56??MiniSQL\catalog_manager.h
?????目錄???????????0??2018-04-22?11:09??__MACOSX\
?????目錄???????????0??2018-04-22?11:09??__MACOSX\MiniSQL\
?????文件?????????175??2005-01-12?01:56??__MACOSX\MiniSQL\._catalog_manager.h
?????文件???????37447??2005-01-13?02:49??MiniSQL\interpret.cpp
?????文件?????????175??2005-01-13?02:49??__MACOSX\MiniSQL\._interpret.cpp
?????文件????????1457??2005-01-09?13:26??MiniSQL\MiniSQL.rc
?????文件?????????175??2005-01-09?13:26??__MACOSX\MiniSQL\._MiniSQL.rc
?????文件????????1106??2005-01-07?12:47??MiniSQL\StdAfx.h
?????文件?????????175??2005-01-07?12:47??__MACOSX\MiniSQL\._StdAfx.h
?????文件????????3599??2005-01-09?21:40??MiniSQL\buffer_manager.cpp
?????文件?????????175??2005-01-09?21:40??__MACOSX\MiniSQL\._buffer_manager.cpp
?????文件????????1251??2005-01-09?10:39??MiniSQL\index_manager.h
?????文件?????????175??2005-01-09?10:39??__MACOSX\MiniSQL\._index_manager.h
?????文件???????19591??2005-01-09?10:59??MiniSQL\catalog_manager.cpp
?????文件?????????175??2005-01-09?10:59??__MACOSX\MiniSQL\._catalog_manager.cpp
?????文件???????14825??2005-01-13?01:10??MiniSQL\record_manager.cpp
?????文件?????????175??2005-01-13?01:10??__MACOSX\MiniSQL\._record_manager.cpp
?????文件??????107520??2005-01-13?05:09??MiniSQL\MiniSQL.ncb
?????文件?????????175??2005-01-13?05:09??__MACOSX\MiniSQL\._MiniSQL.ncb
?????文件????????1229??2005-01-09?13:46??MiniSQL\buffer_manager.h
?????文件?????????175??2005-01-09?13:46??__MACOSX\MiniSQL\._buffer_manager.h
?????文件??????192576??2005-01-13?04:53??MiniSQL\MiniSQL.exe
?????文件?????????175??2005-01-13?04:53??__MACOSX\MiniSQL\._MiniSQL.exe
?????文件????????2985??2005-01-13?04:51??MiniSQL\MiniSQL.h
?????文件?????????175??2005-01-13?04:51??__MACOSX\MiniSQL\._MiniSQL.h
?????文件?????????748??2005-01-09?12:41??MiniSQL\record_manager.h
?????文件?????????175??2005-01-09?12:41??__MACOSX\MiniSQL\._record_manager.h
?????文件???????????8??2007-11-10?18:22??MiniSQL\tables.catlog
?????文件?????????175??2007-11-10?18:22??__MACOSX\MiniSQL\._tables.catlog
............此處省略26個文件信息

評論

共有 條評論