本文整理汇总了C++中XSqlQuery::record方法的典型用法代码示例。如果您正苦于以下问题:C++ XSqlQuery::record方法的具体用法?C++ XSqlQuery::record怎么用?C++ XSqlQuery::record使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XSqlQuery
的用法示例。
在下文中一共展示了XSqlQuery::record方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateHTML
QString ExportHelper::generateHTML(QString qtext, ParameterList ¶ms, QString &errmsg)
{
if (DEBUG)
qDebug("ExportHelper::generateHTML(%s..., %d params, errmsg) entered",
qPrintable(qtext.left(80)), params.size());
if (qtext.isEmpty())
return QString::null;
QTextDocument doc(0);
QTextCursor cursor(&doc);
QTextTableFormat tablefmt;
bool valid;
QVariant includeheaderVar = params.value("includeHeaderLine", &valid);
bool includeheader = (valid ? includeheaderVar.toBool() : false);
if (DEBUG)
qDebug("generateHTML(qtest, params, errmsg) includeheader = %d, valid = %d",
includeheader, valid);
MetaSQLQuery mql(qtext);
XSqlQuery qry = mql.toQuery(params);
if (qry.first())
{
int cols = qry.record().count();
int expected = qry.size();
if (includeheader)
expected++;
// presize the table
cursor.insertTable((expected < 0 ? 1 : expected), cols, tablefmt);
if (includeheader)
{
tablefmt.setHeaderRowCount(1);
for (int p = 0; p < cols; p++)
{
cursor.insertText(qry.record().fieldName(p));
cursor.movePosition(QTextCursor::NextCell);
}
}
do {
for (int i = 0; i < cols; i++)
{
cursor.insertText(qry.value(i).toString());
cursor.movePosition(QTextCursor::NextCell);
}
} while (qry.next());
}
if (qry.lastError().type() != QSqlError::NoError)
errmsg = qry.lastError().text();
return doc.toHtml();
}
示例2: generateXML
QString ExportHelper::generateXML(QString qtext, QString tableElemName, ParameterList ¶ms, QString &errmsg, int xsltmapid)
{
if (DEBUG)
qDebug("ExportHelper::generateXML(%s..., %s, %d params, errmsg, %d) entered",
qPrintable(qtext.left(80)), qPrintable(tableElemName),
params.size(), xsltmapid);
if (DEBUG)
{
QStringList plist;
for (int i = 0; i < params.size(); i++)
plist.append("\t" + params.name(i) + ":\t" + params.value(i).toString());
qDebug("generateXML parameters:\n%s", qPrintable(plist.join("\n")));
}
QDomDocument xmldoc("xtupleimport");
QDomElement rootelem = xmldoc.createElement("xtupleimport");
xmldoc.appendChild(rootelem);
if (! qtext.isEmpty())
{
MetaSQLQuery mql(qtext);
XSqlQuery qry = mql.toQuery(params);
if (qry.first())
{
do {
QDomElement tableElem = xmldoc.createElement(tableElemName);
if (DEBUG)
qDebug("generateXML starting %s", qPrintable(tableElemName));
for (int i = 0; i < qry.record().count(); i++)
{
QDomElement fieldElem = xmldoc.createElement(qry.record().fieldName(i));
if (qry.record().value(i).isNull())
fieldElem.appendChild(xmldoc.createTextNode("[NULL]"));
else
fieldElem.appendChild(xmldoc.createTextNode(qry.record().value(i).toString()));
tableElem.appendChild(fieldElem);
}
rootelem.appendChild(tableElem);
} while (qry.next());
}
if (qry.lastError().type() != QSqlError::NoError)
errmsg = qry.lastError().text();
}
if (xsltmapid < 0)
return xmldoc.toString();
else
return XSLTConvertString(xmldoc.toString(), xsltmapid, errmsg);
}
示例3: record
QSqlRecord XSqlQueryProto::record() const
{
XSqlQuery *item = qscriptvalue_cast<XSqlQuery*>(thisObject());
if (item)
return item->record();
return QSqlRecord();
}
示例4: execQuery
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();
}
}
示例5: generateDelimited
QString ExportHelper::generateDelimited(QString qtext, ParameterList ¶ms, QString &errmsg)
{
if (DEBUG)
qDebug("ExportHelper::generateDelimited(%s..., %d params, errmsg) entered",
qPrintable(qtext.left(80)), params.size());
if (qtext.isEmpty())
return QString::null;
if (DEBUG)
{
QStringList plist;
for (int i = 0; i < params.size(); i++)
plist.append("\t" + params.name(i) + ":\t" + params.value(i).toString());
qDebug("generateDelimited parameters:\n%s", qPrintable(plist.join("\n")));
}
bool valid;
QString delim = params.value("delim", &valid).toString();
if (! valid)
delim = ",";
if (DEBUG)
qDebug("generateDelimited(qtest, params, errmsg) delim = %s, valid = %d",
qPrintable(delim), valid);
QVariant includeheaderVar = params.value("includeHeaderLine", &valid);
bool includeheader = (valid ? includeheaderVar.toBool() : false);
if (DEBUG)
qDebug("generateDelimited(qtest, params, errmsg) includeheader = %d, valid = %d",
includeheader, valid);
QStringList line;
MetaSQLQuery mql(qtext);
XSqlQuery qry = mql.toQuery(params);
if (qry.first())
{
QStringList field;
int cols = qry.record().count();
if (includeheader)
{
for (int p = 0; p < cols; p++)
field.append(qry.record().fieldName(p));
line.append(field.join(delim));
}
QString tmp;
do {
field.clear();
for (int p = 0; p < cols; p++)
{
tmp = qry.value(p).toString();
if (tmp.contains(delim))
{
tmp.replace("\"", "\"\"");
tmp = "\"" + tmp + "\"";
}
field.append(tmp);
}
line.append(field.join(delim));
} while (qry.next());
}
if (qry.lastError().type() != QSqlError::NoError)
errmsg = qry.lastError().text();
return line.join("\n");
}