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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bugdb.cpp

?? FastDb是高效的內(nèi)存數(shù)據(jù)庫系統(tǒng)
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
//-< BUGDB.CPP  >----------------------------------------------------*--------*
// FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *
// (Main Memory Database Management System)                          *   /\|  *
//                                                                   *  /  \  *
//                          Created:     27-Mar-99    K.A. Knizhnik  * / [] \ *
//                          Last update: 30-Jun-99    K.A. Knizhnik  * GARRET *
//-------------------------------------------------------------------*--------*
// Example of database Web publishing: Bug Tracking Database
//-------------------------------------------------------------------*--------*

#include "bugdb.h"

//#define USE_EXTERNAL_HTTP_SERVER 1

char const* const eCATEGORY_STRING[] = 
{
    "",
    "CRASH",
    "PROGRAM_HANGS",
    "UI_DISPLAY",
    "UI_BEHAVIOR",
    "CALCULATION",
    "ERROR_HANDLING",
    "PERFORMANCE",
    "LICENSING",
    "INSTALLATION", 
    "DOCUMENTATION",
    "ENHANCEMENT",
    "HOW_TO_QUESTION",
    NULL
};

char const* const eSTATUS_STRING[] = { 
    "",
    "OPENED",
    "FIXED",
    "CLOSED",
    "PENDING_ENGINEER",
    "PENDING_USER",
    "POSTPONED",
    "IRREPRODUCIBLE",
    "WITHDRAWN",
    "AS_DESIGNED",
    NULL
};

char const* const eSEVERITY_STRING[] = { 
    "",
    "FATAL",
    "SERIOUS",
    "MINOR",
    NULL
};

char const* const eFIXING_PRIORITY_STRING[] = { 
    "",
    "FIX_IMMEDIATELY",
    "FIX_BEFORE_NEXT_BUILD_RELEASE",
    "FIX_BEFORE_NEXT_MINOR_RELEASE",
    "FIX_BEFORE_NEXT_MAJOR_RELEASE",
    "FIX_IF_POSSIBLE",
    "OPTIONAL",
    NULL
};

dbDatabase db;

dbCursor<Bug>          allBugs;
dbCursor<Bug>          bugs(dbCursorForUpdate);
dbCursor<Report>       reports(dbCursorForUpdate);
dbCursor<Person>       persons(dbCursorForUpdate);
dbCursor<Software>     products(dbCursorForUpdate);
dbCursor<Version>      versions(dbCursorForUpdate);
dbCursor<BugSequencer> sequencer(dbCursorForUpdate);

dbQuery qBug;
dbQuery qReport;
dbQuery qAllReports;
dbQuery qVersion;
dbQuery qAllVersions;
dbQuery qPerson;
dbQuery qSoftware;

//
// Query paramters
//
char* key;
int   bugId; 
int   reportId;
dbReference<Report>  firstReport;
dbReference<Version> initialVersion;
int   majorVersion;
int   minorVersion;


//- Person ------------------------------------------------

void Person::print(WWWconnection& con) const 
{ 
    con << TAG << "<OPTION VALUE=\"" << sName << "\">" << sName << "</OPTION>";
}
    
REGISTER(Person);

//------- Version ---------------------------------------

void Version::print(WWWconnection& con) const 
{ 
    char buf[64];
    con << TAG << "<OPTION VALUE=\"" << getVersionString() << 
	"\">Version " << getVersionString() << " " << sLabel << 
	" " << released.asString(buf, sizeof buf) << "</OPTION>";
}

int Version::getVersion() const 
{ 
    return majorVersionNumber*100 + minorVersionNumber; 
}

char* Version::getVersionString() const 
{
    static char buf[16];
    sprintf(buf, "%d.%02d", majorVersionNumber, minorVersionNumber);
    return buf;
}

REGISTER(Version);

//----- Software -------------------------------------

int Software::getLastVersion() const 
{ 
    if (pVersions == null) { 
	return 0;
    }
    versions.at(pVersions);
    return versions->getVersion();
}

char* Software::getLastVersionString() const 
{ 
    if (pVersions == null) { 
	return "";
    }
    versions.at(pVersions);
    return versions->getVersionString();
}

void Software::print(WWWconnection& con) const 
{ 
    con << TAG << "<OPTION VALUE=\"" << sName << "\">" << sName << "</OPTION>";
}

REGISTER(Software);

//----- Report -------------------------------------------

void Report::print(WWWconnection& con) const 
{ 
    char buf[64];
    if (pAuthor != null) { 
	persons.at(pAuthor);
	con << TAG << "<OPTION VALUE=" << index << ">" << persons->sName << " "
	    << creationDate.asString(buf, sizeof buf) << "</OPTION>";
    } else { 
	con << TAG << "<OPTION VALUE=" << index << ">" << "Report from "
	    << creationDate.asString(buf, sizeof buf) << "</OPTION>";
    }
}

REGISTER(Report);

//--- Bug -----------------------------------------

void Bug::print(WWWconnection& con) const 
{
    con << TAG << "<OPTION VALUE=" << bugId << ">" << sOneLineSummary 
	<< "</OPTION>";
}
    
REGISTER(Bug);

//---- BugSequencer -------------------------------------

REGISTER(BugSequencer);

template<class T>
void print(WWWconnection& con, dbCursor<T>& cursor) {
    do { 
	cursor->print(con);
    } while(cursor.next());
}

template<class T>
void print(WWWconnection& con, dbArray<dbReference<T> > const& arr) {
    dbCursor<T> cursor;
    for (int i = 0, n = arr.length(); i < n; i++) { 
	cursor.at(arr[i])->print(con);
    } 
}

//--- HTML specific part -------------------------------------------

#define HTML_HEAD "Content-type: text/html\r\n\r\n\
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"><HTML><HEAD>"

#define BODY "<BODY BGCOLOR=\"#c0c0c0\">"

#define EMPTY_LIST "<OPTION>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</OPTION></SELECT>"

void mainMenuReference(WWWconnection& con)
{
    char* myself = con.get("myself");
    if (myself != NULL) { 
	con << TAG 
	    << "<P><HR><CENTER><A HREF=\"" << con.getStub() << "?socket=" 
	    << con.getAddress() << "&page=userForm&myself=" 
	    << URL << myself <<  "&name=" << URL << myself
	    << "\">Back to main menu</A></CENTER>";
    }
    con << TAG << "</BODY></HTML>";
}

void error(WWWconnection& con, char const* msg)
{
    con << TAG << 
	HTML_HEAD "<TITLE>BUGDB error</TITLE></HEAD><BODY>"
	"<H1><FONT COLOR=\"#FF0000\">"
	<< msg << "</FONT></H1></BODY></HTML>";
    mainMenuReference(con);
}


void message(WWWconnection& con, char const* msg)
{
    con << TAG << 
	HTML_HEAD "<TITLE>BUGDB message</TITLE></HEAD><BODY>"
	"<H1><FONT COLOR=\"#004000\">"
	<< msg << "</FONT></H1></BODY></HTML>";
    mainMenuReference(con);
}


bool addUserForm(WWWconnection& con)
{
    con << TAG << 
	HTML_HEAD "<TITLE>Enter new user</TITLE></HEAD>"
	BODY
	"<H2>Add user</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"addUser\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><TABLE>"
	"<TR><TH ALIGN=LEFT>User name:</TH>"
	"<TD><INPUT TYPE=text NAME=\"name\" SIZE=30</TD></TR>"
	"<TR><TH ALIGN=LEFT>E-mail:</TH>"
	"<TD><INPUT TYPE=text NAME=\"email\" SIZE=30 </TD></TR></TABLE><P>"
	"<INPUT TYPE=submit VALUE=\"Add\">&nbsp;"
	"<INPUT TYPE=reset VALUE=\"Reset\"></FORM>";
    mainMenuReference(con);
    return true;
}

bool addEngineerForm(WWWconnection& con)
{
    con << TAG << 
	HTML_HEAD "<TITLE>Enter new engineer</TITLE></HEAD>"
	BODY
	"<H2>Add engineer</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"addEngineer\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><TABLE>"
	"<TR><TH ALIGN=LEFT>Engineer name:</TH>"
	"<TD><INPUT TYPE=text NAME=\"name\" SIZE=30</TD></TR>"
	"<TR><TH ALIGN=LEFT>E-mail:</TH>"
	"<TD><INPUT TYPE=text NAME=\"email\" SIZE=30 </TD></TR></TABLE><P>"
	"<INPUT TYPE=submit VALUE=\"Add\">&nbsp;"
	"<INPUT TYPE=reset VALUE=\"Reset\"></FORM>";
    mainMenuReference(con);
    return true;
}

bool addSoftwareForm(WWWconnection& con)
{
    con << TAG << 
	HTML_HEAD "<TITLE>Enter new software product</TITLE></HEAD>"
	BODY
	"<H2>Add software product</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"addSoftware\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><TABLE>"
	"<TR><TH ALIGN=LEFT>Software name:</TH>"
	"<TD><INPUT TYPE=text NAME=\"software\" SIZE=40</TD></TR>"
	"<TR><TH ALIGN=LEFT>Version number:</TH>"
	"<TD><INPUT TYPE=text NAME=\"version\" SIZE=8</TD></TR>"
	"<TR><TH ALIGN=LEFT>Version label:</TH>"
	"<TD><INPUT TYPE=text NAME=\"label\" SIZE=20</TD></TR>"
	"<TR><TH ALIGN=LEFT>Version comment:</TH>"
	"<TD><INPUT TYPE=text NAME=\"comment\" SIZE=40</TD></TR>"
	"</TABLE><P><INPUT TYPE=submit VALUE=\"Add\">&nbsp;"
	"<INPUT TYPE=reset VALUE=\"Reset\"></FORM>";
    mainMenuReference(con);
    return true;
}

bool selectSoftwareForm(WWWconnection& con)
{
    con << TAG << 
	HTML_HEAD "<TITLE>Select software product</TITLE></HEAD>"
	BODY
	"<H2>Select software product</H2>"
	"<FORM METHOD=POST ACTION=\"" << con.getStub() << "\">"
	"<INPUT TYPE=HIDDEN NAME=\"socket\" VALUE=\"" << con.getAddress() << 
	"\"><INPUT TYPE=hidden NAME=\"page\" VALUE=\"softwareForm\">"
	"<INPUT TYPE=hidden NAME=\"myself\" VALUE=\"" << con.get("myself") << 
	"\"><SELECT SIZE=15 NAME=\"software\">";
    if (products.select() > 0) { 
	print(con, products);
	con << TAG << 
	   "</SELECT><BR><INPUT TYPE=submit NAME=\"action\" VALUE=\"Select\">";
    } else { 
	con << TAG << EMPTY_LIST;
    }
    con << TAG << "</FORM>";
    mainMenuReference(con);
    return true;
}

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

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

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

bool selectBugForm(WWWconnection& con)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃在线一区二区三区| 亚洲国产视频a| 天天色 色综合| 国产成人精品1024| 日韩一区二区免费在线电影| 亚洲欧美中日韩| 久草精品在线观看| 欧美日韩激情一区二区| 国产精品久久久久久久久果冻传媒| 日本成人在线网站| 91香蕉视频在线| 国产日韩欧美a| 裸体一区二区三区| 欧美久久久久久久久| 日韩毛片在线免费观看| 懂色一区二区三区免费观看 | 视频一区免费在线观看| 91免费看片在线观看| 国产精品天干天干在线综合| 捆绑紧缚一区二区三区视频| 欧美精品色一区二区三区| 亚洲麻豆国产自偷在线| 大尺度一区二区| 久久久亚洲国产美女国产盗摄| 日韩成人一区二区| 欧美午夜精品久久久| 亚洲黄色尤物视频| 91免费版在线| 亚洲色图制服诱惑| av资源站一区| 国产精品国产三级国产aⅴ原创| 国产乱淫av一区二区三区| 日韩女同互慰一区二区| 日韩不卡免费视频| 在线播放亚洲一区| 日韩影院在线观看| 欧美日韩一级大片网址| 亚洲成人在线观看视频| 欧美性猛片aaaaaaa做受| 亚洲精品久久久久久国产精华液| 91亚洲精华国产精华精华液| 国产精品久久久久久久久搜平片 | 国产激情一区二区三区| 久久先锋影音av鲁色资源网| 久久精品久久99精品久久| 日韩一区二区三区在线| 美女免费视频一区二区| 日韩三级av在线播放| 美女网站色91| 亚洲精品一区二区三区蜜桃下载| 韩国毛片一区二区三区| 久久精品水蜜桃av综合天堂| 国产精品香蕉一区二区三区| 中文字幕av一区二区三区高| 波多野结衣精品在线| 久久机这里只有精品| 欧美精品一区二区三区在线| 韩国av一区二区三区四区| 久久看人人爽人人| 成人高清视频在线| 亚洲视频狠狠干| 在线亚洲人成电影网站色www| 一级女性全黄久久生活片免费| 欧美综合天天夜夜久久| 视频一区二区中文字幕| 日韩精品一区二区三区中文精品| 国产剧情在线观看一区二区| 国产精品进线69影院| 欧美性生交片4| 免费一级片91| 欧美国产视频在线| 91丝袜国产在线播放| 亚洲va天堂va国产va久| 精品国产制服丝袜高跟| 粉嫩一区二区三区在线看| 一区二区三区中文字幕| 日韩一区二区三区在线观看| 高清成人在线观看| 亚洲精品国产品国语在线app| 欧美日韩久久一区| 国产精选一区二区三区| 亚洲乱码中文字幕综合| 欧美一三区三区四区免费在线看| 国产一区二区三区在线观看免费视频| 欧美国产欧美综合| 欧美日韩国产免费一区二区| 国产美女久久久久| 亚洲精品久久久蜜桃| 精品日韩在线观看| www.欧美色图| 天天av天天翘天天综合网| 欧美精品一区二区在线播放| 一本色道综合亚洲| 精品在线你懂的| 一区二区视频在线| 精品剧情在线观看| 在线观看一区二区视频| 精品一区二区三区久久久| 亚洲色欲色欲www| 日韩精品中文字幕在线不卡尤物| 成人福利视频在线看| 日本不卡一区二区三区高清视频| 欧美激情一区二区在线| 666欧美在线视频| www.亚洲在线| 精品一区二区三区香蕉蜜桃| 亚洲精品伦理在线| 国产日韩v精品一区二区| 欧美疯狂性受xxxxx喷水图片| 成人午夜碰碰视频| 毛片一区二区三区| 亚洲小说欧美激情另类| 国产丝袜在线精品| 制服丝袜中文字幕亚洲| 色综合久久中文字幕综合网| 韩国av一区二区| 天天av天天翘天天综合网色鬼国产| 国产精品久久久久久亚洲毛片 | 波多野结衣中文一区| 人禽交欧美网站| 亚洲一区二区三区四区的| 中文字幕电影一区| 欧美xxxx在线观看| 欧美日韩国产另类一区| 色综合久久久久综合体桃花网| 国产一区二区三区四区五区入口| 午夜激情久久久| 一区二区三区四区在线| 欧美激情综合在线| 久久免费偷拍视频| 精品国产伦理网| 欧美丰满美乳xxx高潮www| 色噜噜久久综合| www.亚洲人| 国产成人免费xxxxxxxx| 久久99在线观看| 秋霞av亚洲一区二区三| 亚洲成人动漫av| 玉足女爽爽91| 最好看的中文字幕久久| 中文字幕第一区二区| 久久久久一区二区三区四区| 2020国产精品| 精品国产三级电影在线观看| 日韩视频免费观看高清完整版| 欧美久久一区二区| 欧美剧在线免费观看网站| 欧美午夜精品一区二区蜜桃| 日本韩国精品一区二区在线观看| 97久久超碰国产精品电影| 成人精品国产一区二区4080| 福利视频网站一区二区三区| 国产成人亚洲综合a∨婷婷| 国产综合久久久久久鬼色| 久久精品二区亚洲w码| 美女在线视频一区| 极品瑜伽女神91| 国产在线播放一区二区三区| 国产在线一区二区| 国产精品自拍一区| 国产成人综合视频| 国产91富婆露脸刺激对白| 白白色 亚洲乱淫| 91美女在线视频| 91成人免费电影| 欧美日韩一区二区三区不卡| 欧美日韩国产bt| 日韩欧美一二三四区| 精品国产免费人成电影在线观看四季 | 日韩国产一二三区| 日本欧美韩国一区三区| 免费观看一级特黄欧美大片| 秋霞电影一区二区| 国内精品在线播放| 国产·精品毛片| 色婷婷亚洲精品| 欧美日韩综合不卡| 欧美一区二区三区在| 精品国产麻豆免费人成网站| 国产日韩精品一区| 亚洲人成影院在线观看| 亚洲综合成人在线视频| 性久久久久久久| 久久精品免费观看| 国产91精品欧美| 在线视频一区二区三| 欧美一区二区三区白人| 久久久噜噜噜久久人人看| 中文字幕制服丝袜成人av | 欧美国产精品中文字幕| 亚洲欧美一区二区三区国产精品 | 国产亚洲女人久久久久毛片| ...中文天堂在线一区| 亚洲第一在线综合网站| 美女视频一区在线观看| 风间由美一区二区三区在线观看| 色综合色综合色综合| 日韩欧美一级二级| 中文字幕一区免费在线观看| 亚洲r级在线视频|