📄 create.c
字号:
#include "catalog.h"const Status RelCatalog::createRel(const string & relation, const int attrCnt, const attrInfo attrList[]){ Status status; RelDesc rd; AttrDesc ad; int offset = 0 ; int myi, myj, myn ; if (relation.empty() || attrCnt < 1) return BADCATPARM; if (relation.length() >= sizeof rd.relName) return NAMETOOLONG; for (myi = 0; myi < attrCnt; myi++){ myn = 0 ; for (myj = 0; myj < attrCnt; myj++) if (strcmp(attrList[myi].attrName, attrList[myj].attrName) == 0) myn++ ; if (myn >= 2) return ATTRXT ; } if ((status = getInfo( relation, rd)) == OK) return RELEXISTS ; strncpy( rd.relName, relation.c_str(), relation.length()) ; rd.relName[relation.length()] = 0 ; rd.attrCnt = attrCnt ; if ((status = relCat->addInfo(rd)) != OK) return status ; int len ; for (int i = 0; i < attrCnt; i++){ strcpy( ad.relName, attrList[i].relName) ; len = strlen(attrList[i].relName) ; ad.relName[len] = 0 ; strcpy( ad.attrName, attrList[i].attrName) ; len = strlen(attrList[i].attrName) ; ad.attrName[len] = 0 ; ad.attrType = attrList[i].attrType ; ad.attrLen = attrList[i].attrLen ; ad.attrOffset = offset ; offset = offset + ad.attrLen ; attrCat->addInfo(ad) ; } status = createHeapFile(relation) ; if (status != OK) return status ; if (strcmp(rd.relName,"Tmp_Ubase_Result") != 0) printf(" Table %s Createed!\n", rd.relName) ; return OK ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -