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; }
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(); }
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; }
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; }
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; }
/** * 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(); }
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; }
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; } }
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; }
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); } }
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(); } }
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("Не удается выполнить, база данных не доступна")); }
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; }
/** * @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; }
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(); }
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(); } }
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(); }
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(); }
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(); }
void DbUpdater::commit() { QSqlDatabase::database().commit(); // enable back FK constraint QSqlQuery q; q.exec("PRAGMA foreign_keys = ON"); q.finish(); }
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; }
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(); }
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; }
/** * 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; }
/*! \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; }