size_t MysqlHelper::getSqlCount(const string &sCondition) { ostringstream sSql; sSql << "select count(*) as num " << sCondition; MysqlData data = queryRecord(sSql.str()); long n = atol(data[0]["num"].c_str()); return n; }
size_t TC_Mysql::getRecordCount(const string& sTableName, const string &sCondition) { ostringstream sSql; sSql << "select count(*) as num from " << sTableName << " " << sCondition; MysqlData data = queryRecord(sSql.str()); long n = atol(data[0]["num"].c_str()); return n; }
bool CppFilterExtractor::createGroupingMonitor(BuildCtx ctx, const char * listName, IHqlExpression * expr, unsigned & maxField) { switch (expr->getOperator()) { case no_if: { IHqlExpression * cond = expr->queryChild(0); if (expr->queryChild(2)->isConstant() && isIndependentOfScope(cond)) { BuildCtx subctx(ctx); translator.buildFilter(subctx, expr->queryChild(0)); createGroupingMonitor(subctx, listName, expr->queryChild(1), maxField); return true; // may still be keyed } break; } case no_select: { size32_t offset = 0; ForEachItemIn(i, keyableSelects) { IHqlExpression & cur = keyableSelects.item(i); size32_t curSize = cur.queryType()->getSize(); if (!createValueSets && curSize == UNKNOWN_LENGTH) break; if (expr == &cur) { maxField = i+1; if (createValueSets) { StringBuffer type; translator.buildRtlFieldType(type, expr->queryChild(1), queryRecord(tableExpr)); ctx.addQuotedF("%s->append(FFkeyed, createWildFieldFilter(%u, %s));", listName, i, type.str()); } else { //MORE: Check the type of the field is legal. ctx.addQuotedF("%s->append(createWildKeySegmentMonitor(%u, %u, %u));", listName, i, offset, curSize); } return true; } offset += curSize; } break; } case no_constant: return true; }
string MysqlHelper::getVariables(const string &sName) { string sql = "SHOW VARIABLES LIKE '" + sName + "'"; MysqlData data = queryRecord(sql); if(data.size() == 0) { return ""; } if(sName == data[0]["Variable_name"]) { return data[0]["Value"]; } return ""; }
int MysqlHelper::getMaxValue(const string& sTableName, const string& sFieldName,const string &sCondition) { ostringstream sSql; sSql << "select " << sFieldName << " as f from " << sTableName << " " << sCondition << " order by f desc limit 1"; MysqlData data = queryRecord(sSql.str()); int n = 0; if(data.size() == 0) { n = 0; } else { n = atol(data[0]["f"].c_str()); } return n; }
bool MysqlHelper::existRecord(const string& sql) { return queryRecord(sql).size() > 0; }
bool TC_Mysql::existRecord(const string& sql) { return queryRecord(sql).size() > 0; }