_FindOrCreateRuleset converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-08-18 14:30:13 -07:00
parent 85ebb32176
commit a75b53f9b0

View File

@ -342,32 +342,25 @@ int RuleManager::GetRulesetID(Database *db, const char *rulesetname) {
} }
int RuleManager::_FindOrCreateRuleset(Database *db, const char *ruleset) { int RuleManager::_FindOrCreateRuleset(Database *db, const char *ruleset) {
int res;
res = GetRulesetID(db, ruleset); int res = GetRulesetID(db, ruleset);
if(res >= 0) if(res >= 0)
return(res); //found and existing one... return res; //found and existing one...
uint32 len = strlen(ruleset); uint32 len = strlen(ruleset);
char* rst = new char[2*len+1]; char* rst = new char[2*len+1];
db->DoEscapeString(rst, ruleset, len); db->DoEscapeString(rst, ruleset, len);
uint32 new_id; std::string query = StringFormat("INSERT INTO rule_sets (ruleset_id, name) VALUES(0, '%s')", rst);
char errbuf[MYSQL_ERRMSG_SIZE]; safe_delete_array(rst);
char* query = 0; auto results = db->QueryDatabase(query);
if (!db->RunQuery(query, MakeAnyLenString(&query, if (!results.Success())
"INSERT INTO rule_sets (ruleset_id, name) "
" VALUES(0, '%s')",
rst),errbuf,nullptr,nullptr,&new_id))
{ {
_log(RULES__ERROR, "Fauled to create rule set in the database: %s: %s", query,errbuf); _log(RULES__ERROR, "Fauled to create rule set in the database: %s: %s", query.c_str(), results.ErrorMessage().c_str());
res = -1; return -1;
} else {
res = new_id;
} }
safe_delete_array(query);
return(res); return results.LastInsertedID();
} }
std::string RuleManager::GetRulesetName(Database *db, int id) { std::string RuleManager::GetRulesetName(Database *db, int id) {