Beispiel #1
0
/*!
    Deletes the given \a row from the currently active database table.

    This is a low-level method that operates directly on the database
    and should not be called directly. Use removeRow() or removeRows()
    to delete values. The model will decide depending on its edit strategy
    when to modify the database.

    Returns true if the row was deleted; otherwise returns false.

    \sa removeRow(), removeRows()
*/
bool QSqlTableModel::deleteRowFromTable(int row)
{
    Q_D(QSqlTableModel);
    emit beforeDelete(row);

    const QSqlRecord whereValues = d->strategy == OnManualSubmit ? d->cache[row].primaryValues : d->primaryValues(row);
    bool prepStatement = d->db.driver()->hasFeature(QSqlDriver::PreparedQueries);
    QString stmt = d->db.driver()->sqlStatement(QSqlDriver::DeleteStatement,
                                                d->tableName,
                                                QSqlRecord(),
                                                prepStatement);
    QString where = d->db.driver()->sqlStatement(QSqlDriver::WhereStatement,
                                                 d->tableName,
                                                 whereValues,
                                                 prepStatement);

    if (stmt.isEmpty() || where.isEmpty()) {
        d->error = QSqlError(QLatin1String("Unable to delete row"), QString(),
                             QSqlError::StatementError);
        return false;
    }
    stmt.append(QLatin1Char(' ')).append(where);

    return d->exec(stmt, prepStatement, QSqlRecord() /* no new values */, whereValues);
}
QSqlRecord XSqlTableModelProto::record(int row) const
{
  XSqlTableModel *item = qscriptvalue_cast<XSqlTableModel*>(thisObject());
  if (item)
    return item->record(row);
  return QSqlRecord();
}
Beispiel #3
0
QSqlRecord QSqlDatabaseProto::record(const QString &tablename)       const
{
  QSqlDatabase *item = qscriptvalue_cast<QSqlDatabase*>(thisObject());
  if (item)
    return item->record(tablename);
  return QSqlRecord();
}
Beispiel #4
0
/*!
    Deletes the given \a row from the currently active database table.

    This is a low-level method that operates directly on the database
    and should not be called directly. Use removeRow() or removeRows()
    to delete values. The model will decide depending on its edit strategy
    when to modify the database.

    Returns true if the row was deleted; otherwise returns false.

    \sa removeRow(), removeRows()
*/
bool QSqlTableModel::deleteRowFromTable(int row)
{
    Q_D(QSqlTableModel);
    emit beforeDelete(row);

    QSqlRecord rec = d->primaryValues(row);
    bool prepStatement = d->db.driver()->hasFeature(QSqlDriver::PreparedQueries);
    QString stmt = d->db.driver()->sqlStatement(QSqlDriver::DeleteStatement,
                                                d->tableName,
                                                QSqlRecord(),
                                                prepStatement);
    QString where = d->db.driver()->sqlStatement(QSqlDriver::WhereStatement,
                                                 d->tableName,
                                                 rec,
                                                 prepStatement);

    if (stmt.isEmpty() || where.isEmpty()) {
        d->error = QSqlError(QLatin1String("Unable to delete row"), QString(),
                             QSqlError::StatementError);
        return false;
    }
    stmt.append(QLatin1Char(' ')).append(where);

    return d->exec(stmt, prepStatement, rec);
}
Beispiel #5
0
QSqlRecord XSqlQueryProto::record() const
{
  XSqlQuery *item = qscriptvalue_cast<XSqlQuery*>(thisObject());
  if (item)
    return item->record();
  return QSqlRecord();
}
void FormLibraryEditor::agrpAdd()
{
	if (modelAgeGroups->insertRecord(-1, QSqlRecord())) {
		ui->tableViewAgeGroups->update();
		ui->actionAgeGroupCommit->setEnabled(true);
	}
}
Beispiel #7
0
QSqlRecord SqliteDriver::record2(const QString &tblname) const
{
  if (!isOpen() || !dataBase_)
    return QSqlRecord();

  return recordInfo(tblname).toRecord();
}
QVariant EventColorQSqlQueryModel::data(const QModelIndex &index, int role) const
{
    QVariant value = QSqlQueryModel::data(index, role);

    if (role == Qt::BackgroundColorRole)
    {
        int level=	QSqlRecord (record(index.row())).value(4).toInt();
        switch(level)
        {
        case 1 : return qVariantFromValue(QColor(0xff,0xca,0x00));
        case 2 : return qVariantFromValue(QColor(Qt::red));
        case 3 : return qVariantFromValue(QColor(Qt::gray));
        case 4 : return qVariantFromValue(QColor(Qt::green));
        }
    }
    if(role==Qt::DisplayRole )
    {

        if (index.column() == 4)
        {
            switch(value.toInt())
            {
            case 0 : return qVariantFromValue(tr("Program"));
            case 1 : return qVariantFromValue(tr("Level I"));
            case 2 : return qVariantFromValue(tr("Level II"));
            case 3 : return qVariantFromValue(tr("Fault"));
            case 4 : return qVariantFromValue(tr("Correct"));
            }
        }

    }
    return value;
}
Beispiel #9
0
QSqlRecord GenericDAO::getRecord(const QSqlDatabase& db, const QString& where, const QVariantList& bindValues) const
{
    if (db.isOpen())
    {
        QSqlQuery query(db);
        query.setForwardOnly(true);
        QString sql = QString("SELECT * FROM %1 WHERE %2").arg(m_table).arg(where);
        query.prepare(sql);
        int n = bindValues.size();
        for (int i = 0; i < n; i++)
        {
            query.bindValue(i, bindValues[i]);
        }

        if (query.exec())
        {
            if (query.next())
            {
                return query.record();
            }
        }
        else
            DatabaseException(query).displayMessage();
    }

    return QSqlRecord();
}
Beispiel #10
0
QSqlRecord QSQLiteDriver::record(const QString &tblname) const
{
    if (!isOpen())
        return QSqlRecord();

    return recordInfo(tblname).toRecord();
}
QSqlRecord FormFirewallRules::getFirewallRulesetFromShortName(QString shortName)
{
    QSqlRecord result = QSqlRecord();
    QSqlQuery qry;
    QVariant sn(shortName);

    qry.prepare(" select id, name, shortname, rules "
                " from ruleset "
                " where shortname = :shortname");
    qry.bindValue(":shortname", sn);

    if (qry.exec())
    {
        if (qry.first())
        {
            result = qry.record();
        }
        else
        {
            qDebug("FormFirewallRules::getFirewallRulesetFromShortName Can't move to first row [%s]",
                   qry.lastError().text().toAscii().data());
        }

    }
    else
    {
        qDebug("FormFirewallRules::getFirewallRulesetFromShortName query failed [%s]",
               qry.lastError().text().toAscii().data());
    }

    return result;
}
/* ********************************************************************* */
QSqlRecord BarlowsDataMapper::currentRecord()
{ 
	if (lastRowNumberSelected == -1) {
		return QSqlRecord();
	} else {
		return tableModel->record(lastRowNumberSelected);
	}
}
Beispiel #13
0
QSqlRecord TargetsDialog::currentRecord()
{ 
	if (lastRowNumberSelected == -1) {
		return QSqlRecord();
	} else {
		return tableModel->record(lastRowNumberSelected);
	}
}
Beispiel #14
0
QSqlRecord QSQLiteDriver::record(const QSqlQuery& query) const
{
    if (query.isActive() && query.driver() == this) {
        QSQLiteResult* result = (QSQLiteResult*)query.result();
        return result->d->rInf.toRecord();
    }
    return QSqlRecord();
}
Beispiel #15
0
void FormLibraryEditor::teamAdd()
{
	int row = modelTeams->rowCount();
	modelTeams->insertRecord(-1, QSqlRecord());
	ui->tableViewTeams->setCurrentIndex(modelTeams->index(row, modelTeams->fieldIndex("label")));
	ui->actionTeamCommit->setEnabled(true);
	ui->actionDifficultyDelete->setDisabled(true);
}
/*!
    Resets the model and sets the data provider to be the given \a
    query. Note that the query must be active and must not be
    isForwardOnly().

    lastError() can be used to retrieve verbose information if there
    was an error setting the query.

    \sa query(), QSqlQuery::isActive(), QSqlQuery::setForwardOnly(), lastError()
*/
void QSqlQueryModel::setQuery(const QSqlQuery &query)
{
    Q_D(QSqlQueryModel);
    QSqlRecord newRec = query.record();
    bool columnsChanged = (newRec != d->rec);
    bool hasQuerySize = query.driver()->hasFeature(QSqlDriver::QuerySize);
    bool hasNewData = (newRec != QSqlRecord()) || !query.lastError().isValid();

    if (d->colOffsets.size() != newRec.count() || columnsChanged)
        d->initColOffsets(newRec.count());

    bool mustClearModel = d->bottom.isValid();
    if (mustClearModel) {
        d->atEnd = true;
        beginRemoveRows(QModelIndex(), 0, qMax(d->bottom.row(), 0));
        d->bottom = QModelIndex();
    }

    d->error = QSqlError();
    d->query = query;
    d->rec = newRec;

    if (mustClearModel)
        endRemoveRows();

    d->atEnd = false;

    if (columnsChanged && hasNewData)
        reset();

    if (!query.isActive() || query.isForwardOnly()) {
        d->atEnd = true;
        d->bottom = QModelIndex();
        if (query.isForwardOnly())
            d->error = QSqlError(QLatin1String("Forward-only queries "
                                               "cannot be used in a data model"),
                                 QString(), QSqlError::ConnectionError);
        else
            d->error = query.lastError();
        return;
    }
    QModelIndex newBottom;
    if (hasQuerySize && d->query.size() > 0) {
        newBottom = createIndex(d->query.size() - 1, d->rec.count() - 1);
        beginInsertRows(QModelIndex(), 0, qMax(0, newBottom.row()));
        d->bottom = createIndex(d->query.size() - 1, columnsChanged ? 0 : d->rec.count() - 1);
        d->atEnd = true;
        endInsertRows();
    } else {
        newBottom = createIndex(-1, d->rec.count() - 1);
    }
    d->bottom = newBottom;

    queryChange();

    // fetchMore does the rowsInserted stuff for incremental models
    fetchMore();
}
Beispiel #17
0
QSqlRecord LibraryModel::record(const QModelIndex &index)
{
    LibraryEntry * item = entryFromIndex(index);
    if(item->isDirNode()) {
        return QSqlRecord();
    } else {
        return item->record();
    }
}
Beispiel #18
0
QSqlRecord QSqlDatabaseProto::record(const QString &tablename)       const
{
  QSqlDatabase *item = qscriptvalue_cast<QSqlDatabase*>(thisObject());
  if (item)
    return item->record(tablename);
  else if (! thisObject().isNull())
    return thisObject().toVariant().value<QSqlDatabase>().record(tablename);
  return QSqlRecord();
}
Beispiel #19
0
QSqlRecord QSymSQLResult::record() const
{
    if (!isActive() || !isSelect())
        return QSqlRecord();
    
    QSqlRecord res;
    d->initColumns(res);
            
    return res;
}
Beispiel #20
0
void FormLibraryEditor::competitorAdd()
{
	int row = modelCompetitors->rowCount();

	modelCompetitors->insertRecord(-1, QSqlRecord());
	modelCompetitors->setData(modelCompetitors->index(row, modelCompetitors->fieldIndex("name")), ui->lineEditCompetitorName->text());
	modelCompetitors->setData(modelCompetitors->index(row, modelCompetitors->fieldIndex("dob")), ui->spinBoxYear->value());
	modelCompetitors->setData(modelCompetitors->index(row, modelCompetitors->fieldIndex("gender")), ui->comboBoxCompetitorGender->currentIndex()==0?tr("М"):tr("Ж"));
	modelCompetitors->setData(modelCompetitors->index(row, modelCompetitors->fieldIndex("range")), ui->comboBoxCompetitorRange->itemData(ui->comboBoxCompetitorRange->currentIndex()).toInt()+1);
	modelCompetitors->setData(modelCompetitors->index(row, modelCompetitors->fieldIndex("team")), ui->comboBoxCompetitorTeam->itemData(ui->comboBoxCompetitorTeam->currentIndex()).toInt()+1);
	ui->tableViewCompetitors->update();
}
Beispiel #21
0
void TargetsDialog::createTargetFromSelection()
{
	if (StelApp::getInstance().getStelObjectMgr().getWasSelected()) {
		QList<StelObjectP> selectedObjects = StelApp::getInstance().getStelObjectMgr().getSelectedObject();
		QListIterator<StelObjectP> objectIterator(selectedObjects);
		StelCore* core = StelApp::getInstance().getCore();
		while (objectIterator.hasNext()) {
			StelObjectP stelObject = objectIterator.next();
			QString type = stelObject->getType();
			QString englishName = stelObject->getEnglishName();
			if (englishName == "") {
				englishName = "No Name";
			}
			float magnatude = stelObject->getVMagnitude(core);
			double angularSize = stelObject->getAngularSize(core);
			
			Vec3d pos;
			double ra, dec;
			// ra/dec in J2000
			pos = stelObject->getJ2000EquatorialPos(core);
			StelUtils::rectToSphe(&ra, &dec, pos);
			
		    QSqlField field1("name", QVariant::String);
			QSqlField field2("right_ascension", QVariant::Double);
			QSqlField field3("declination", QVariant::Double);
			QSqlField field4("target_type_id", QVariant::Int);
			QSqlField field5("magnitude", QVariant::Double);
			QSqlField field6("size", QVariant::Double);
			field1.setValue(QVariant(englishName));
			field2.setValue(QVariant(ra));
			field3.setValue(QVariant(dec));
			field4.setValue(QVariant(1));
			field5.setValue(QVariant(magnatude));
			field6.setValue(QVariant(angularSize));
			QSqlRecord newRecord = QSqlRecord();
			newRecord.append(field1);
			newRecord.append(field2);
			newRecord.append(field3);
			newRecord.append(field4);
			newRecord.append(field5);
			newRecord.append(field6);
			
			if (tableModel->insertRecord(-1, newRecord)) {
				ui->targetsListView->setCurrentIndex(tableModel->index(tableModel->rowCount() - 1, 1));
			} else {
				qWarning() << "LogBook: could not insert new target.  The error is: " << tableModel->lastError();
			}
		}
	} else {
		qDebug() << "====> Nothing selected.";
	}
}	
Beispiel #22
0
QSqlRecord QSQLite2Driver::record(const QString &tbl) const
{
    if (!isOpen())
        return QSqlRecord();
    QString table = tbl;
    if (isIdentifierEscaped(tbl, QSqlDriver::TableName))
        table = stripDelimiters(table, QSqlDriver::TableName);

    QSqlQuery q(createResult());
    q.setForwardOnly(true);
    q.exec(QLatin1String("SELECT * FROM ") + tbl + QLatin1String(" LIMIT 1"));
    return q.record();
}
Beispiel #23
0
QSqlRecord QSpatiaLiteDriver::record(const QString &tbl) const
{
    if (!isOpen())
        return QSqlRecord();

    QString table = tbl;
    if (isIdentifierEscaped(table, QSqlDriver::TableName))
        table = stripDelimiters(table, QSqlDriver::TableName);

    QSqlQuery q(createResult());
    q.setForwardOnly(true);
    return qGetTableInfo(q, table);
}
Beispiel #24
0
QSqlRecord SQLiteDriver::record(const QString &tbl) const
{
    if (!isOpen())
        return QSqlRecord();

    QString table = tbl;
#if (QT_VERSION >= 0x040500)
    if (isIdentifierEscaped(table, QSqlDriver::TableName))
        table = stripDelimiters(table, QSqlDriver::TableName);
#endif

    QSqlQuery q(createResult());
    q.setForwardOnly(true);
    return qGetTableInfo(q, table);
}
/*!
    Deletes the given \a row from the currently active database table.

    This is a low-level method that operates directly on the database
    and should not be called directly. Use removeRow() or removeRows()
    to delete values. The model will decide depending on its edit strategy
    when to modify the database.

    Returns \c true if the row was deleted; otherwise returns \c false.

    \sa removeRow(), removeRows()
*/
bool QSqlTableModel::deleteRowFromTable(int row)
{
    Q_D(QSqlTableModel);
    emit beforeDelete(row);

    const QSqlRecord whereValues = primaryValues(row);
    const bool prepStatement = d->db.driver()->hasFeature(QSqlDriver::PreparedQueries);
    const QString stmt = d->db.driver()->sqlStatement(QSqlDriver::DeleteStatement,
                                                      d->tableName,
                                                      QSqlRecord(),
                                                      prepStatement);
    const QString where = d->db.driver()->sqlStatement(QSqlDriver::WhereStatement,
                                                       d->tableName,
                                                       whereValues,
                                                       prepStatement);

    if (stmt.isEmpty() || where.isEmpty()) {
        d->error = QSqlError(QLatin1String("Unable to delete row"), QString(),
                             QSqlError::StatementError);
        return false;
    }

    return d->exec(Sql::concat(stmt, where), prepStatement, QSqlRecord() /* no new values */, whereValues);
}
Beispiel #26
0
void FormLibraryEditor::userAdd()
{
	int row = modelUser->rowCount();
	if (modelUser->insertRecord(-1, QSqlRecord())) {
		ui->actionUserCommit->setEnabled(true);

		modelUser->setData(modelUser->index(row, modelUser->fieldIndex("login")), ui->lineEditUserLogin->text().simplified());
		modelUser->setData(modelUser->index(row, modelUser->fieldIndex("name")), ui->lineEditUserName->text());
		modelUser->setData(modelUser->index(row, modelUser->fieldIndex("pwdhash")), QCryptographicHash::hash(ui->lineEditUserPasswd->text().toLatin1(), QCryptographicHash::Md5).toHex());
		ui->tableViewUsers->update();

		ui->lineEditUserLogin->clear();
		ui->lineEditUserName->clear();
		ui->lineEditUserPasswd->clear();
		ui->pushButtonUserCommit->setDisabled(true);
	}
}
Beispiel #27
0
/*!
    Inserts the values \a values into the currently active database table.

    This is a low-level method that operates directly on the database
    and should not be called directly. Use insertRow() and setData()
    to insert values. The model will decide depending on its edit strategy
    when to modify the database.

    Returns true if the values could be inserted, otherwise false.
    Error information can be retrieved with \l lastError().

    \sa lastError(), insertRow(), insertRows()
*/
bool QSqlTableModel::insertRowIntoTable(const QSqlRecord &values)
{
    Q_D(QSqlTableModel);
    QSqlRecord rec = values;
    emit beforeInsert(rec);

    bool prepStatement = d->db.driver()->hasFeature(QSqlDriver::PreparedQueries);
    QString stmt = d->db.driver()->sqlStatement(QSqlDriver::InsertStatement, d->tableName,
                                                rec, prepStatement);

    if (stmt.isEmpty()) {
        d->error = QSqlError(QLatin1String("No Fields to update"), QString(),
                                 QSqlError::StatementError);
        return false;
    }

    return d->exec(stmt, prepStatement, rec, QSqlRecord() /* no where values */);
}
Beispiel #28
0
MOrdenTrabajo::MOrdenTrabajo( QObject *parent ) :
    QSqlRelationalTableModel( parent )
{
    setTable( "orden_trabajo" );
    setHeaderData( 0, Qt::Horizontal, "#ID" );
    setHeaderData( 1, Qt::Horizontal, "#Cliente" );
    setHeaderData( 2, Qt::Horizontal, "Fecha de Ingreso" );
    setHeaderData( 3, Qt::Horizontal, "Requerente" );
    setHeaderData( 4, Qt::Horizontal, "Ingresante" );
    setHeaderData( 5, Qt::Horizontal, "Fecha de Vencimiento" );
    setHeaderData( 6, Qt::Horizontal, "Fecha de Devolucion" );
    setHeaderData( 7, Qt::Horizontal, "#Equipamiento" );
    setHeaderData( 8, Qt::Horizontal, "#Factura" );
    setHeaderData( 9, Qt::Horizontal, "#Tecnico" );
    setHeaderData( 10, Qt::Horizontal, "Causa de Ingreso" );
    _id_orden_trabajo = -1;
    _data = QSqlRecord();
}
Beispiel #29
0
	QSqlRecord findOne(QString table, QSqlRecord values, QSqlRecord where) {

		QSqlDriver *driver = QSqlDatabase::database().driver();

		QString where_statement = driver->sqlStatement(QSqlDriver::WhereStatement, table, where, false);
		QString select_statement = driver->sqlStatement(QSqlDriver::SelectStatement, table, values, false);

		QSqlQuery query(QString("%1 %2").arg(select_statement, where_statement));

		qDebug() << "Query:" << query.lastQuery();

		if (query.lastError().isValid())
			throw new SqlQueryError(query);

		if (query.next())
			return query.record();
		else
			return QSqlRecord();
	}
Beispiel #30
0
QSqlRecord ConnectDialog::toRecord() const {
	QSqlRecord r = qstmServers->record();

	QString name = qleName->text();
	QString host = qleServer->text();
	QString user = qleUsername->text();
	QString pw = qlePassword->text();
	int port = qlePort->text().toInt();

	if (name.isEmpty() || host.isEmpty() || user.isEmpty() || (port == 0)) {
		return QSqlRecord();
	}
	r.setValue(QLatin1String("name"), name);
	r.setValue(QLatin1String("hostname"), host);
	r.setValue(QLatin1String("port"), port);
	r.setValue(QLatin1String("username"), user);
	r.setValue(QLatin1String("password"), pw);
	return r;
}