mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-05 15:22:37 +00:00
Merge pull request #185 from addtheice/RunQueryToDatabaseQuery_client_files_main
Run query to database query client files main
This commit is contained in:
commit
50c186b608
@ -69,14 +69,13 @@ void ExportSpells(SharedDatabase *db) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
const std::string query = "SELECT * FROM spells_new ORDER BY id";
|
||||||
const char *query = "SELECT * FROM spells_new ORDER BY id";
|
auto results = db->QueryDatabase(query);
|
||||||
MYSQL_RES *result;
|
|
||||||
MYSQL_ROW row;
|
if(results.Success()) {
|
||||||
if(db->RunQuery(query, strlen(query), errbuf, &result)) {
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
while(row = mysql_fetch_row(result)) {
|
|
||||||
std::string line;
|
std::string line;
|
||||||
unsigned int fields = mysql_num_fields(result);
|
unsigned int fields = results.ColumnCount();
|
||||||
for(unsigned int i = 0; i < fields; ++i) {
|
for(unsigned int i = 0; i < fields; ++i) {
|
||||||
if(i != 0) {
|
if(i != 0) {
|
||||||
line.push_back('^');
|
line.push_back('^');
|
||||||
@ -87,54 +86,50 @@ void ExportSpells(SharedDatabase *db) {
|
|||||||
|
|
||||||
fprintf(f, "%s\n", line.c_str());
|
fprintf(f, "%s\n", line.c_str());
|
||||||
}
|
}
|
||||||
mysql_free_result(result);
|
|
||||||
} else {
|
} else {
|
||||||
LogFile->write(EQEMuLog::Error, "Error in ExportSpells query '%s' %s", query, errbuf);
|
LogFile->write(EQEMuLog::Error, "Error in ExportSpells query '%s' %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SkillUsable(SharedDatabase *db, int skill_id, int class_id) {
|
bool SkillUsable(SharedDatabase *db, int skill_id, int class_id) {
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
|
||||||
char *query = nullptr;
|
|
||||||
MYSQL_RES *result;
|
|
||||||
MYSQL_ROW row;
|
|
||||||
bool res = false;
|
bool res = false;
|
||||||
if(db->RunQuery(query, MakeAnyLenString(&query, "SELECT max(cap) FROM skill_caps WHERE class=%d AND skillID=%d",
|
|
||||||
class_id, skill_id), errbuf, &result)) {
|
std::string query = StringFormat("SELECT max(cap) FROM skill_caps WHERE class=%d AND skillID=%d",
|
||||||
if(row = mysql_fetch_row(result)) {
|
class_id, skill_id);
|
||||||
if(row[0] && atoi(row[0]) > 0) {
|
auto results = db->QueryDatabase(query);
|
||||||
res = true;
|
if(!results.Success()) {
|
||||||
}
|
LogFile->write(EQEMuLog::Error, "Error in skill_usable query '%s' %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
}
|
return false;
|
||||||
mysql_free_result(result);
|
|
||||||
} else {
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in skill_usable query '%s' %s", query, errbuf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
safe_delete_array(query);
|
if (results.RowCount() == 0)
|
||||||
return res;
|
return false;
|
||||||
|
|
||||||
|
auto row = results.begin();
|
||||||
|
if(row[0] && atoi(row[0]) > 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetSkill(SharedDatabase *db, int skill_id, int class_id, int level) {
|
int GetSkill(SharedDatabase *db, int skill_id, int class_id, int level) {
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
|
||||||
char *query = nullptr;
|
std::string query = StringFormat("SELECT cap FROM skill_caps WHERE class=%d AND skillID=%d AND level=%d",
|
||||||
MYSQL_RES *result;
|
class_id, skill_id, level);
|
||||||
MYSQL_ROW row;
|
auto results = db->QueryDatabase(query);
|
||||||
int res = 0;
|
if (!results.Success()) {
|
||||||
if(db->RunQuery(query, MakeAnyLenString(&query, "SELECT cap FROM skill_caps WHERE class=%d AND skillID=%d AND level=%d",
|
LogFile->write(EQEMuLog::Error, "Error in get_skill query '%s' %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
class_id, skill_id, level), errbuf, &result)) {
|
return 0;
|
||||||
if(row = mysql_fetch_row(result)) {
|
|
||||||
res = atoi(row[0]);
|
|
||||||
}
|
|
||||||
mysql_free_result(result);
|
|
||||||
} else {
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in get_skill query '%s' %s", query, errbuf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
safe_delete_array(query);
|
if (results.RowCount() == 0)
|
||||||
return res;
|
return 0;
|
||||||
|
|
||||||
|
auto row = results.begin();
|
||||||
|
return atoi(row[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExportSkillCaps(SharedDatabase *db) {
|
void ExportSkillCaps(SharedDatabase *db) {
|
||||||
@ -175,27 +170,23 @@ void ExportBaseData(SharedDatabase *db) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
const std::string query = "SELECT * FROM base_data ORDER BY level, class";
|
||||||
const char *query = "SELECT * FROM base_data ORDER BY level, class";
|
auto results = db->QueryDatabase(query);
|
||||||
MYSQL_RES *result;
|
if(results.Success()) {
|
||||||
MYSQL_ROW row;
|
for (auto row = results.begin();row != results.end();++row) {
|
||||||
if(db->RunQuery(query, strlen(query), errbuf, &result)) {
|
|
||||||
while(row = mysql_fetch_row(result)) {
|
|
||||||
std::string line;
|
std::string line;
|
||||||
unsigned int fields = mysql_num_fields(result);
|
unsigned int fields = results.ColumnCount();
|
||||||
for(unsigned int i = 0; i < fields; ++i) {
|
for(unsigned int rowIndex = 0; rowIndex < fields; ++rowIndex) {
|
||||||
if(i != 0) {
|
if(rowIndex != 0)
|
||||||
line.push_back('^');
|
line.push_back('^');
|
||||||
}
|
|
||||||
|
|
||||||
line += row[i];
|
line += row[rowIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(f, "%s\n", line.c_str());
|
fprintf(f, "%s\n", line.c_str());
|
||||||
}
|
}
|
||||||
mysql_free_result(result);
|
|
||||||
} else {
|
} else {
|
||||||
LogFile->write(EQEMuLog::Error, "Error in ExportBaseData query '%s' %s", query, errbuf);
|
LogFile->write(EQEMuLog::Error, "Error in ExportBaseData query '%s' %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user