本文整理汇总了C++中Query::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ Query::clear方法的具体用法?C++ Query::clear怎么用?C++ Query::clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Query
的用法示例。
在下文中一共展示了Query::clear方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SaveGame
void GameModel::SaveGame()
{
using namespace ManaCraft::Database;
// Game Table
Query query = DatabaseAPI::getQuery();
query.clear();
query << "SELECT * FROM Game WHERE ID = " << mysqlpp::quote << id;
if (UseQueryResult result = query.use()) {
if (Row row = result.fetch_row()) {
DeleteGame();
}
}
try {
query = DatabaseAPI::getQuery();
query.clear();
query << "INSERT INTO Game VALUES(" << mysqlpp::quote << id << ", " << mysqlpp::quote << "Another Game" << ")";
query.execute();
teams->SaveTeams(id);
}
catch (mysqlpp::BadConversion e) {
std::cout << e.what() << "\n";
}
catch (mysqlpp::BadIndex e) {
std::cout << e.what() << "\n";
}
catch (Exception e) {
throw e;
}
}
示例2: DeleteGame
void GameModel::DeleteGame() {
using namespace ManaCraft::Database;
try {
this->teams->DeleteTeams();
Query query = DatabaseAPI::getQuery();
query.clear();
query << "DELETE FROM Game WHERE ID = " << mysqlpp::quote << this->id;
query.execute();
query = DatabaseAPI::getQuery();
query.clear();
query << "DELETE FROM Game_Teams WHERE ID = " << mysqlpp::quote << this->id;
query.execute();
query = DatabaseAPI::getQuery();
query.clear();
query << "DELETE FROM Game_Player_Towers WHERE ID = " << mysqlpp::quote << this->id;
query.execute();
}
catch (mysqlpp::BadConversion e) {
std::cout << e.what() << "\n";
}
catch (mysqlpp::BadIndex e) {
std::cout << e.what() << "\n";
}
catch (Exception e) {
throw e;
}
}
示例3: testDelete
void TestDatabase::testDelete()
{
DatabaseAPI::connectToDatabase();
Query query = DatabaseAPI::getQuery();
query.clear();
query << "DELETE FROM Test_Table WHERE ID = 1";
query.execute();
query = DatabaseAPI::getQuery();
query.clear();
query << "DELETE FROM Test_Table WHERE ID = 2";
query.execute();
}
示例4: LoadNextID
void GameModel::LoadNextID() {
using namespace ManaCraft::Database;
try {
Query query = DatabaseAPI::getQuery();
query.clear();
query << "SELECT MAX(ID) FROM Game";
if (UseQueryResult result = query.use()) {
if (Row row = result.fetch_row()) {
nextID = atoi(row[TableInfo::Game::ID].c_str());
}
else { // Table is empty
nextID = 0;
}
}
}
catch (mysqlpp::BadConversion e) {
std::cout << e.what() << "\n";
}
catch (mysqlpp::BadIndex e) {
std::cout << e.what() << "\n";
}
catch (Exception e) {
throw e;
}
}
示例5: buildFromRow
std::vector<Minion*> Minion::fetchAllFromDB() {
using namespace ManaCraft::Database;
try {
std::cout << "Querying Minion Table\n";
Query query = DatabaseAPI::getQuery();
query.clear();
query << "SELECT * FROM Minions";
std::vector<Minion*> minions = std::vector<Minion*>();
if (UseQueryResult result = query.use()) {
std::cout << "Obtained Result from Minion query\n";
Row row;
while (row = result.fetch_row()) {
Minion* e = buildFromRow(row);
minions.push_back(e);
}
}
return minions;
}
catch (Exception e) {
throw e;
}
return std::vector<Minion*>();
}
示例6: loadQueriesList
void FileUtils::loadQueriesList(std::string& filePath,
std::vector<Query>& list) {
// Initialize local variables
list.clear();
std::ifstream inputFileStream;
Query query;
// Open file
inputFileStream.open(filePath.c_str(), std::fstream::in);
// Check file
if (inputFileStream.good() == false) {
throw std::runtime_error(
"Error while opening file [" + filePath + "] for reading");
}
// Load list from file
while (inputFileStream >> query.name >> query.x1 >> query.y1 >> query.x2
>> query.y2) {
list.push_back(query);
// Clear variable holding temporary query
query.clear();
}
// Close file
inputFileStream.close();
}
示例7: buildFromRow
std::vector<Element*> Element::fetchAllFromDB() {
using namespace ManaCraft::Database;
try {
std::cout << "Querying Element Table\n";
Query query = DatabaseAPI::getQuery();
query.clear();
query << "SELECT * FROM Elements";
std::vector<Element*> elements = std::vector<Element*>();
if (UseQueryResult result = query.use()) {
std::cout << "Obtained Result from Element query\n";
Row row;
while (row = result.fetch_row()) {
Element* e = buildFromRow(row);
elements.push_back(e);
}
}
return elements;
}
catch (Exception e) {
throw e;
}
return std::vector<Element*>();
}
示例8: E
Query* Parser::E() {
Query* par = new Query(SIGN_OR);
par->add(T());
while (!token.compare("OR") || !token.compare("|")) { // T OR E
if (!token.compare("OR"))
match("OR");
else
match("|");
par->add(T());
}
if (par->size() == 1) {
Query* ret = par->get(0);
par->clear();
delete par;
return ret;
}
return par;
}
示例9: T
Query* Parser::T() {
Query* par = new Query(SIGN_AND);
par->add(S());
while (!token.compare("AND") || !token.compare("&")) { // S AND T
if (!token.compare("AND"))
match("AND");
else
match("&");
par->add(S());
}
if (par->size() == 1) {
Query* ret = par->get(0);
par->clear();
delete par;
return ret;
}
return par;
}
示例10: LoadGameByID
GameModel* GameModel::LoadGameByID(unsigned int _id) {
using namespace ManaCraft::Database;
GameModel* temp = new GameModel();
temp->id = _id;
try {
Query query = DatabaseAPI::getQuery();
// Game Table
query.clear();
query << "SELECT * FROM Game WHERE ID = " << mysqlpp::quote << _id;
if (UseQueryResult result = query.use()) {
if (Row row = result.fetch_row()) {
// ASSIGN VALUES HERE once there is something to assign
}
else {
throw DatabaseAPI::IDNotFoundException();
}
}
// Game_Teams table
int teamIDs[2];
query.clear();
query << "SELECT * FROM Game_Teams WHERE GameID = " << mysqlpp::quote << _id;
if (UseQueryResult result = query.use()) {
for (int i = 0; i < 2; ++i) {
if (Row row = result.fetch_row()) {
teamIDs[i] = atoi(row[TableInfo::GameTeam::TEAM_ID].c_str()); // Save team IDs
}
else {
throw DatabaseAPI::IDNotFoundException();
}
}
}
// Load teams
temp->teams = Teams::LoadTeamsByIDs(teamIDs[0], teamIDs[1]);
if (temp->teams == nullptr) {
// it dun broke, throw jank
}
// For each team
for (int i = 0; i < 2; ++i) {
vector<Player*>* team = &(i == 0 ? temp->teams->Team1 : temp->teams->Team2);
// For each player
for (size_t i = 0; i < team->size(); ++i) {
Player* player = team->at(i);
// Load towers
query.clear();
query << "SELECT * FROM Game_Player_Towers WHERE GameID = " << mysqlpp::quote << _id << "AND PlayerID = " << mysqlpp::quote << player->id;
if (UseQueryResult result = query.use()) {
while (Row row = result.fetch_row()) {
Tower* tower = new Tower();
tower->id = atoi(row[TableInfo::GamePlayerTowers::TOWER_ID].c_str());
tower->xPos = atoi(row[TableInfo::GamePlayerTowers::X_POS].c_str());
tower->yPos = atoi(row[TableInfo::GamePlayerTowers::Y_POS].c_str());
// Add to lists
player->towers.push_back(tower);
temp->towers.push_back(tower);
// After the GameModel is loaded, base tower info, which was loaded from the DB on startup, must be passed into their respective towers
// This cannot be done from this static implementation
}
}
}
}
return temp;
}
catch (mysqlpp::BadConversion e) {
std::cout << e.what() << "\n";
}
catch (mysqlpp::BadIndex e) {
std::cout << e.what() << "\n";
}
catch (Exception e) {
throw e;
}
delete temp;
return nullptr;
}
示例11: testQuery
void TestDatabase::testQuery() {
DatabaseAPI::connectToDatabase();
Query query = DatabaseAPI::getQuery();
try { // No errors on CREATE TABLE
query << "CREATE TABLE testTable ( num int, str varchar(4) )";
query.execute();
++testSuccesses;
}
catch (Exception e) {
++testFailures;
}
try { // No errors on INSERT
query.clear();
query << "INSERT INTO testTable VALUES (" << mysqlpp::quote << 1 << ", " << mysqlpp::quote << "one" << ")";
query.execute();
++testSuccesses;
}
catch (Exception e) {
++testFailures;
}
try { // No errors on SELECT
query.clear();
query << "SELECT * FROM testTable";
UseQueryResult result = query.use();
Row row;
if (row = result.fetch_row()) { // Row was inserted
++testSuccesses;
if (row[0] == "1") { // Proper int inserted
++testSuccesses;
}
else ++testFailures;
if (row[1] == "one") { // Proper string inserted
++testSuccesses;
}
else ++testFailures;
}
else ++testFailures;
}
catch (Exception e) {
++testFailures;
std::cout << "EXC" << std::endl;
}
try { // No errors on DROP TABLE
query.clear();
query << "DROP TABLE testTable";
query.execute();
++testSuccesses;
}
catch (Exception e) {
++testFailures;
}
std::cout << "Query tests complete. Successes: " << testSuccesses << "\tFailures: " << testFailures << std::endl;
resetTestCounts();
}