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

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

?? bugdb.cpp

?? FastDb是高效的內存數據庫系統
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
{
    con << TAG << 
	HTML_HEAD "<TITLE>Select a bug</TITLE></HEAD>"
	BODY
	"<H2>Select a bug</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"bugForm\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><SELECT SIZE=15 NAME=\"bug\">";
    if (bugs.select() != 0) { 
	print(con, bugs);
	con << TAG << 
	   "</SELECT><BR><INPUT TYPE=submit NAME=\"action\" VALUE=\"Select\">";
    } else { 
	con << TAG << EMPTY_LIST;
    }
    con << TAG << "</FORM>";
    mainMenuReference(con);
    return true;
}

bool removeBugForm(WWWconnection& con)
{
    con << TAG << 
	HTML_HEAD "<TITLE>Remove a bug</TITLE></HEAD>"
	BODY
	"<H2>Remove a bug</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"removeBug\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><SELECT SIZE=15 NAME=\"bug\">";
    if (bugs.select() != 0) { 
	print(con, bugs);
	con << TAG << "</SELECT><BR><INPUT TYPE=submit VALUE=\"Remove\">";
    } else { 
	con << TAG << EMPTY_LIST;
    }
    con << TAG << "</FORM>";
    mainMenuReference(con);
    return true;
}

bool changePasswordForm(WWWconnection& con)
{
    con << TAG << 
	HTML_HEAD "<TITLE>Change password</TITLE></HEAD>"
	BODY
	"<H2>Change password</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"changePassword\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><INPUT TYPE=hidden NAME=\"name\" VALUE=\"" << con.get("name") << 
	"\"><TABLE>"
	"<TR><TH ALIGN=LEFT>New password:</TH>"
	"<TD><INPUT TYPE=password NAME=\"password\" SIZE=20</TD></TR>"
	"<TR><TH ALIGN=LEFT>Re-type password:</TH>"
	"<TD><INPUT TYPE=password NAME=\"password2\" SIZE=20</TD></TR>"
	"</TABLE><P>"
	"<INPUT TYPE=submit VALUE=\"Change\">&nbsp;"
	"<INPUT TYPE=reset VALUE=\"Reset\">"
	"</FORM>";
    con << TAG << "</FORM>";
    mainMenuReference(con);
    return true;
}
	
bool shutdown(WWWconnection& con)
{
    con << TAG << 
	HTML_HEAD "<TITLE>BUGDB message</TITLE></HEAD><BODY>"
	"<H1>BUGDB server is terminated</H1></BODY></HTML>";
    return false;
}

bool userForm(WWWconnection& con);
bool userGroupForm(WWWconnection& con);
bool softwareForm(WWWconnection& con);

bool addUser(WWWconnection& con)
{
    Person person;
    person.sName = key = con.get("name");   
    person.sEmailAddress = con.get("email");
    person.sPassword = "";
    person.status = Person::isUser;
    person.nReports = 0;
    if (persons.select(qPerson) != 0) { 
	error(con, "Person already exists");
	return true;
    }
    insert(person);
    return userForm(con);
}

bool addEngineer(WWWconnection& con)
{
    Person person;
    person.sName = key = con.get("name");   
    person.sEmailAddress = con.get("email");
    person.sPassword = "";
    person.status = Person::isEngineer;
    person.nReports = 0;
    if (persons.select(qPerson) != 0) { 
	error(con, "Person already exists");
	return true;
    }
    insert(person);
    return userForm(con);
}

bool removePerson(WWWconnection& con)
{
    key = con.get("name");
    if (key == NULL) { 
	error(con, "No person was selected");
	return true;
    }
    if (persons.select(qPerson) == 0) { 
	error(con, "No such person");
    } else if (persons->nReports > 0 
	       || persons->setReportedBugs.length() > 0) 
    {
	error(con, "It is not possible to delete person who is author "
	      "of existed bug reports");
    } else {
	persons.remove();
	message(con, "Person is removed");
    }
    return true;
}

bool addSoftware(WWWconnection& con)
{
    Software software;
    Version  version;
    software.sName = key = con.get("software");
    if (products.select(qSoftware) != 0) { 
	error(con, "Software product already exists");
	return true;
    }
    char* versionStr = con.get("version");
    if (sscanf(versionStr, "%d.%d", &version.majorVersionNumber, 
	       &version.minorVersionNumber) != 2) 
    { 
	error(con, "Bad version number (MAJOR.MINOR expected)");
	return true;
    }  
    version.sComment = con.get("comment");
    version.sLabel = con.get("label");
    version.released = dbDateTime::current();
    software.pVersions = insert(version);
    insert(software);
    con.addPair("action", "Select");
    return softwareForm(con);
}
		
bool removeSoftware(WWWconnection& con)
{
    key = con.get("software");
    if (products.select(qSoftware) == 0) { 
	error(con, "No such software product");
	return true;
    }
    if (products->setBugs.length() != 0) { 
	error(con, "Can not remove software with non-empty reported bug list");
	return true;
    }
    products.remove();
    message(con, "Software product is removed");
    return true;
}

bool removeBug(WWWconnection& con)
{
    char* bug = con.get("bug");
    if (bug == NULL) { 
	error(con, "No bug was selected");
    } else { 
	bugId = atoi(bug);
	if (bugs.select(qBug) == 0) { 
	    error(con, "No such bug");
	} else { 
	    if (bugs->pReportHistory != null ||
		bugs->pWorkArounds != null)
	    {
		error(con, "Can not remove bug with existed reports");
		return true;
	    }
	    bugs.remove();
	    message(con, "Bug is removed");
	}
    }
    return true;
}

bool changePassword(WWWconnection& con)
{
    char* password = con.get("password");
    char* password2 = con.get("password2");
    if (strcmp(password, password2) != 0) { 
	error(con, "Passwords are not equal");
    } else { 
	key = con.get("name");
	if (persons.select(qPerson) == 0) { 
	    error(con, "No such person");
	} else { 
	    persons->sPassword = password;
	    persons.update();
	    message(con, "Password changed");
	}
    }
    return true;
}

bool updatePerson(WWWconnection& con)
{
    char* name = con.get("name");
    key = name;
    if (persons.select(qPerson) == 0) { 
	error(con, "No such person");
	return true;
    } else { 
	char* newName = con.get("newname");
	char* eMail = con.get("email");
	if (eMail != NULL) { 
	    persons->sEmailAddress = eMail;
	}
	if (newName != NULL) { 
	    persons->sName = newName;
	    con.addPair("name", newName);
	    if (strcmp(name, con.get("myself")) == 0) { 
		con.addPair("myself", newName);
	    }
	}
	persons.update();
    }
    return userForm(con);
}

bool login(WWWconnection& con)
{
    char* name = con.get("name");
    key = con.get("name");
    if (persons.select(qPerson) == 0) { 
	error(con, "No such person");
	return true;
    } 
    if (!persons->checkPassword(con.get("password"))) { 
	error(con, "Incorrect password");
	return true;
    } 
    con.addPair("myself", name);    
    return userForm(con);
}

