• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ pqxx::connection类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ presence::ref类代码示例发布时间:2022-05-31
下一篇:
C++ posix_time::time_duration类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap