bool PatientAccounter::addTreatments(QString& Document)
{
	bool treated = false;

	 double sum = 0;

	//Iterate over all Treatments
	for (int i = 0; i < m_treats.rowCount(); i++)
	{
		QSqlRecord treatment = m_treats.record(i);

		if (treatment.value(Accounted).toInt() == 1 ||
				treatment.value(Accounted).toInt() == 2)
		{
			continue;
		}

		treatment.setValue(QString("accounted"), 2);
		m_treats.setRecord(i, treatment);
		treated = true;

		if (!m_treats.submit())
		{
			std::cerr << "Failed to update Treatment! \n";
		}

		Document.append(addTreatmentRow(treatment, sum));
	}

	//Create the Final Sum Row
	QString sumString;
	sumString.setNum(sum, 'f', 2);
	Document.append("{\\b Endsumme:  ");
	Document.append(sumString + " Euro \\qr \\par} \\par");
	return treated;
}
Example #2
0
void RoomSetting::on_roomAdd_clicked()
{
    if(1 == model_build->rowCount()){
        ToolUtil::ShowMessageBoxError("请先设置楼栋,如果只有一栋楼,请设置名称",this);
        return;
    }
    int curRow=ui->table1->currentIndex().row();
    if(-1 == curRow || 0 == curRow){
        ToolUtil::ShowMessageBoxError("请先选中要添加到的楼栋",this);
        return;
    }
    QString buil_no = model_build->record(curRow).field("build_no").value().toString();
    QString room_no = ToolUtil::ShowInputDlg("请输入房间名称",this).trimmed();

    if(room_no.length() > 10 || room_no.length() <= 0){
        ToolUtil::ShowMessageBoxError("您输入的名称不符要求",this);
        return;
    }
    QSqlRecord record = model_room->record();
    record.setValue("build_no",buil_no);
    record.setValue("room_no",room_no);
    model_room->insertRecord(0,record);
    model_room->submit();
}
Example #3
0
void SetlogFeature::buildPlaylistList() {
    m_playlistList.clear();
    // Setup the sidebar playlist model
    QSqlTableModel playlistTableModel(this, m_pTrackCollection->getDatabase());
    playlistTableModel.setTable("Playlists");
    playlistTableModel.setFilter("hidden=2"); // PLHT_SET_LOG
    playlistTableModel.setSort(playlistTableModel.fieldIndex("id"),
                               Qt::AscendingOrder);
    playlistTableModel.select();
    while (playlistTableModel.canFetchMore()) {
        playlistTableModel.fetchMore();
    }
    QSqlRecord record = playlistTableModel.record();
    int nameColumn = record.indexOf("name");
    int idColumn = record.indexOf("id");

    for (int row = 0; row < playlistTableModel.rowCount(); ++row) {
        int id = playlistTableModel.data(
            playlistTableModel.index(row, idColumn)).toInt();
        QString name = playlistTableModel.data(
            playlistTableModel.index(row, nameColumn)).toString();
        m_playlistList.append(qMakePair(id, name));
    }
}
Example #4
0
ActivityWizard::ActivityWizard(QSqlRecord &record, QWidget *parent)
    : QWizard(parent), mRecord(record) {
    auto firstPage = new ActivityWizardNameAndTypePage(this);
    firstPage->setActivityId(record.value("ID").toULongLong());
    setPage(0, firstPage);
    setPage(1, new ActivityWizardFixedDatePage(this));
    setPage(2, new ActivityWizardRepetitiveDatesPage(this));
    setPage(3, new ActivityWizardListsSelectionPage(this));
    setPage(4, new ActivityWizardRoomsSelectionPage(this));
    setMinimumSize(640, 480);
    button(QWizard::BackButton)->setText(tr("Back"));
    button(QWizard::NextButton)->setText(tr("Next"));
    button(QWizard::CancelButton)->setText(tr("Cancel"));
    button(QWizard::FinishButton)->setText(tr("Finish"));
}
Example #5
0
void Browser::showMetaData(const QString &t)
{
    QSqlRecord rec = connectionWidget->currentDatabase().record(t);
    QStandardItemModel *model = new QStandardItemModel(table);

    model->insertRows(0, rec.count());
    model->insertColumns(0, 7);

    model->setHeaderData(0, Qt::Horizontal, "Fieldname");
    model->setHeaderData(1, Qt::Horizontal, "Type");
    model->setHeaderData(2, Qt::Horizontal, "Length");
    model->setHeaderData(3, Qt::Horizontal, "Precision");
    model->setHeaderData(4, Qt::Horizontal, "Required");
    model->setHeaderData(5, Qt::Horizontal, "AutoValue");
    model->setHeaderData(6, Qt::Horizontal, "DefaultValue");


    for (int i = 0; i < rec.count(); ++i) {
        QSqlField fld = rec.field(i);
        model->setData(model->index(i, 0), fld.name());
        model->setData(model->index(i, 1), fld.typeID() == -1
                ? QString(QVariant::typeToName(fld.type()))
                : QString("%1 (%2)").arg(QVariant::typeToName(fld.type())).arg(fld.typeID()));
        model->setData(model->index(i, 2), fld.length());
        model->setData(model->index(i, 3), fld.precision());
        model->setData(model->index(i, 4), fld.requiredStatus() == -1 ? QVariant("?")
                : QVariant(bool(fld.requiredStatus())));
        model->setData(model->index(i, 5), fld.isAutoValue());
        model->setData(model->index(i, 6), fld.defaultValue());
    }

    table->setModel(model);
    table->setEditTriggers(QAbstractItemView::NoEditTriggers);

    updateActions();
}
Example #6
0
void MaterialSaverDB::fillMaterialBuffer( QSqlRecord &rec, StockMaterial *mat, bool isNew )
{
  if( ! ( mat ) ) return;
  rec.setValue( "chapterID", mat->chapter() );
  rec.setValue( "material", mat->name() );
  rec.setValue( "unitID", mat->getUnit().id() );
  rec.setValue( "perPack", mat->getAmountPerPack() );
  rec.setValue( "priceIn", mat->purchPrice().toDouble() );
  rec.setValue( "priceOut", mat->salesPrice().toDouble() );

  QString dtString = KraftDB::self()->currentTimeStamp();

  if( isNew ) {
    rec.setValue( "enterDate", dtString);
  }
  rec.setValue("modifyDate", dtString );
}
Example #7
0
bool InternalModule::createPcs(QSqlQuery& db) {
    QString query = QString("Select * from projectedcsy");
    if ( db.exec(query)) {
        std::vector<Resource> items;
        while (db.next()) {
            QSqlRecord rec = db.record();
            QString code = rec.value("code").toString();
            QString name = rec.value("name").toString();
            QString url = QString("ilwis://tables/projectedcsy?code=%1").arg(code);
            Resource resource(url, itCONVENTIONALCOORDSYSTEM);
            resource.code(code);
            resource.name(name, false);
            resource["wkt"] = name;
            resource.addContainer(QUrl("ilwis://system"));
            items.push_back(resource);
        }
        bool ok = mastercatalog()->addItems(items);
        return ok;

    } else {
        kernel()->issues()->logSql(db.lastError());
    }
    return false;
}
Example #8
0
void RoomSetting::on_buildMod_clicked()
{
    int row = ui->table1->currentIndex().row();
    if(-1 == row){
        ToolUtil::ShowMessageBoxInfo("请先选中需要修改的项",this);
        return;
    }
    QString build_no = ToolUtil::ShowInputDlg("请输入楼栋名称",this).trimmed();
    if(NULL == build_no){
        return;
    }
    if(build_no.length() > 10 || build_no.length() <= 0){
        ToolUtil::ShowMessageBoxError("您输入的名称不符要求",this);
        return;
    }
    if(model_room->rowCount() > 0){
        if(ToolUtil::ShowMessageBoxQuesion("修改楼栋名称将会修改到房间信息?",this)){
            for(int i=model_room->rowCount(); i >= 0; i--){
                QSqlRecord room_record = model_room->record(i);
                room_record.setValue("build_no",build_no);
                model_room->setRecord(i,room_record);
            }
            model_room->submitAll();

            QSqlRecord record = model_build->record(row);
            record.setValue("build_no",build_no);
            model_build->setRecord(row,record);
            model_build->submit();
        }
    }else{
        QSqlRecord record = model_build->record(row);
        record.setValue("build_no",build_no);
        model_build->setRecord(row,record);
        model_build->submit();
    }
}
QVariantList Query::results()
{
	QVariantList results;

	QSqlRecord r = query.record();

	while(query.next())
	{

		QVariantMap prop;
		///iterate on the properties:
		for(int i=0; i< r.count(); i++)
		{
			QString name = r.fieldName(i);

			QVariant val = query.value(i);
				prop[name] = val;
		}

		results << prop;
	}

	return results;
}
Example #10
0
QSqlRecord QTDSDriver::record(const QString& tablename) const
{
    QSqlRecord info;
    if (!isOpen())
        return info;
    QSqlQuery t(createResult());
    t.setForwardOnly(true);

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

    QString stmt (QLatin1String("select name, type, length, prec from syscolumns "
                   "where id = (select id from sysobjects where name = '%1')"));
    t.exec(stmt.arg(table));
    while (t.next()) {
        QSqlField f(t.value(0).toString().simplified(), qDecodeTDSType(t.value(1).toInt()));
        f.setLength(t.value(2).toInt());
        f.setPrecision(t.value(3).toInt());
        f.setSqlType(t.value(1).toInt());
        info.append(f);
    }
    return info;
}
Example #11
0
void QxSqlQuery::fetchSqlResult(QSqlQuery & query)
{
   bool bCheckRecord = true;
   m_pSqlResult.reset(new QxSqlResult());
   if (query.size() > 0) { m_pSqlResult->values.reserve(query.size()); }
   while (query.next())
   {
      if (bCheckRecord)
      {
         bCheckRecord = false;
         QSqlRecord record = query.record();
         m_pSqlResult->positionByKey.reserve(record.count());
         for (int i = 0; i < record.count(); i++)
         { m_pSqlResult->positionByKey.insert(record.fieldName(i), i); }
         qAssert(record.count() == m_pSqlResult->positionByKey.count());
      }
      QVector<QVariant> lst;
      lst.reserve(m_pSqlResult->positionByKey.count());
      for (long j = 0; j < m_pSqlResult->positionByKey.count(); j++)
      { lst.append(query.value(j)); }
      qAssert(lst.count() == m_pSqlResult->positionByKey.count());
      m_pSqlResult->values.append(lst);
   }
}
Example #12
0
void Settings::on_ownerOKButton_clicked()
{
	int ind = 0;
	if(ui->ownerOKButton->text() == "Добавить")
		ownerModel->insertRow(ind);
	else
		ind = ui->ownerView->currentIndex().row();

	QSqlRecord rec = ownerModel->record();
	ownerModel->setData(ownerModel->index(ind, rec.indexOf("name")),\
		ui->ownerName->text());
	ownerModel->setData(ownerModel->index(ind, rec.indexOf("owner")),\
		ui->ownerID->text());
	if (!ownerModel->submitAll()) {
		qDebug() << "Insertion error!";
	}
	ui->frame->hide();

	QModelIndex index= ui->ownerView->currentIndex();
	ownerModel->select();
	ui->ownerView->setCurrentIndex(index);
	ui->ownerID->clear();
	ui->ownerName->clear();
}
Example #13
0
QString CacheDatabase::getField(const QString &what, const QString &where, const QString &value)
{
    // If same return
    if(what == where)
        return QString::null;
    // Create model
    QSqlTableModel* model = new QSqlTableModel;
    // Set table
    model->setTable(CacheTableName);
    // Edit stategy
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    // Set filter
    model->setFilter(QString("%1='%2'").arg(where, value));
    // Run selection
    model->select();
    // Get record
    QSqlRecord record = model->record(0);
    // If not empty
    if(!record.isEmpty())
        // Get value
        return record.value(record.indexOf(what)).toString();
    // Return result
    return QString::null;
}
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    dbpath = "technologybasic.db";
    ui->setupUi(this);
    ui->textBrowser->setFont(QFont("SolaimanLipi",12,300,false));
    if(!QFile(dbpath).exists())
    {
        QMessageBox::warning(this, "Error", "Database not found","Select file");
        dbpath = QFileDialog::getOpenFileName(this, "Select Data Base File", QDir::homePath(), "SQLite Database (*.db)");
    }
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName(dbpath);
    db.open();
    QSqlQuery query("SELECT `name`, `details` from `terms`");
    QSqlRecord record = query.record();
    while (query.next())
    {
        Title << query.value(record.indexOf("name")).toString();
        Text << query.value(record.indexOf("details")).toString();
    }

    QButtonGroup *buttons = new QButtonGroup;

    for(int i=0;i<Title.size();i++)
    {
        ui->listWidget->addItem(Title.at(i));
        QPushButton *button = new QPushButton(Title.at(i));
        button->setStyleSheet("QPushButton { background-color: green; border-style: inset; border-width: 1px; border-radius: 10px; border-color: white; font: bold 14px; color: white; }");
        ui->gridScrollArea->addWidget(button);
        buttons->addButton(button);
    }

    QObject::connect(buttons, SIGNAL(buttonClicked(int)), this, SLOT(buttonClick(int)));
}
Example #15
0
/*! Устанавливает запрос, подключается к базе данных, получает данные
	и создает древовидную структуру. */
void QstTreeQueryModel::setQuery(const QString& query, const QSqlDatabase &db)
{
	_query = QSqlQuery(query, db);

	_lastError = _query.lastError();

	Q_ASSERT(_query.isActive());

	QSqlRecord record = _query.record();
	QList<QVariant> rootHeader;
	int fieldsCount = record.count();


	// Вписываем в шапку все поля.
	for (int i = 0; i < fieldsCount; ++i)
		rootHeader << record.fieldName(i);

	// Если было дерево, удаляем. Создаем новое дерево.
	if (_root) delete _root;
		_root = new QstTreeItem(rootHeader);
	Q_CHECK_PTR(_root);

	_createTree();
}
Example #16
0
QList<PersistentObject *> * DatabaseManager::readDB(){
    bool ret = false;
    QSqlQuery qry;
    QList<PersistentObject *> * res = new QList<PersistentObject *>();

    ret = qry.exec(QString("SELECT * FROM " + totTable.at(tableRead++)));
    if(tableRead == nombreTable)
        tableRead = 0; //remise a zero

    if( !ret )
      qDebug() << qry.lastError();
    else
    {
      qDebug() << "Selected!";

      QSqlRecord rec = qry.record();

      int cols = rec.count();

      QStringList headers;
      headers << "Author" << "Title" << "ISBN" << "Year";

      for( int r=0; qry.next(); r++ ){
        PersistentObject * dbObjet = new PersistentObject(totTable.at(0),0);
        for( int c=0; c<cols; c++ ){
            //qDebug() << QString( "Row %1 : %2" ).arg( r ).arg( qry.value(c).toString() );
            //qDebug() <<  qry.value(c).toString();
            dbObjet->addAttribute(headers.at(c),qry.value(c));

        }
        //dbObjet->testFunction();
        res->append(dbObjet);
      }
    }
    return res;
}
int CKnowledgeDB::getTestor(int featureId)
{
    QSqlQuery query;
    int tes;
    QSqlRecord record;

    query.prepare("SELECT isTestor FROM feature WHERE id = ?;");
    query.addBindValue(featureId);

    if (!query.exec()) {
        qDebug() << QString("Failed to obtain the object in DB : ") + m_dataBaseName << "\n"
                 << m_dataBase.lastError().text();
        return -1;
    }

    record = query.record();

    while (query.next()) {

        tes = query.value(record.indexOf("isTestor")).toInt();
    }

    return tes;
}
Example #18
0
void MainForm::deleteDepartment()
{
    QModelIndex index = departmentView->currentIndex();
    if (!index.isValid())
        return;

    QSqlDatabase::database().transaction();
    QSqlRecord record = departmentModel->record(index.row());
    int id = record.value(Department_Id).toInt();
    int numEmployees = 0;

    QSqlQuery query(QString("SELECT COUNT(*) FROM employee "
                            "WHERE departmentid = %1").arg(id));
    if (query.next())
        numEmployees = query.value(0).toInt();
    if (numEmployees > 0) {
        int r = QMessageBox::warning(this, tr("Delete Department"),
                    tr("Delete %1 and all its employees?")
                    .arg(record.value(Department_Name).toString()),
                    QMessageBox::Yes | QMessageBox::No);
        if (r == QMessageBox::No) {
            QSqlDatabase::database().rollback();
            return;
        }

        query.exec(QString("DELETE FROM employee "
                           "WHERE departmentid = %1").arg(id));
    }

    departmentModel->removeRow(index.row());
    departmentModel->submitAll();
    QSqlDatabase::database().commit();

    updateEmployeeView();
    departmentView->setFocus();
}
/*
 *函数功能:实时显示当前表格中客户的信息到控件上
*/
void CostomerRegisterInfoDialog::showCustomerInfo()
{
    QSqlQueryModel userMode(ui->tableView);
    QString sql = "SELECT *FROM customer;";
    qDebug() <<sql;
    userMode.setQuery(QString(sql));
    int Row = ui->tableView->currentIndex().row();
    QSqlRecord record = userMode.record(Row);
    ui->CustomerNo->setText(record.value(0).toString());
    ui->CustomerName->setText(record.value(1).toString());
    ui->ledSex->setText(record.value(2).toString());
    ui->CustomerRePwd->setText(record.value(3).toString());
    ui->CustomerPhone->setText(record.value(4).toString());
    ui->CustomerAddress->setText(record.value(5).toString());
    ui->ledCustomDate->setText(record.value(6).toString());
    ui->CustomerRemark->setText(record.value(7).toString());
}
Example #20
0
int DaysModel::calculateHoursFromUncompletedRecord() const
{
    int res = 0;
    QSqlRelationalTableModel& model = (QSqlRelationalTableModel&)_base;
    int count = model.rowCount();
    for (int i = count-1; i >=0 ; i--)
    {
        QSqlRecord record =  model.record(i);
        QDateTime dt(QDate::currentDate());
        if (record.value("day") == dt.toUTC().toTime_t())
        {
            QString val = record.value("end").toString();
            if(val == "0")
            {
                uint start = record.value("start").toUInt();
                uint end = QDateTime::currentDateTimeUtc().toTime_t();
                res = end - start;
                break;
            }
        }
    }

    return res;
}
Example #21
0
void SQLSyntaxHighligter::highlightBlock(const QString &text)
{
    highlightBlockHelper(text, m_keyword_list, m_sql_keyword_format);
    highlightBlockHelper(text, m_function_list, m_sql_function_format);

    foreach(QString command, m_commant_list) {
        if(text.startsWith(command, Qt::CaseInsensitive))
            setFormat(0, command.length(), m_sql_command_format);
    }

    if (m_database) {
        QStringList tables = m_database->tables(QSql::AllTables);
        QStringList foundTables = highlightBlockHelper(text, tables, m_sql_table_format);

        if (!m_table.isEmpty())
            foundTables << m_table;

        QStringList columns;
        foreach(QString oneTable, foundTables) {
            QSqlRecord record = m_database->record(oneTable);
            for (int i = 0; i < record.count(); ++i) {
                columns << record.fieldName(i);
            }
        }

        highlightBlockHelper(text, columns, m_sql_column_format);

        { // highlight quote
            QRegExp quoted("\"[^\"]*\"");
            int pos = -1;
            while ((pos = text.indexOf(quoted, pos+1)) >= 0) {
                setFormat(pos, quoted.matchedLength(), m_sql_quoted_format);
                pos += quoted.matchedLength();
            }
        }
    }
Example #22
0
void DTScheduleWidget::slotAddReception(const QString &patientID, const QDateTime &receptionStart, const QDateTime &receptionEnd)
{
    qDebug() << "DTScheduleWidget::slotAddReception"
             << "patientID" << patientID
             << "receptionStart" << receptionStart
             << "receptionEnd" << receptionEnd;

    QSqlRecord rec = mScheduleData->record();
    gDataModule.fillInfoFields(rec);
    gDataModule.fillPkIDField(rec,"RECEPTION_ID");

    rec.setValue("PATIENT_ID",patientID);
    rec.setValue("RECEPTION_EMPLOYER_ID",mDoctorID);
    rec.setValue("RECEPTION_START", receptionStart);
    rec.setValue("RECEPTION_STOP",receptionEnd);

    if (mScheduleData->insertRecord(mScheduleData->rowCount(), rec))
    {
        qDebug() << "DTScheduleWidget::slotAddReception record" << rec;
//        if(!mScheduleData->submitAll())
//            qDebug() << mScheduleData->lastError().databaseText() << mScheduleData->lastError().driverText();
    }

}
Example #23
0
int CronSqlDriver::displayResult (QSqlQuery dbQuery){
    QSqlRecord dbRecord;
    int cols,i;
    dbRecord = dbQuery.record ();
    cols = dbRecord.count ();
    for(i = 0; i< cols; i++){
        qDebug()<< dbRecord.fieldName (i) << "\t";
    }
    QString temp = "";
    while( dbQuery.next () ){
        QString temp = "";
      for( i=0; i< cols ; i++)
          temp  += dbQuery.value(i).toString() +"\t";
      qDebug()<< temp<<endl;
    }

    MainWindow::tabWidget.setCurrentIndex (2);
//    MainWindow::tableView



    qDebug()<< cols;
    return cols;
}
Example #24
0
QStringList Sqlite::getFile(QString filepath) {
    QStringList output;
    QSqlQuery result;
    QSqlRecord rec;

    result = db.exec("SELECT * FROM files WHERE filepath='"+filepath+"'");

    rec = result.record();

    int filepathCol = rec.indexOf("filepath");
    int remote_last_timeCol = rec.indexOf("remote_last_time");
    int local_last_timehCol = rec.indexOf("local_last_time");
    int i = 0;
    while(result.next()) {
        if(i == 0) {
            output<<result.value(filepathCol).toString();
            output<<result.value(remote_last_timeCol).toString();
            output<<result.value(remote_last_timeCol).toString();
        }
        i++;
    }
    //qDebug()<<"sqlite find"<<output;
    return output;
}
Example #25
0
void MainWindow::showCarDetails(QModelIndex index)
{
    QSqlRecord record = carModel->record(index.row());

    QString factory = record.value("manufactory").toString();
    QString name = record.value("name").toString();
    QString year = record.value("year").toString();
    QString carId = record.value("carid").toString();

    showFactorytProfile(indexOfFactory(factory));
    titleLabel->setText(tr("品牌: %1 (%2)").arg(name).arg(year));
    titleLabel->show();

    QDomNodeList cars = carData.elementsByTagName("car");
    for (int i = 0; i < cars.count(); i++) {
        QDomNode car = cars.item(i);
        if (car.toElement().attribute("id") == carId) {
            getAttribList(car.toElement());
            break;
        }
    }
    if (!attribList->count() == 0)
        attribList->show();
}
Example #26
0
void Gconsignaciones::showasignarDetails(QModelIndex index)
{
    ui->dasignarw->setCurrentIndex(1);
    QSqlRecord record = model->record(index.row());

    QString Id_asig = record.value("Id_asig").toString();
    QString fecha = record.value("fecha").toString();
    QString total = record.value("total").toString();
    QString consignatario = record.value("nombre").toString();
    QString estado = record.value("estado").toString();


    ui->dasignarid->setText(Id_asig);
    ui->dasignarfecha->setText(fecha);
    ui->dasignartotal->setText(total+" Bs.");
    ui->dasignarconsignatario->setText(consignatario);
    ui->estado->setText(estado);

    modelodasignar = new QSqlRelationalTableModel(this);
    modelodasignar->setTable("Dasignar");
    modelodasignar->setRelation(1, QSqlRelation("Producto", "Id_pro", "nombre"));
    modelodasignar->setHeaderData(1, Qt::Horizontal, QObject::tr("Producto"));
    modelodasignar->select();
    QString filtro="Id_asig = "+Id_asig;
    modelodasignar->setFilter(filtro);

    ui->dasignardetalle->setEditTriggers(QAbstractItemView::NoEditTriggers);
    ui->dasignardetalle->setSortingEnabled(true);
    ui->dasignardetalle->setSelectionBehavior(QAbstractItemView::SelectRows);
    ui->dasignardetalle->setSelectionMode(QAbstractItemView::SingleSelection);
    ui->dasignardetalle->setShowGrid(false);
    ui->dasignardetalle->verticalHeader()->hide();
    ui->dasignardetalle->setAlternatingRowColors(true);
    ui->dasignardetalle->setModel(modelodasignar);

}
void MainWindow::showAlbumDetails(QModelIndex index)
{
    QSqlRecord record = model->record(index.row());

    QString artist = record.value("artist").toString();
    QString title = record.value("title").toString();
    QString year = record.value("year").toString();
    QString albumId = record.value("albumid").toString();

    showArtistProfile(indexOfArtist(artist));
    titleLabel->setText(tr("Title: %1 (%2)").arg(title).arg(year));
    titleLabel->show();

    QDomNodeList albums = albumData.elementsByTagName("album");
    for (int i = 0; i < albums.count(); i++) {
        QDomNode album = albums.item(i);
        if (album.toElement().attribute("id") == albumId) {
            getTrackList(album.toElement());
            break;
        }
    }
    if (trackList->count() != 0)
        trackList->show();
}
Example #28
0
void QSpatiaLiteResultPrivate::initColumns(bool emptyResultset)
{
    int nCols = sqlite3_column_count(stmt);
    if (nCols <= 0)
        return;

    q->init(nCols);

    for (int i = 0; i < nCols; ++i) {
        QString colName = QString::fromUtf16( (const ushort *) sqlite3_column_name16(stmt, i) ).remove(QLatin1Char('"'));

        // must use typeName for resolving the type to match QSqliteDriver::record
        QString typeName = QString::fromUtf16( (const ushort *) sqlite3_column_decltype16(stmt, i) );
        // sqlite3_column_type is documented to have undefined behavior if the result set is empty
        int stp = emptyResultset ? -1 : sqlite3_column_type(stmt, i);

        QVariant::Type fieldType;

        if (!typeName.isEmpty()) {
            fieldType = qGetColumnType(typeName);
        } else {
            // Get the proper type for the field based on stp value
            switch (stp) {
            case SQLITE_INTEGER:
                fieldType = QVariant::Int;
                break;
            case SQLITE_FLOAT:
                fieldType = QVariant::Double;
                break;
            case SQLITE_BLOB:
                fieldType = QVariant::ByteArray;
                break;
            case SQLITE_TEXT:
                fieldType = QVariant::String;
                break;
            case SQLITE_NULL:
            default:
                fieldType = QVariant::Invalid;
                break;
            }
        }

        int dotIdx = colName.lastIndexOf(QLatin1Char('.'));
        QSqlField fld(colName.mid(dotIdx == -1 ? 0 : dotIdx + 1), fieldType);
        fld.setSqlType(stp);
        rInf.append(fld);
    }
}
Example #29
0
bool interface::update(QSqlRecord record) {
    id_db = record.field("id").value().toLongLong();
    t_ctime = record.field("ctime").value().toDateTime();
    t_mtime = record.field("mtime").value().toDateTime();
    t_dtime = record.field("dtime").value().toDateTime();
    t_deleted = record.field("deleted").value().toBool();
    t_instanced = record.field("instanced").value().toBool();
    t_user = record.field("user_id").value().toLongLong();
    t_valid = true;
    for(int i = 0; i < fieldsCount(); i++) {
        t_valid = t_valid && setFieldValue(i, record.field(fieldName(i)).value());
    };
    return t_valid;
}
GeodeticDatum *InternalIlwisObjectFactory::createDatum(const Resource& resource, const IOOptions &options) const {
    QString query;
    if ( resource.code() != sUNDEF) {
        QString code = resource.code();
        if ( code != "") {
            query = QString("Select * from datum where code = '%1'").arg(code);
        }
    }
    if ( resource["area"] != sUNDEF) {
        QString name = resource.name();
        QString area = resource["area"].toString();
        query = QString("Select * from datum where name='%1' and area='%1'").arg(name, area);
    }

    if ( query == "")
        return 0;

    InternalDatabaseConnection db;
    if (db.exec(query) && db.next()) {
        GeodeticDatum *datum = new GeodeticDatum();
        QSqlRecord rec = db.record();
        datum->name(rec.field("name").value().toString());
        datum->setDescription(rec.field("description").value().toString());
        datum->setAuthority(rec.field("authority").value().toString());
        datum->setArea(rec.field("area").value().toString());
        datum->code(rec.field("code").value().toString());
        QString ellips = rec.field("code").value().toString();
        IEllipsoid ell;
        QString ellres = QString("code=ellipsoid:%1").arg(ellips);
        ell.prepare(ellres);
        datum->set3TransformationParameters(rec.field("dx").value().toDouble(),
                                            rec.field("dy").value().toDouble(),
                                            rec.field("dz").value().toDouble(),
                                            ell);

        return datum;
    }

    return 0;
}