bool bugQueryForm(WWWconnection& con)
{
    int i;
    con << TAG << 
	HTML_HEAD "<TITLE>Query to locate bug</TITLE></HEAD>"
	BODY
	"<H2>Bug query</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"bugQuery\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><TABLE>"
	"<TR><TH ALIGN=LEFT>Description substring:</TH>"
	"<TD><INPUT TYPE=text NAME=\"summary\" SIZE=30</TD></TR>"
	"<TR><TH ALIGN=LEFT>Category:</TH>"
	"<TD><SELECT NAME=\"category\" SIZE=1>"
	"<OPTION VALUE=0 SELECTED></OPTION>";
    for (i = 1; eCATEGORY_STRING[i] != NULL; i++) { 
	con << TAG << "<OPTION VALUE=" << i << ">"
	    << eCATEGORY_STRING[i] << "</OPTION>";
    }
    con << TAG << "</SELECT></TD></TR>"
	"<TR><TH ALIGN=LEFT>Severity:</TH>"
	"<TD><SELECT NAME=\"severity\" SIZE=1>"
	"<OPTION VALUE=0 SELECTED></OPTION>";
    for (i = 1; eSEVERITY_STRING[i] != NULL; i++) { 
	con << TAG << "<OPTION VALUE=" << i << ">"
	    << eSEVERITY_STRING[i] << "</OPTION>";
    }
    con << TAG << "</SELECT></TD></TR>"
	"<TR><TH ALIGN=LEFT>Fixing priority:</TH>"
	"<TD><SELECT NAME=\"priority\" SIZE=1>"
	"<OPTION VALUE=0 SELECTED></OPTION>";
    for (i = 1; eFIXING_PRIORITY_STRING[i] != NULL; i++) { 
	con << TAG << "<OPTION VALUE=" << i << ">"
	    << eFIXING_PRIORITY_STRING[i] << "</OPTION>";
    }
    con << TAG << 
	"</SELECT></TD></TR>"
	"<TR><TH ALIGN=LEFT>Platform:</TH>"
	"<TD><INPUT TYPE=text NAME=\"platform\"</TD></TR>"
	"<TR><TH ALIGN=LEFT>OS</TH>"
	"<TD><INPUT TYPE=text NAME=\"os\"</TD></TR>"
	"<TR><TH ALIGN=LEFT>Software:</TH>"
	"<TD><INPUT TYPE=text NAME=\"software\"</TD></TR>"
	"<TR><TH ALIGN=LEFT>Assigned to:</TH>"
	"<TD><INPUT TYPE=text NAME=\"engineer\"</TD></TR>"
	"<TR><TH ALIGN=LEFT>Reported by:</TH>"
	"<TD><INPUT TYPE=text NAME=\"user\"</TD></TR>"
	"<TR><TH ALIGN=LEFT>Major version number:</TH>"
	"<TD>from <INPUT TYPE=text NAME=\"minmajor\" SIZE=4>"
	" to <INPUT TYPE=text NAME=\"maxmajor\" SIZE=4</TD></TR>"
	"<TR><TH ALIGN=LEFT>Minor version number:</TH>"
	"<TD>from <INPUT TYPE=text NAME=\"minminor\" SIZE=4</TD>"
	" to <INPUT TYPE=text NAME=\"maxminor\" SIZE=4</TD></TR></TABLE><P>"
	"<INPUT TYPE=submit VALUE=\"Search\">&nbsp;"
	"<INPUT TYPE=reset VALUE=\"Reset\">"
	"</FORM></BODY></HTML>";
    return true;
}


bool bugQuery(WWWconnection& con) 
{
    char* p;
    dbQuery query;
    query.reset();
    p = con.get("software");
    if (*p != '\0') { 
	query.add("pSoftware.sName like").add(p);
    }
    int4 category = atoi(con.get("category"));
    if (category != 0) { 
	query.And("eCategory=").add(category);
   }
    int4 severity = atoi(con.get("severity"));
    if (severity != 0) { 
	query.And("eSeverity=").add(severity);
    }
    int4 priority = atoi(con.get("priority"));
    if (priority != 0) { 
	query.And("eFixingPriority=").add(priority);
    }
    p = con.get("os");
    if (*p != '\0') { 
	query.And("sOperatingSystem like").add(p);
    }
    p = con.get("platform");
    if (*p != '\0') { 
	query.And("sHardwarePlatform like").add(p);
    }
    p = con.get("engineer");
    if (*p != '\0') { 
	query.And("pAssignedTo is not null and pAssignedTo.sName like").add(p);
    }
    p = con.get("user");
    if (*p != '\0') { 
	query.And("pReportedBy.sName like").add(p);
    }
    p = con.get("summary");
    if (*p != '\0') { 
	query.And("sOneLineSummary like").add(p);
    }
    p = con.get("minmajor");
    int minMajorVersionNumber = (*p == '\0') ? 0 : atoi(p);
    p = con.get("maxmajor");
    int maxMajorVersionNumber = (*p == '\0') ? INT_MAX : atoi(p);
    p = con.get("minminor");
    int minMinorVersionNumber = (*p == '\0') ? 0 : atoi(p);
    p = con.get("maxminor");
    int maxMinorVersionNumber = (*p == '\0') ? INT_MAX : atoi(p);
    if (minMajorVersionNumber != 0) { 
	if (maxMajorVersionNumber != INT_MAX) { 
	    query.And("pVersion.majorVersionNumber between")
		.add(minMajorVersionNumber)
		.add("and").add(maxMajorVersionNumber);
	} else { 
	    query.And("pVersion.majorVersionNumber>=")
		.add(minMajorVersionNumber);
	}
    } else if (maxMajorVersionNumber != INT_MAX) {	
	query.And("pVersion.majorVersionNumber<=").add(maxMajorVersionNumber);
    }
    if (minMinorVersionNumber != 0) { 
	if (maxMinorVersionNumber != INT_MAX) { 
	    query.And("pVersion.minorVersionNumber between")
		.add(minMinorVersionNumber)
		.add("and").add(maxMinorVersionNumber);
	} else { 
	    query.And("pVersion.minorVersionNumber>=")
		.add(minMinorVersionNumber);
	}
    } else if (maxMinorVersionNumber != INT_MAX) {	
	query.And("pVersion.minorVersionNumber<=").add(maxMinorVersionNumber);
    }
    con << TAG << 
	HTML_HEAD "<TITLE>List of selected bugs</TITLE></HEAD>"
	BODY
	"<H2>Selected bugs</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"bugForm\">"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美的一区二区| 日韩精品一区二区三区swag| 欧美久久久久久久久| 综合久久综合久久| 99久久久久久99| 久久久噜噜噜久久中文字幕色伊伊| 亚洲一区在线看| 在线观看视频一区| 日韩一区日韩二区| 成人精品一区二区三区四区| 国产偷国产偷亚洲高清人白洁| 调教+趴+乳夹+国产+精品| 日本精品免费观看高清观看| 亚洲美女少妇撒尿| 色综合久久综合网欧美综合网| 中文字幕永久在线不卡| 97精品超碰一区二区三区| 亚洲女子a中天字幕| 欧美羞羞免费网站| 久久精品国产999大香线蕉| 欧美羞羞免费网站| 秋霞国产午夜精品免费视频| 日韩一区二区麻豆国产| 国产精品一区二区在线播放| 亚洲国产精品激情在线观看| 欧美在线综合视频| 亚洲黄一区二区三区| 538prom精品视频线放| 激情综合色综合久久| 亚洲欧美日韩在线不卡| 欧美一区二区三区视频| 成人理论电影网| 秋霞av亚洲一区二区三| 中文字幕日韩一区| 精品日韩99亚洲| 欧美三级电影网站| 国产高清不卡一区| 日韩精品一级中文字幕精品视频免费观看 | 欧美日本韩国一区二区三区视频| 国产一区二区三区综合| 亚洲免费在线视频| 日本一区二区三区四区在线视频 | 久久成人免费网站| 亚洲色图一区二区三区| 欧美国产日韩亚洲一区| 日韩一本二本av| 欧美日本高清视频在线观看| 色婷婷综合视频在线观看| 成人精品视频网站| 国产二区国产一区在线观看| 免费的国产精品| 日本一区中文字幕| 视频一区二区国产| 五月激情综合色| 偷拍一区二区三区四区| 亚洲v日本v欧美v久久精品| 亚洲美女精品一区| 亚洲影院理伦片| 丝袜国产日韩另类美女| 丝袜美腿成人在线| 久久精品国产精品青草| 久久91精品国产91久久小草| 国模娜娜一区二区三区| 日本成人在线不卡视频| 狠狠网亚洲精品| 成人小视频在线观看| 色哟哟一区二区在线观看| 欧美视频一区二| 日韩午夜av一区| 国产色爱av资源综合区| 国产精品传媒在线| 国产精品久久久一本精品| 亚洲三级在线免费| 日韩在线一区二区三区| 国产精品 日产精品 欧美精品| 亚洲成精国产精品女| 日韩va亚洲va欧美va久久| 国产精品1024久久| 欧美日韩电影在线播放| 久久这里只精品最新地址| 亚洲欧美在线另类| 中文字幕免费一区| 欧美剧情电影在线观看完整版免费励志电影 | 毛片不卡一区二区| 99视频精品免费视频| 欧美一区二区二区| 亚洲综合色自拍一区| 午夜精品一区在线观看| 国产成人一级电影| 欧美第一区第二区| 亚洲网友自拍偷拍| a级高清视频欧美日韩| 久久九九久久九九| 热久久一区二区| 欧美日韩久久一区| 日韩一区在线看| 成人黄色在线网站| 国产亚洲欧洲一区高清在线观看| 一区二区三区四区在线| gogo大胆日本视频一区| 国产欧美日韩中文久久| 国产精品亚洲专一区二区三区| 日韩欧美激情一区| 日本女优在线视频一区二区| 欧美三级电影在线观看| 婷婷国产在线综合| 欧美剧情片在线观看| 天天爽夜夜爽夜夜爽精品视频| av一区二区三区四区| 亚洲免费观看在线观看| 在线观看一区二区视频| 亚洲国产乱码最新视频| 日韩欧美一二三| 国模冰冰炮一区二区| 国产色爱av资源综合区| 99热99精品| 午夜一区二区三区在线观看| 制服丝袜亚洲色图| 国产激情视频一区二区三区欧美| 欧美韩日一区二区三区| 欧美三级资源在线| 精品在线观看视频| 亚洲国产成人一区二区三区| 欧美性生活久久| 国产精品一区二区在线观看不卡| 国产精品久久久久久久久免费丝袜| 欧美丝袜丝交足nylons| 国产米奇在线777精品观看| 亚洲摸摸操操av| 久久久99精品久久| 欧美性色综合网| 国产盗摄一区二区| 亚洲一区二区三区精品在线| 国产欧美一区二区精品久导航 | 国产精品免费久久久久| 欧美精品久久99| 色狠狠一区二区| 精品系列免费在线观看| 午夜精品福利一区二区三区av| 久久综合久久综合亚洲| 日韩区在线观看| 欧美视频中文字幕| 色呦呦日韩精品| 94-欧美-setu| 不卡在线视频中文字幕| 国产一区免费电影| 久久 天天综合| 无码av免费一区二区三区试看| 一卡二卡欧美日韩| 一区二区三区四区在线播放| 亚洲国产精品黑人久久久| 欧美一区二区三区免费| www.久久久久久久久| 久久99蜜桃精品| 欧美激情在线看| 国产精品欧美极品| 国产日韩亚洲欧美综合| 精品成人在线观看| 久久久激情视频| 国产欧美一区二区三区在线老狼| 精品国产不卡一区二区三区| 欧美色图在线观看| 欧美三片在线视频观看 | 久久av中文字幕片| 国产麻豆成人精品| 精品一区二区三区免费播放| 人妖欧美一区二区| 国产一区二区在线观看免费| 日韩专区欧美专区| 精品一区二区免费| 亚洲区小说区图片区qvod| 久久精品一区四区| 久久久久久久久久久99999| 中文字幕高清不卡| 一区二区三区欧美激情| 午夜精彩视频在线观看不卡| 免费在线观看一区二区三区| 国产精品白丝av| 日本不卡不码高清免费观看| 亚洲三级在线观看| 日韩精品午夜视频| 狠狠狠色丁香婷婷综合激情| 国产精品99久| 欧美日韩一区二区三区四区 | 日韩一级免费观看| 337p亚洲精品色噜噜噜| 国产日韩影视精品| 国产精品美女视频| 免费观看在线色综合| 色综合天天综合狠狠| 精品久久人人做人人爰| 天天做天天摸天天爽国产一区| 国产精品亚洲第一| 欧美一激情一区二区三区| 欧美精品一区二区三| 亚洲最色的网站| 成人妖精视频yjsp地址| 在线观看国产精品网站| 国产精品水嫩水嫩| 韩国成人精品a∨在线观看|