Example #1
0
void RenderWindow::fileLoad()
{
  DBFileDialog rptDiag;
  rptDiag.setWindowTitle(tr("Load Report from Database"));
  rptDiag._name->setReadOnly(true);
  rptDiag._grade->setEnabled(false);
  if(rptDiag.exec() == QDialog::Accepted)
    fileLoad(rptDiag.getName());
}
Example #2
0
bool ReportWindow::saveToDb() {
    // do what we need to do
    DBFileDialog rptDiag;
    rptDiag.setCaption(tr("Save Report to Database"));
    if(!dbRecordName.isEmpty()) {
        rptDiag._name->setText(dbRecordName);
    } else {
        rptDiag._name->setText(reportName());
    }
    rptDiag._grade->setValue(dbRecordGrade);
    if(rptDiag.exec() == QDialog::Accepted) {
        QString name = rptDiag.getName();
        QString desc = reportDescription();
        QString src  = document().toString();
        int grade = rptDiag.getGrade();

        XSqlQuery q;
        XSqlQuery qry;

        q.prepare("SELECT report_id "
                  "  FROM report "
                  " WHERE ((report_name=:report_name) "
                  "   AND (report_grade=:report_grade)); ");
        q.bindValue(":report_name", name);
        q.bindValue(":report_grade", grade);
        q.exec();
        if(q.first()) {
            // update old record
            qry.prepare("UPDATE report "
                        "   SET report_source=:report_source, "
                        "       report_descrip=:report_descrip "
                        " WHERE (report_id=:report_id);");
            qry.bindValue(":report_source", src);
            qry.bindValue(":report_descrip", desc);
            qry.bindValue(":report_id", q.value("report_id").toInt());
        } else {
            // insert new record
            qry.prepare("INSERT INTO report "
                        "       (report_name, report_source, report_descrip, report_grade) "
                        "VALUES (:report_name, :report_source, :report_descrip, :report_grade);");
            qry.bindValue(":report_name", name);
            qry.bindValue(":report_source", src);
            qry.bindValue(":report_descrip", desc);
            qry.bindValue(":report_grade", grade);
        }

        if(qry.exec()) {
            lastSaveToDb = TRUE;
            setModified(FALSE);
            dbRecordName = name;
            dbRecordGrade = grade;
            if(_handler)
            {
              q.exec();
              if(q.first())
                _handler->sReportsChanged(q.value("report_id").toInt(), true);
              else
                _handler->sReportsChanged(-1, true);
            }
            return TRUE;
        } else {
            // no good lets tell the user
	          QSqlError sqlErr = qry.lastError();   
            QMessageBox::critical(this,tr("Error saving to database"),sqlErr.databaseText());
        }
    }
    return FALSE;   
}