Example #1
0
void Priorities::slotInsertOrUpdateRecords(void)
{
    QList<QVariant> list;
    QSqlQuery       stored;

    if (m_rad == RecordActionDatabase::ardInsert){
        list.append(dictionaryDialog->ui->lineEditItem->text());
        list.append((int)dictionaryDialog->ui->checkBoxActual->isChecked());
        list.append((int)(dictionaryDialog->ui->comboBoxIcon->currentIndex()));
        stored = execStored(currentDatabase(), "InsertPriorityType", storageHashTable(list));
        stored.finish();
    }
    else
    if (m_rad == RecordActionDatabase::ardUpdate){
        unsigned i(0);
        unsigned m_code = m_selectionModel->currentIndex().sibling(m_selectionModel->currentIndex().row(), i).data(Qt::DisplayRole).toUInt();

        list.append(m_code);
        list.append(dictionaryDialog->ui->lineEditItem->text());
        list.append((int)(dictionaryDialog->ui->checkBoxActual->isChecked()));
        list.append((int)(dictionaryDialog->ui->comboBoxIcon->currentIndex()));
        stored = execStored(currentDatabase(), "UpdatePriorityType", storageHashTable(list));
        stored.finish();
   }
   slotRefreshRecords();
   clearEditDialog(dictionaryDialog);
   m_selectedItem = false;
}
Example #2
0
void DataBase::deleteUser(QString twitterID, QString readerID)
{

    connect();
    QString queryString = "SELECT count() FROM readableUsers WHERE twitterID="+twitterID;
    QSqlQuery deleteUserQuery;
    deleteUserQuery.prepare(queryString);
    deleteUserQuery.exec();
    deleteUserQuery.first();
    int count = deleteUserQuery.value(0).toInt();
    if (count == 1)
    {
        deleteUserQuery.finish();
        queryString = "DELETE FROM tweets WHERE userID="+twitterID;
        deleteUserQuery.prepare(queryString);
        deleteUserQuery.exec();
        deleteUserQuery.finish();
        queryString = "DELETE FROM users WHERE usertype=0 AND twitterID="+twitterID;
        deleteUserQuery.prepare(queryString);
        deleteUserQuery.exec();
    }
    deleteUserQuery.finish();
    queryString = "DELETE FROM readableUsers WHERE twitterID="+twitterID + " AND userID="+readerID;
    deleteUserQuery.prepare(queryString);
    deleteUserQuery.exec();
    deleteUserQuery.finish();
    disconnect();
}
Example #3
0
bool	start_mysql(qint64 rows, qint64 total_time, QSqlDatabase& db, QSqlQuery& query_1, QSqlQuery& query_2) {
	if ( query_1.exec("SELECT sha1 FROM hash LIMIT 10000;") == false ) {
		std::cerr << "Cannot select the hashes: " << query_1.lastError().text().toLatin1().constData() << std::endl;
		db.rollback();
		query_1.finish();
		return false;
	}

	// Infinite loop!
	while ( query_1.next() == true ) {
		QElapsedTimer	timer;
		QString		sql_query = "SELECT count(*) FROM hash WHERE sha1='";

		sql_query += query_1.value(0).toString();
		sql_query += "';";

		rows++;

		// This is what we want to benchmark
		timer.start();
		query_2.exec(sql_query);
		total_time += timer.elapsed();

		query_2.finish();
	}

	query_1.finish();
	
	return true;
}
bool AM2DScanConfigurationGeneralView::canView(const QString &databaseName, const QString &tableName, int dbId){
	Q_UNUSED(dbId)
	AMDatabase *database = AMDatabase::database(databaseName);
	if(database){
		QSqlQuery q = database->query();
		q.prepare("PRAGMA table_info("%tableName%")");
		if(!database->execQuery(q)) {
			q.finish();
			AMErrorMon::report(AMErrorReport(0, AMErrorReport::Debug, -275003, QString("2D Scan Configuration Generl View: There was an error while trying to read meta data on table %1.").arg(tableName)));
		}
		else{
			QStringList columnNames;
			while(q.next()){
				columnNames << q.value(1).toString();
			}
			columnNames.removeFirst();
			q.finish();

			if(columnNames.contains("xStart") && columnNames.contains("xStep") && columnNames.contains("xEnd") &&
					columnNames.contains("yStart") && columnNames.contains("yStep") && columnNames.contains("yEnd") &&
					columnNames.contains("timeStep") && columnNames.contains("fastAxis") && columnNames.contains("slowAxis")){
				return true;
			}
		}
	}
	return false;
}
Example #5
0
void DataManager::onProcessPacket(const mon_bin_get* packet)
{
	QSqlQuery packetQuery;
	packetQuery.prepare("INSERT INTO `packets` "
			"(urb_id, device, bus, endpoint, time, status) "
			"VALUES(?,?,?,?,?,?);");
	QSqlQuery dataQuery;
	dataQuery.prepare("INSERT INTO `data` "
				"(packet_id, data, type) "
				"VALUES(?, ?, ?);");
	packetQuery.bindValue(0, packet->header->id);
	packetQuery.bindValue(1, packet->header->device);
	packetQuery.bindValue(2, packet->header->bus);
	packetQuery.bindValue(3, packet->header->endpoint);
	packetQuery.bindValue(4, QDateTime::fromTime_t(packet->header->ts_sec).addMSecs(packet->header->ts_usec/1000).toString("hh:mm:ss.zzz"));
	packetQuery.bindValue(5, (unsigned char)packet->header->status);

	if(!packetQuery.exec())
		goto error;

	dataQuery.bindValue(0, packetQuery.lastInsertId().toUInt());
	packetQuery.finish();

	if(packet->header->flag_setup == 0)
	{
		QByteArray setupData((const char*) packet->header->setup, 8);
		dataQuery.bindValue(1, setupData);
		dataQuery.bindValue(2, "Setup");
	}
	else if(packet->header->lengthCaptured > 0)
	{
		QByteArray data((const char*) packet->data, packet->header->lengthCaptured);
		dataQuery.bindValue(1, data);
		dataQuery.bindValue(2, "Data");
	}

	if(dataQuery.boundValues().size() == 3 && !dataQuery.exec())
		goto error;

	dataQuery.finish();
	goto cleanup;

error:
	database.rollback();
	qDebug() << "Database error: " << database.lastError().databaseText() << database.lastError().driverText();
	goto cleanup;

cleanup:
	delete packet->header;
	delete[] (char*)packet->data;
	delete packet;
	return;
}
Example #6
0
bool DbUpdater::exec(int version, QStringList queries) {
    bool ret;
    QSqlQuery q;

    qDebug() << "upgrading db schema (to version" << version << ")";
    this->start();

    for(int i = 0; i < queries.size(); i++) {
        qDebug() << "  exec" << queries.at(i);
        ret = q.exec(queries.at(i));
        if (!ret) {
            qDebug() << "  . failed: " << queries.at(i) << ", error " << q.lastError().text();
            this->rollback();
            return false;
        }

        q.finish();
    }

    // check foreign key contraints
    ret = q.exec("PRAGMA foreign_key_check");
    if (!ret) {
        qDebug() << "  . `PRAGMA foreign_key_check` failed: " << q.lastError();
        this->rollback();
        return false;
    }
    if (q.next()) {
        qDebug() << "  . FK conflicts:";
        do {
            qDebug() << "    -" << q.value(0).toString() << q.value(1).toLongLong() <<
                        q.value(2).toString();
        } while (q.next());

        this->rollback();
        return false;
    }
    q.finish();


    // updating db version
    q.prepare("UPDATE config SET value=:version WHERE key='version'");
    q.bindValue(":version", version);
    if (!q.exec()) {
        qDebug() << "upgrade version field failed:" << q.lastError().text();
        this->rollback();
        return false;
    }
    q.finish();

    this->commit();
    qDebug() << "  . succeed";
    return true;
}
Example #7
0
/**
 * Constructeur qui initialise le client par rapport au info contenu dans la BDD
 * @param identifiant, identifiant du client au sein de la BDD
 */
Customer::Customer(int identifiant){

    QSqlDatabase base = QSqlDatabase::database();
    QSqlQuery query;
    query.prepare("SELECT * FROM customer WHERE idCustomer=:id");
    query.bindValue(":id",identifiant);
    query.exec();

    query.next();
    QSqlRecord rec = query.record();

    m_name=rec.value("name").toString();
    m_adress=rec.value("adress").toString();
    m_adress2=rec.value("adress2").toString();
    m_city=rec.value("city").toString();
    m_country=rec.value("country").toString();
    m_email=rec.value("email").toString();
    m_phone=rec.value("phone").toString();
    m_postalCode=rec.value("postalCode").toInt();
    this->id=identifiant;

    query.finish();
    base.commit();

}
Example #8
0
bool AMDbUpgrade1Pt2::upgradeNecessary() const{
	QList<int> matchingAMDetectorInfoSetType;

	// Check to make sure that this AMDbObjectType is in the AMDbObjectTypes_table
	matchingAMDetectorInfoSetType = databaseToUpgrade_->objectsMatching("AMDbObjectTypes_table", "AMDbObjectType", "AMDetectorInfoSet");

	// So we found that, make sure that the columns in the actual table are correct and this actually needs to be upgraded
	if(matchingAMDetectorInfoSetType.count() > 0 ){

		QSqlQuery query = databaseToUpgrade_->query();
		query.prepare(QString("PRAGMA table_info(%1);").arg("AMDetectorInfoSet_table"));
		databaseToUpgrade_->execQuery(query);
		QStringList columnNames;
		if (query.first()){

			do {
				columnNames << query.value(1).toString();
			}while(query.next());
		}
		query.finish();

		if(columnNames.count() == 7 && columnNames.contains("id") && columnNames.contains("AMDbObjectType") && columnNames.contains("thumbnailCount")
				&& columnNames.contains("thumbnailFirstId") && columnNames.contains("name") && columnNames.contains("description")
				&& columnNames.contains("activeDetectorInfos")){
			return true;
		}
	}

	return false;
}
Example #9
0
void Widget::selects()
{
    QSqlQuery query;
    query.prepare("INSERT INTO Student (name ,age ) VALUES (?,?)");//query.exec();准备输出
    QVariantList names;//链表
    names <<"Tom "<< "Jacks" << "Jane" << "Jerry";
    query.addBindValue(names);//添加绑定链表
    QVariantList ages;
    ages << 20 << 23 << 22 << 25;
    query.addBindValue(ages);//按顺序添加绑定age
    if(!query.execBatch()){//批处理函数值
        QMessageBox::critical(0,QObject::tr("Databases Error"),query.lastError().text());
    }
    query.finish();
    QString janes = "jane";
    QString jane =QString("SELECT  sex FROM Student WHERE name = '%1'").arg(janes);
    query.exec(jane);//执行完这句话,
    QString name,sex;
    while (query.next())
    {
         //name = query.value(0).toString();
          sex = query.value(0).toString();
//        cout<<name.toStdString() <<":"<<age.toStdString()<<endl;
          cout<<sex.toStdString()<<endl;
    }
//    cout<<name.toStdString() <<":"<<age.toStdString()<<endl;
}
bool PlaylistManager::removePlaylist(int playlistID)
{
    QSqlDatabase musicDB = QSqlDatabase::addDatabase("QSQLITE",connectionName);
    musicDB.setDatabaseName(databaseName);
    bool opened = musicDB.open();
    if(opened)
    {
        QSqlQuery musicQuery = QSqlQuery(musicDB);
        musicQuery.exec("BEGIN TRANSACTION");
        musicQuery.exec(QString("DELETE  * FROM  PlaylistTrack  WHERE trackplaylistID='%1' ;").arg(QString::number(playlistID)));
        musicQuery.exec(QString("DELETE  * FROM  Playlist  WHERE playlistID='%1' ;").arg(QString::number(playlistID)));
        Q_EMIT playlistsModelChanged();
        musicQuery.exec("END TRANSACTION");

        musicQuery.finish();
        musicDB.close();
        Q_EMIT playlistsModelChanged();
        return true;
    }


    else
    {
        qDebug() << "PlaylistManager::removePlaylist: Database is not opened";
        return false;
    }
}
Example #11
0
bool ValidDocument::createEntry(){
    QSqlDatabase base = QSqlDatabase::database();
    bool retour=false;

    QSqlQuery query;
    query.prepare("INSERT INTO DocumentValide (idCustomer,price,type,payment,date,view,tva) VALUES (:idCustomer,:price,:type,:payment,:date,:view,:tva )");
    query.bindValue(":idCustomer",idCustomer);
    query.bindValue(":price",price);
    query.bindValue(":type",docType);
    query.bindValue(":payment",payment);
    query.bindValue(":date",mdate.toString("yyyy-MM-dd"));
    query.bindValue(":view",view);
    query.bindValue(":tva",tva);

    retour=query.exec();

    if(retour)
        id=query.lastInsertId().toInt();

    query.finish();
    base.commit();


    Document d(idDocument);
    d.remove();


    return retour;

}
Example #12
0
void Positions::slotPushSelectRecordData(void)
{
    QList<QVariant> list;
    QSqlQuery       stored;
    QString         userName;

    if (m_rad == RecordActionDatabase::ardInsert) {
        dictionaryDialog->ui->labelUserD->setText(currentUser());
        dictionaryDialog->ui->labelDateD->setText(QString(tr("Не определено")).trimmed());
    }
    else if (m_rad == RecordActionDatabase::ardUpdate) {
        unsigned i(1);
        QString m_item = m_selectionModel->currentIndex().sibling(m_selectionModel->currentIndex().row(), i).data(Qt::DisplayRole).toString();
        dictionaryDialog->setWindowTitle(QString(dictionaryDialog->windowTitle() + " запись - [ %1 ]").arg(m_item));
        dictionaryDialog->ui->lineEditItem->setText(QString(m_item).trimmed());

        unsigned c(2);
        unsigned m_check = m_selectionModel->currentIndex().sibling(m_selectionModel->currentIndex().row(), c).data(Qt::DisplayRole).toUInt();
        dictionaryDialog->ui->checkBoxActual->setChecked((bool)m_check);

        unsigned u(3);
        unsigned m_muser = m_selectionModel->currentIndex().sibling(m_selectionModel->currentIndex().row(), u).data(Qt::DisplayRole).toUInt();
        list.append(m_muser);
        stored = execStored(currentDatabase(), "ReadCurrentUser", storageHashTable(list));
        while (stored.next()) {
            userName = stored.record().field("opt_name_first").value().toString();
        }
        dictionaryDialog->ui->labelUserD->setText(userName);
        stored.finish();

        unsigned d(4);
        QString m_mdate = m_selectionModel->currentIndex().sibling(m_selectionModel->currentIndex().row(), d).data(Qt::DisplayRole).toString();
        dictionaryDialog->ui->labelDateD->setText(m_mdate);
    }
}
Example #13
0
void CSupplierDialog::slotDeleteProducer()
{
    QList<QVariant> list;
    QSqlQuery       stored;

    if (focusWidget()->objectName() == ui->treeProducer->objectName()){
        if (modelSelectionProducer->selection().isEmpty()){
            CCommunicate::showing(QString("Не удается выполнить, производитель не выбран"));
            return;
        }
    }

    CMessage answer(this, "Удаление", "Подтверждаете удаление?");
    QPushButton *buttonSave    = answer.addButton(QString("Удалить"), QMessageBox::ActionRole);
    QPushButton *buttonCancel  = answer.addButton(QString("Отмена"),  QMessageBox::ActionRole);

    answer.exec();

    if (answer.clickedButton() == buttonSave){
        const unsigned code = modelSelectionProducer->currentIndex().sibling(modelSelectionProducer->currentIndex().row(), 0).data().toUInt();
        list.append(code);

        stored = CDictionaryCore::execStored(CDictionaryCore::currentDatabase(), "DeleteProducerGroup", CDictionaryCore::storageHashTable(list));
        stored.finish();

        modelProducer->removeRows(modelSelectionProducer->currentIndex().row(), 1, QModelIndex());

        removable = true;

    } else if (answer.clickedButton() == buttonCancel){
        answer.reject();
    }
}
Example #14
0
void CTaskType::slotDeleteRecords(void)
{
    QList<QVariant> list;
    QSqlQuery       stored;

    if (currentDatabase().isOpen()) {

        int code = modelSelectionTask->currentIndex().sibling(modelSelectionTask->currentIndex().row(), 0).data().toUInt();

        if (!modelSelectionTask->selection().isEmpty()) {
            CMessage answer(this, "Удаление", "Подтверждаете удаление?");
            QPushButton *_delete = answer.addButton(QString("Удалить"), QMessageBox::ActionRole);
            QPushButton *cancel = answer.addButton(QString("Отмена"),  QMessageBox::ActionRole);

            answer.exec();

            if (answer.clickedButton() == _delete){
                list.append((int)code);
                stored.setForwardOnly(true);
                stored = execStored(currentDatabase(), "DeleteTaskType", storageHashTable(list));
                stored.finish();

                slotRefreshRecords(); // refresh

            } else if (answer.clickedButton() == cancel){
                treeCppsst->clearSelection();
                answer.reject();
            }
        } else
            CCommunicate::showing(QString("Не удается выполнить, запись не выбрана"));
    } else
        CCommunicate::showing(QString("Не удается выполнить, база данных не доступна"));

}
Example #15
0
bool SvDeviceEditor::loadKTSs()
{
  QSqlQuery* q = new QSqlQuery(SQLITE->db);
  QSqlError serr = SQLITE->execSQL(QString(SQL_SELECT_KTSS_LIST), q); 
  if(QSqlError::NoError != serr.type()) {
    
    _last_error = serr.text();
    delete q;
    return false;
  }

  while(q->next())
    ui->cbDeviceType->addItem(q->value("kts_name").toString(), q->value("kts_id").toUInt());
  
  q->finish();
  delete q;
  
  if(ui->cbDeviceType->count()) ui->cbDeviceType->setCurrentIndex(0);
  ui->bnSave->setEnabled(!ui->cbDeviceType->currentData().isNull());
  
  connect(ui->cbDeviceType, SIGNAL(currentIndexChanged(int)), this, SLOT(updateKTSInfo(int)));
  
  return true;
  
}
Example #16
0
/**
 * @brief Creates the database.
 * @return True if the database was created successfully.
 */
