📄 drop_table.cpp
字号:
#include "min.h"
void sql::drop_table( )
{
try{
cin >> command;
filename.erase();
for(int i=0; command[i]!=';'&&command[i]!='\0'; i++)
filename+=command[i];
Table* t = tabexist();
if ( t==NULL )
throw 2;
string temp=filename;
// 文件是否在缓存中
filename.append(".dtb");
for( page = 0; page < 3; page++)
if(!filename.compare(bufname[page]))
break;
//文件在缓存中
if ( page != 3 )
{
for( int j=0; j<sbf ; j++)
buf[page][j] = '\0';
for( j = 0; j < 3; j++)
if( buff[j] > buff[page] )
buff[j]--;
buff[page] = 2;//////////////////////////////////////
modify[page] = 0;
bufname[page].erase();
}
//删表
Table* table = t->next;
t->next = table->next;
Col* col;
Col* tempc;
col = table->collist;
for(; col->next; )
{
tempc = col;
col = col->next;
if ( col->indexname.compare(""))
{
char del[50] = "del ";
string indexname;
indexname = table->name + "_"+ col->indexname + ".idx";
strcat( del,indexname.c_str());
system ( del );
}
delete tempc;
}
delete col;
delete table;
char del[50] = "del ";
strcat( del,filename.c_str());
ifstream test(filename.c_str());
if(!test)
{
cout<<"表 <"+temp+"> 已删除!"<<endl;
Log("表 <"+temp+"> 已删除!");//pp
return;
}
////////////////////////////////////////////////////////////
test.close();
system ( del );
cout<<"表 <"+temp+"> 已删除!"<<endl;
Log("表 <"+temp+"> 已删除!");//pp
}
catch ( int i )
{
switch(i)
{
case 1: cout << "语法错误!" << endl;
break;
case 2: cout << "表不存在!" << endl;
break;
}
char a[50];
cin.getline( a, 50 );
Log("删除表失败!");//pp
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -