本文整理汇总了C++中pqxx::connection类的典型用法代码示例。如果您正苦于以下问题:C++ connection类的具体用法?C++ connection怎么用?C++ connection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了connection类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: addtestgroup
void addtestgroup(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
std::string problemid, testgroupname;
socket.read(problemid).read(testgroupname);
conn.prepare("insert testgroup",
" INSERT INTO testgroups(problemid, testgroupname) VALUES($1, $2)");
txn.prepared("insert testgroup")(problemid)(testgroupname).exec();
pqxx::result testgroupids =
txn.exec("SELECT currval('testgroups_testgroupid_seq') AS testgroupid");
std::string testgroupid = testgroupids.begin()["testgroupid"].as<std::string>();
socket.write("TESTGROUPID").write(testgroupid, '\n').write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:28,代码来源:commands.cpp
示例2: createcontest
void createcontest(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
std::string contestname, description;
socket.read(contestname).readtext(description);
conn.prepare("insert contest",
" INSERT INTO contests(contestname, description) VALUES($1, $2)");
txn.prepared("insert contest")(contestname)(description).exec();
int contestid = txn.exec("SELECT currval('contests_contestid_seq') "
" AS contestid "
).begin()["contestid"].as<int>();
conn.prepare("insert mod",
" INSERT INTO participations VALUES($1, $2, 't')");
txn.prepared("insert mod")(user["userid"].as<int>())(contestid).exec();
socket.write("OK", '\n');
txn.commit();
}
开发者ID:phantom10111,项目名称:veritas,代码行数:31,代码来源:commands.cpp
示例3: addvariant
void addvariant(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
std::string contestid, problemid, from, to, shortname, name, description;
socket.read(contestid);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND contestid = $2 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid)(contestid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
socket.read(problemid).read(from).read(to).read(shortname).
readtext(name).readtext(description);
conn.prepare("insert variant",
" INSERT INTO variants(contestid, problemid, submissible_from, "
" submissible_to, shortname, variantname, description) "
" VALUES ($1, $2, $3, $4, $5, $6, $7)");
txn.prepared("insert variant")(contestid)(problemid)(from)(to)(shortname)
(name)(description).exec();
auto id = txn.exec("SELECT currval('variants_variantid_seq') AS variantid")
.begin()["variantid"].as<std::string>();
socket.write("VARIANTID").write(id, '\n');
socket.write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:34,代码来源:commands.cpp
示例4: addproblem
void addproblem(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
std::string problemname, description;
socket.read(problemname).readtext(description);
conn.prepare("insert problem",
" INSERT INTO problems(problemname, description) VALUES($1, $2)");
txn.prepared("insert problem")(problemname)(description).exec();
pqxx::result problemids =
txn.exec("SELECT currval('problems_problemid_seq') AS problemid");
std::string problemid = problemids.begin()["problemid"].as<std::string>();
socket.write("PROBLEMID").write(problemid, '\n').write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:28,代码来源:commands.cpp
示例5: removegroupfromvariant
void removegroupfromvariant(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
std::string testgroupid, variantid;
socket.read(testgroupid).read(variantid);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
"NATURAL JOIN variants "
" WHERE variantid = $1 "
" AND userid = $2 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(variantid)(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
conn.prepare("delete v_t",
" DELETE FROM variants_tests "
" WHERE testgroupid = $2 AND variantid = $1");
txn.prepared("insert v_t")(variantid)(testgroupid).exec();
socket.write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:28,代码来源:commands.cpp
示例6: removeproblem
void removeproblem(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
"NATURAL JOIN variants "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
std::string problemid;
socket.read(problemid);
conn.prepare("delete problem",
" DELETE FROM problems "
" WHERE problemid = $1");
txn.prepared("delete problem")(problemid).exec();
socket.write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:27,代码来源:commands.cpp
示例7: viewproblems
void viewproblems(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
conn.prepare("problems",
"SELECT problemid, problemname "
" FROM problems ");
pqxx::result problems = txn.prepared("problems").exec();
if(problems.empty()){
socket.write("ERROR NOPROBLEMS", '\n');
return;
}
for(auto row : problems){
socket
.write("PROBLEM")
.write(row["problemid"].as<std::string>())
.write(row["problemname"].as<std::string>(), '\n');
}
socket.write("\nOK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:35,代码来源:commands.cpp
示例8: createuser
void createuser(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
const int pass_len = 10;
const int sigma = 26;
char pass[pass_len], chars[sigma + 1];
srand(time(NULL));
std::iota(chars, chars + sigma, 'a');
std::generate_n(pass, pass_len, [chars](){return chars[rand() % sigma];});
pass[pass_len] = '\0';
std::string login, username, email;
socket.read(login).read(username).read(email);
conn.prepare("insert user",
"INSERT INTO users(login, username, authtoken, email) "
" VALUES ($1, $2, $3, $4) "
);
txn.prepared("insert user")(login)(username)(pass)(login + "@mail.com").exec();
socket.write("PASSWORD").write(pass, '\n').write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:34,代码来源:commands.cpp
示例9: viewcontests
void viewcontests(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
pqxx::result contests;
if(user["is_administrator"].as<bool>()){
conn.prepare("all contests",
"SELECT contestname, description"
" FROM contests ");
contests = txn.prepared("all contests").exec();
} else {
conn.prepare("contests",
" SELECT contestname, description "
" FROM contests "
"NATURAL JOIN participations "
" WHERE userid = $1 ");
std::string userid = user["userid"].as<std::string>();
contests = txn.prepared("contests")(userid).exec();
}
for(auto row : contests){
socket.write(row["contestname"].as<std::string>(), '\t')
.write(row["description"].as<std::string>(), '\n');
}
socket.write("OK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:28,代码来源:commands.cpp
示例10: addlanguagetovariant
void addlanguagetovariant(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
std::string contestname, shortname, roname, extension;
socket.read(contestname).read(shortname).read(roname).read(extension);
conn.prepare("select contestid",
"SELECT contestid "
" FROM contests "
" WHERE contestname = $1 ");
auto contestids = txn.prepared("select contestid")(contestname).exec();
if(contestids.empty()){
socket.write("ERROR NOSUCHCONTEST", '\n');
return;
}
int contestid = contestids.begin()["contestid"].as<int>();
conn.prepare("select variantid",
"SELECT variantid "
" FROM variants "
" WHERE contestid = $1 "
" AND shortname = $2 ");
auto variantids = txn.prepared("select variantid")(contestid)(shortname).exec();
if(variantids.empty()){
socket.write("ERROR NOVARIANT", '\n');
return;
}
int variantid = variantids.begin()["variantid"].as<int>();
conn.prepare("participation info",
"SELECT * "
" FROM participations "
" WHERE userid = $1 "
" AND contestid = $2 "
" AND is_moderator = true");
auto infos = txn.prepared("participation info")(user["userid"].as<int>())(contestid).exec();
if(infos.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
conn.prepare("select optionid",
"SELECT running_optionid "
" FROM running_options "
" WHERE running_optionname= $1");
auto optionids = txn.prepared("select optionid")(roname).exec();
if(optionids.empty()){
socket.write("ERROR NOOPTION", '\n');
return;
}
int optionid = optionids.begin()["running_optionid"].as<int>();
conn.prepare("add option to variant",
"INSERT INTO variants_running_options"
" VALUES ($1, $2, $3) ");
txn.prepared("add option to variant")(optionid)(extension)(variantid).exec();
socket.write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:60,代码来源:commands.cpp
示例11: addtesttogroup
void addtesttogroup(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
std::string testid, testgroupid;
socket.read(testid).read(testgroupid);
conn.prepare("insert t_t",
" INSERT INTO testgroups_tests "
" VALUES ($2, $1)");
txn.prepared("insert t_t")(testid)(testgroupid).exec();
socket.write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:26,代码来源:commands.cpp
示例12: addtest
void addtest(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
std::string problemid, testname, description, timelimit_, memlimit_, infile,
outfile;
socket.read(problemid).read(testname).readtext(description).read(timelimit_);
socket.read(memlimit_).readtext(infile).readtext(outfile);
conn.prepare("insert test",
" INSERT INTO tests(problemid, testname, description, timelimit, "
" memlimit, infile, outfile) "
" VALUES ($1, $2, $3, $4, $5, $6, $7)");
float timelimit = atof(timelimit_.c_str());
int memlimit = atoi(memlimit_.c_str());
txn.prepared("insert test")(problemid)(testname)(description)
(timelimit)(memlimit)(infile)(outfile).exec();
pqxx::result testids =
txn.exec("SELECT currval('tests_testid_seq') AS testid");
std::string testid = testids.begin()["testid"].as<std::string>();
socket.write("TESTID").write(testid, '\n').write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:35,代码来源:commands.cpp
示例13: viewproblem
void viewproblem(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
conn.prepare("problems",
"SELECT * "
" FROM problems "
" WHERE problemid = $1");
std::string problemid_str;
socket.read(problemid_str);
int problemid = atoi(problemid_str.c_str());
pqxx::result problems = txn.prepared("problems")(problemid).exec();
if(problems.empty()){
socket.write("ERROR NOSUCHPROBLEM", '\n');
return;
}
for(auto row : problems){
socket
.write("PROBLEM")
.write(row["problemid"].as<std::string>())
.write(row["problemname"].as<std::string>(), '\n')
.writetext(row["description"].as<std::string>()).write("", '\n');
}
conn.prepare("testgroups",
"SELECT * FROM testgroups WHERE problemid = $1");
pqxx::result testgroups = txn.prepared("testgroups")(problemid).exec();
for(auto row : testgroups){
socket
.write("TESTGROUP")
.write(row["testgroupid"].as<std::string>())
.write(row["testgroupname"].as<std::string>(), '\n');
}
socket.write("\nOK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:49,代码来源:commands.cpp
示例14: addusertocontest
void addusertocontest(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
std::string login, contestname, is_moderator;
socket.read(login).read(contestname).read(is_moderator);
conn.prepare("select contestid",
"SELECT contestid "
" FROM contests "
" WHERE contestname = $1 ");
auto contestids = txn.prepared("select contestid")(contestname).exec();
if(contestids.empty()){
socket.write("ERROR NOSUCHCONTEST", '\n');
return;
}
int contestid = contestids.begin()["contestid"].as<int>();
conn.prepare("participation info",
"SELECT * "
" FROM participations "
" WHERE userid = $1 "
" AND contestid = $2 "
" AND is_moderator = true");
auto infos = txn.prepared("participation info")(user["userid"].as<int>())(contestid).exec();
if(infos.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
conn.prepare("select userid",
"SELECT userid "
" FROM users "
" WHERE login = $1");
auto userids = txn.prepared("select userid")(login).exec();
if(userids.empty()){
socket.write("ERROR NOUSER", '\n');
return;
}
int userid = userids.begin()["userid"].as<int>();
conn.prepare("add participant",
"INSERT INTO participations"
" VALUES ($1, $2, $3) ");
txn.prepared("add participant")(userid)(contestid)(is_moderator == "true").exec();
socket.write("OK", '\n');
txn.commit();
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:46,代码来源:commands.cpp
示例15: viewvariant
void viewvariant(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
std::string contestname, shortname;
socket.read(contestname).read(shortname);
pqxx::work txn(conn);
conn.prepare("user contests",
" SELECT contestid "
" FROM participations "
"NATURAL JOIN contests "
" WHERE userid = $1 "
" AND contestname = $2 ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("user contests")(userid)
(contestname).exec();
if(contests.empty()){
socket.write("ERROR NOSUCHPARTICIPATION", '\n');
return;
}
int contestid = contests.begin()["contestid"].as<int>();
conn.prepare("variant",
"SELECT variantname, description "
" FROM variants "
" WHERE contestid = $1 "
" AND shortname = $2 ");
pqxx::result variants = txn.prepared("variant")(contestid)
(shortname).exec();
if(variants.empty()){
socket.write("ERROR NOSUCHVARIANT", '\n');
return;
}
for(auto row : variants){
socket
.write("VARIANT")
.write(shortname)
.write(row["variantname"].as<std::string>(), '\n')
.writetext(row["description"].as<std::string>());
}
socket.write("\nOK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:45,代码来源:commands.cpp
示例16: viewtest
void viewtest(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
conn.prepare("tests",
"SELECT * "
" FROM tests "
" WHERE testid = $1");
std::string testid_str;
socket.read(testid_str);
int testid = atoi(testid_str.c_str());
pqxx::result tests = txn.prepared("tests")(testid).exec();
if(tests.empty()){
socket.write("ERROR NOSUCHTEST", '\n');
return;
}
for(auto row : tests){
socket
.write("TEST")
.write(row["testid"].as<std::string>())
.write(row["problemid"].as<std::string>())
.write(row["testname"].as<std::string>())
.write(row["timelimit"].as<std::string>())
.write(row["memlimit"].as<std::string>())
.write(row["testname"].as<std::string>(), '\n');
socket.writetext(pqxx::binarystring(row["infile"]).str());
socket.writetext(pqxx::binarystring(row["outfile"]).str());
}
socket.write("\nOK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:45,代码来源:commands.cpp
示例17: viewvariants
void viewvariants(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
std::string contestname;
socket.read(contestname);
pqxx::work txn(conn);
conn.prepare("user contests",
" SELECT contestid "
" FROM participations "
"NATURAL JOIN contests "
" WHERE userid = $1 "
" AND contestname = $2 ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("user contests")(userid)
(contestname).exec();
if(contests.empty() ){
socket.write("ERROR NOSUCHPARTICIPATION", '\n');
return;
}
int contestid = contests.begin()["contestid"].as<int>();
conn.prepare("variants",
"SELECT shortname, variantname, submissible_to "
" FROM variants "
" WHERE contestid = $1 ");
pqxx::result variants = txn.prepared("variants")(contestid).exec();
for(auto row : variants){
auto const &submissible_to = row["submissible_to"];
std::string deadline = submissible_to.is_null() ? "none" :
submissible_to.as<std::string>();
socket
.write("VARIANT")
.write(row["shortname"].as<std::string>())
.write(row["variantname"].as<std::string>(), '\n')
.write("DEADLINE")
.write(deadline, '\n');
}
socket.write("OK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:42,代码来源:commands.cpp
示例18: viewtestgroup
void viewtestgroup(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
conn.prepare("tests",
"SELECT testid, testname "
" FROM testgroups_tests "
"NATURAL JOIN tests"
" WHERE testgroupid = $1");
std::string testgroupid_str;
socket.read(testgroupid_str);
int testgroupid = atoi(testgroupid_str.c_str());
pqxx::result tests = txn.prepared("tests")(testgroupid).exec();
if(tests.empty()){
socket.write("ERROR EMPTYTESTGROUP", '\n');
return;
}
for(auto row : tests){
socket
.write("TEST")
.write(row["testid"].as<std::string>())
.write(row["testname"].as<std::string>(), '\n');
}
socket.write("\nOK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:40,代码来源:commands.cpp
示例19: OSM
OSM():
osm_name("name:zh"),
radius(0.0008)
{
ptrConn = new pqxx::connection("dbname=nominatim user=osm password=osm hostaddr=127.0.0.1 port=5432");
if (!ptrConn->is_open())
throw std::string("database connection problem.");
mapCountry["country"]="place"; //level 1
mapState["administrative"]="boundary"; //level 2
mapCity["suburb"]="place"; //level 3
mapCity["village"]="place";
mapCity["town"]="place";
mapCity["city"]="place";
mapCity["hamlet"]="place";
mapRoad["highway"]="highway"; //level 4
mapRoad["highway"]="tertiary";
}
开发者ID:andre9875,项目名称:Policies,代码行数:20,代码来源:OSM.hpp
示例20: viewlanguages
void viewlanguages(
pqxx::result::tuple &user,
ssl_socket& socket,
pqxx::connection &conn){
pqxx::work txn(conn);
conn.prepare("moderated contests",
" SELECT contestid "
" FROM participations "
" WHERE userid = $1 "
" AND is_moderator = true ");
int userid = user["userid"].as<int>();
pqxx::result contests = txn.prepared("moderated contests")(userid).exec();
if(contests.empty() && !user["is_administrator"].as<bool>()){
socket.write("ERROR NOPERMISSION", '\n');
return;
}
auto options = txn.exec("SELECT running_optionname FROM running_options");
for(auto option : options){
socket.write("OPTION")
.write(option["running_optionname"].as<std::string>(), '\n');
}
socket.write("OK", '\n');
return;
}
开发者ID:phantom10111,项目名称:veritas,代码行数:24,代码来源:commands.cpp
注:本文中的pqxx::connection类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论