bool XSqlQueryProto::isActive() { XSqlQuery *item = qscriptvalue_cast<XSqlQuery*>(thisObject()); if (item) return item->isActive(); return false; }
void MQLEdit::execQuery() { if(!_loggedIn) { QMessageBox::warning(this, tr("Not Connected"), tr("You must be connected to a database in order to execute a query.")); return; } _results->_table->setRowCount(0); _results->_table->setColumnCount(0); _sql->_log->clear(); _log->_log->clear(); _log->_log->append(tr("---- Parsing Query ----\n")); MetaSQLQuery mql(_text->toPlainText()); _log->_log->append(mql.parseLog()); if(mql.isValid()) { _log->_log->append(tr("Query parsed.")); _log->_log->append(tr("---- Executing Query ----")); ParameterList plist = _pEdit->getParameterList(); XSqlQuery qry = mql.toQuery(plist); _sql->_log->append(qry.executedQuery()); if(qry.isActive()) { QSqlRecord rec = qry.record(); int ncols = rec.count(); _results->_table->setColumnCount(ncols); int c; for(c = 0; c < ncols; c++) { _results->_table->setHorizontalHeaderItem(c, new QTableWidgetItem(rec.fieldName(c))); } int nrows = 0; while(qry.next()) { _results->_table->setRowCount(nrows + 1); for(c = 0; c < ncols; c++) { _results->_table->setItem(nrows, c, new QTableWidgetItem(qry.value(c).toString())); } nrows++; } showResults(); } else { _log->_log->append(tr("Failed to execute query.")); QSqlError err = qry.lastError(); _log->_log->append(err.text()); } } else { _log->_log->append(tr("ERROR: Invalid query!")); showLog(); } }