bool SQLiteManager::createDatabase() {
	QString sqlAssets, sqlPortfolios, sqlReports, sqlWeights;
	bool result = true;
	QSqlQuery query;
	sqlAssets = "CREATE TABLE assets("
		"id INTEGER PRIMARY KEY AUTOINCREMENT,"
		"name TEXT UNIQUE NOT NULL,"
		"file TEXT UNIQUE NOT NULL,"
		"origin TEXT,"
		"first_date INTEGER,"
		"last_date INTEGER);";
	result &= query.exec(sqlAssets);
	sqlPortfolios = "CREATE TABLE portfolios("
		"id INTEGER PRIMARY KEY AUTOINCREMENT,"
		"name TEXT UNIQUE NOT NULL,"
		"parent INTEGER);";
	result &= query.exec(sqlPortfolios);
	sqlWeights = "CREATE TABLE weights("
		"asset INTEGER NOT NULL REFERENCES assets(id),"
		"portfolio INTEGER NOT NULL REFERENCES portfolio(id),"
		"weight INTEGER NOT NULL,"
		"PRIMARY KEY(asset, portfolio));";
	result &= query.exec(sqlWeights);
	sqlReports = "CREATE TABLE reports("
		"id INTEGER PRIMARY KEY AUTOINCREMENT,"
		"portfolio INTEGER NOT NULL REFERENCES portfolios(id),"
		"file TEXT UNIQUE NOT NULL,"
		"type INTEGER NOT NULL);";
	result &= query.exec(sqlReports);
	query.finish();
	return result;
}
Example #17
0
void Priorities::slotRefreshRecords()
{
    QList<QVariant> list;
    QSqlQuery       stored;

#ifndef QT_NO_CURSOR
    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
#endif
    list.append(!actualRecords);
    stored = execStored(currentDatabase(), "ReadAllPriorityType", storageHashTable(list));

    fillingModel(stored);
    m_model->setHeaderData(1, Qt::Horizontal, QObject::tr("Наименование"));
    m_model->setHeaderData(6, Qt::Horizontal, QObject::tr("Иконка"));

    for (int i = 0; i != m_model->columnCount(); ++i){
        if (i == 1 || i == 6) {
            continue;
        } else {
            treeView->setColumnHidden(i, true);
        }
    }
#ifndef QT_NO_CURSOR
    QApplication::restoreOverrideCursor();
#endif
    stored.finish();
}
Example #18
0
void CCustomer::slotFillPartner(const QModelIndex &index)
{
    QList<QVariant> list;
    QSqlQuery       stored;

    if (index.sibling(index.row(), 3).data().toString() == nullptr && root->index() != index){

#ifndef QT_NO_CURSOR
        QApplication::setOverrideCursor(QCursor(QPixmap("data/picture/additionally/wait.png")));
#endif

        list.append((int)index.sibling(index.row(), 1).data().toInt());
        stored.setForwardOnly(true);
        stored = execStored(currentDatabase(), "ReadOneCustomer", storageHashTable(list));

        fillPartnerModel(stored);

#ifndef QT_NO_CURSOR
        QApplication::restoreOverrideCursor();
#endif
        stored.finish();
    } else {
        modelPartner->removeRows(0, modelPartner->rowCount(QModelIndex()), QModelIndex());
        textEditPartnerComment->clear();
    }
}
Example #19
0
void Priorities::slotSelectRecords(bool actual)
{
    QList<QVariant> list;
    QSqlQuery       stored;

#ifndef QT_NO_CURSOR
    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
#endif
    list.append((int)actual);
    stored = this->execStored(currentDatabase(), "ReadAllPriorityType", storageHashTable(list));

    fillingModel(stored);
    m_model->setHeaderData(1, Qt::Horizontal, QObject::tr("Наименование"));
    m_model->setHeaderData(6, Qt::Horizontal, QObject::tr("Иконка"));

    for (int i = 0; i != m_model->columnCount(); ++i){
        if (i == 1 || i == 6) {
            continue;
        } else {
            treeView->setColumnHidden(i, true);
        }
    }
#ifndef QT_NO_CURSOR
    QApplication::restoreOverrideCursor();
#endif
    stored.finish();

    actual ? ui->m_lblViewState->setText(QString(tr("Отображаются записи: <b><u>Актуальные</u></b>")))
           :
             ui->m_lblViewState->setText(QString(tr("Отображаются записи: <b><u>Все</u></b>")));
    m_selectedItem = false;
    actualRecords = !actualRecords;
}
student_menu::student_menu(QWidget *parent, QString db_login) :
    menu_base(parent),
    ui(new Ui::student_menu)
{
    ui->setupUi(this);
    if(db_login.length()) {
        QString qtext("SELECT DISTINCT ON(l.id_pupil) \
                      s.id_pupil,class_num(c.creation_date)||c.letter AS class, fio(s.last_name, s.first_name, s.patronim) AS fio\
                      FROM schooler_logins l \
                      LEFT JOIN schoolers s ON l.id_pupil=s.id_pupil \
                      LEFT JOIN admission_schoolers ass ON s.id_pupil=ass.id_pupil \
                      LEFT JOIN classes c ON ass.id_class=c.id_class \
                      WHERE l.db_login=? \
                      ORDER BY l.id_pupil ASC,date DESC; ");

        QSqlQuery query;
        query.prepare(qtext);
        query.addBindValue(db_login);
        query.exec();
        if (query.lastError().type()!=QSqlError::NoError){
            QMessageBox msg;
            msg.setText(query.lastError().text());
            msg.exec();
            return;
        }
        if(query.next()) {
            student_id = query.value(0).toInt();
            class_name = query.value(1).toString();
            QString fio = query.value(2).toString();
            this->setWindowTitle(fio);
        }
        query.finish();
    }
Example #21
0
void DataBase::addReadableUser(Twitter::userData *data, QString senderID, queryTypes typeQuery)
{
    connect();
    QSqlQuery updateUserDataQuery;
    QString queryString;
    if (typeQuery == NEW_USER)
    {
        queryString = "INSERT INTO users(userName,displayName,twitterID,desription,tweets,friends,followers,image,imageUrl,usertype) VALUES(\""+data->name\
                +"\",\""+data->screen_name\
                +"\","+data->twitterID\
                +", \""+data->description \
                +"\", "+data->statuses_count \
                +", "+data->friends_count \
                +", "+data->followers_count \
                +", :image"
                +", \""+data->profile_image_url +"\",0)";

        updateUserDataQuery.prepare(queryString);
        updateUserDataQuery.addBindValue(data->profile_image_data);
        updateUserDataQuery.exec();
        updateUserDataQuery.finish();
    }
    queryString = "INSERT INTO readableUsers (userID,twitterID) VALUES("+senderID+","+data->twitterID+")" ;
    updateUserDataQuery.prepare(queryString);
    updateUserDataQuery.exec();
    disconnect();
}
Example #22
0
void CTaskType::slotFindTask(const QString &text)
{
    QList<QVariant> list;
    QSqlQuery       stored;

#ifndef QT_NO_CURSOR
        QApplication::setOverrideCursor(QCursor(QPixmap("data/picture/additionally/wait.png")));
#endif

        list.append((int)actualRecords);
        list.append(text);
        stored.setForwardOnly(true);
        stored = execStored(currentDatabase(), "FindTaskType", storageHashTable(list));

        bool empty(false);
        while (stored.next()){
            empty = true;
        }

        stored = execStored(currentDatabase(), "FindTaskType", storageHashTable(list));

        if (empty) {
            fillTaskModel(stored);
        }

#ifndef QT_NO_CURSOR
        QApplication::restoreOverrideCursor();
#endif
        stored.finish();
}
Example #23
0
void DbUpdater::commit() {
      QSqlDatabase::database().commit();

      // enable back FK constraint
      QSqlQuery q;
      q.exec("PRAGMA foreign_keys = ON");
      q.finish();
}
Example #24
0
int TableBase::rowCount() const
{
    QSqlQuery q = query(QLatin1String("SELECT COUNT(id) FROM ") + m_name);
    q.first();
    int count = q.value(0).toInt();
    q.finish();
    return count;
}
Example #25
0
void DbUpdater::start() {
    // disable FK constraint before starting transaction
    QSqlQuery q;
    q.exec("PRAGMA foreign_keys = OFF");
    q.finish();

    QSqlDatabase::database().transaction();
}
	QHash<int, Collection::Album_ptr> LocalCollectionStorage::GetAllAlbums ()
	{
		QHash<int, Collection::Album_ptr> newAlbums;

		QSqlQuery getter (DB_);
		QHash<int, QStringList> trackGenres;
		if (!getter.exec ("SELECT TrackId, Name FROM genres;"))
		{
			Util::DBLock::DumpError (getter);
			throw std::runtime_error ("cannot fetch genres");
		}

		while (getter.next ())
			trackGenres [getter.value (0).toInt ()] << getter.value (1).toString ();

		if (!getter.exec ("SELECT albums.Id, albums.Name, albums.Year, albums.CoverPath, tracks.Id, tracks.TrackNumber, tracks.Name, tracks.Length, tracks.Path FROM tracks INNER JOIN albums ON tracks.AlbumID = albums.Id;"))
		{
			Util::DBLock::DumpError (getter);
			throw std::runtime_error ("cannot fetch albums");
		}

		while (getter.next ())
		{
			const int albumID = getter.value (0).toInt ();
			auto albumPos = newAlbums.find (albumID);
			if (albumPos == newAlbums.end ())
			{
				const Collection::Album a =
				{
					albumID,
					getter.value (1).toString (),
					getter.value (2).toInt (),
					getter.value (3).toString (),
					QList<Collection::Track> ()
				};
				albumPos = newAlbums.insert (albumID, Collection::Album_ptr (new Collection::Album (a)));
			}

			auto albumPtr = *albumPos;
			auto& tracks = albumPtr->Tracks_;

			const int trackId = getter.value (4).toInt ();
			Collection::Track t =
			{
				trackId,
				getter.value (5).toInt (),
				getter.value (6).toString (),
				getter.value (7).toInt (),
				trackGenres.value (trackId),
				getter.value (8).toString ()
			};

			tracks << t;
		}
		getter.finish ();

		return newAlbums;
	}
void Database::loadSuffixTableFromDatabase(QSqlDatabase dbase) {
  // Make a SQL statement
  QSqlQuery query = dbase.exec("SELECT * FROM Suffix");

  while(query.next()) {
    suffix_table[query.value("English").toString()] = query.value("Bangla").toString();
  }
  // Finish the SQLite statement
  query.finish();
}
Example #28
0
QHash<int, QString> MusicDatabase::getFilename(QList<int> ids) {

    QHash<int, QString> result;

    // Try to connect to database
    if (this->connect()) {

        // Build a string with all the parameters for binding
        QStringList inValuesBindings;
        for (int i = 0; i < ids.count(); i++) {

            inValuesBindings.push_back( QString(":id%1").arg(i) );

        }

        // Make the query
        QString sqlQuery = QString("SELECT file_name, rec_id FROM rebetikosongs.song WHERE rec_id IN (") + inValuesBindings.join(", ") + QString(")");

        // Prepare the query
        QSqlQuery resultSet;
        resultSet.prepare( sqlQuery );

        // Bind all values
        for (int i = 0; i < ids.count(); i++) {
            resultSet.bindValue(QString(":id%1").arg(i), ids[i]);
        }

        // Execute the query
        resultSet.exec();

        if (resultSet.size() > 0) {

            // Loop through result set and populate hash table with result records
            while (resultSet.next()) {
                QString value = resultSet.value(0).toString();
                int id = resultSet.value(1).toInt();
                result[id] = Song::base_filename + normalizeUrl( value );
            }

        }

        // Free result?
        resultSet.finish();

        // Disconnect from database
        this->disconnect();

    }

    return result;

}
Example #29
0
/**
 * Methode qui permet de mettre a jour un produit dans la BDD
 * @return true si l'enregistrement n'a pas poser de probleme, false sinon
 */
bool Product::updateEntry(){
    QSqlQuery query;

    query.prepare("UPDATE product SET name=:name, price=:price,description=:description WHERE idProduct=:id ");
    query.bindValue(":name",name);
    query.bindValue(":price",price);
    query.bindValue(":description",description);
    query.bindValue(":id",id);

    bool retour=query.exec();
    query.finish();
    return retour;

}
Example #30
0
/*! \brief Adding new folder **************************************************/
void AddFeedWizard::newFolder()
{
  AddFolderDialog *addFolderDialog = new AddFolderDialog(this);
  QList<QTreeWidgetItem *> treeItems =
      addFolderDialog->foldersTree_->findItems(foldersTree_->currentItem()->text(1),
                                               Qt::MatchFixedString | Qt::MatchRecursive,
                                               1);
  addFolderDialog->foldersTree_->setCurrentItem(treeItems.at(0));

  if (addFolderDialog->exec() == QDialog::Rejected) {
    delete addFolderDialog;
    return;
  }

  int folderId = 0;
  QString folderText = addFolderDialog->nameFeedEdit_->text();
  int parentId = addFolderDialog->foldersTree_->currentItem()->text(1).toInt();

  // Calculate row number to insert folder
  int rowToParent = 0;
  QSqlQuery q;
  q.exec(QString("SELECT count(id) FROM feeds WHERE parentId='%1'").arg(parentId));
  if (q.first())
    rowToParent = q.value(0).toInt();

  // Add folder
  q.prepare("INSERT INTO feeds(text, created, parentId, rowToParent) "
            "VALUES (:text, :feedCreateTime, :parentId, :rowToParent)");
  q.bindValue(":text", folderText);
  q.bindValue(":feedCreateTime",
              QLocale::c().toString(QDateTime::currentDateTimeUtc(), "yyyy-MM-ddTHH:mm:ss"));
  q.bindValue(":parentId", parentId);
  q.bindValue(":rowToParent", rowToParent);
  q.exec();

  folderId = q.lastInsertId().toInt();
  q.finish();

  treeItems = foldersTree_->findItems(QString::number(parentId),
                                      Qt::MatchFixedString | Qt::MatchRecursive,
                                      1);
  QStringList treeItem;
  treeItem << folderText << QString::number(folderId);
  QTreeWidgetItem *treeWidgetItem = new QTreeWidgetItem(treeItem);
  treeItems.at(0)->addChild(treeWidgetItem);
  foldersTree_->setCurrentItem(treeWidgetItem);

  delete addFolderDialog;
}