Album* Album::findByNameAndArtist(const string& name, const string& artist) { for (int i = 0; i < 3; ++i) { try { sql::PreparedStatement *ps = MysqlAccess::getInstance().getPreparedStatement("select Albums.* from Albums where ifnull(name,'') = ifnull(?,'') and ifnull(artist,'') = ifnull(?,'')"); if (!name.empty()) ps->setString(1, name); else ps->setNull(1, sql::DataType::VARCHAR); if (!artist.empty()) ps->setString(2, artist); else ps->setNull(2, sql::DataType::VARCHAR); sql::ResultSet *rs = ps->executeQuery(); Album *album = NULL; if (rs->next()) { album = new Album(); populateFields(rs, album); } rs->close(); delete rs; return album; } catch (sql::SQLException &e) { LOG(WARNING) << "ERROR: SQLException in " << __FILE__ << " (" << __func__<< ") on line " << __LINE__; LOG(WARNING) << "ERROR: " << e.what() << " (MySQL error code: " << e.getErrorCode() << ", SQLState: " << e.getSQLState() << ")"; bool reconnected = MysqlAccess::getInstance().reconnect(); LOG(INFO) << (reconnected ? "Successful" : "Failed") << " mysql reconnection"; } } LOG(FATAL) << "Unable to complete model operation"; }
// constructor used when the query builder must make its own // connection to the database QgsQueryBuilder::QgsQueryBuilder( QgsVectorLayer *layer, QWidget *parent, Qt::WindowFlags fl ) : QDialog( parent, fl ) , mPreviousFieldRow( -1 ) , mLayer( layer ) { setupUi( this ); QSettings settings; restoreGeometry( settings.value( QStringLiteral( "/Windows/QueryBuilder/geometry" ) ).toByteArray() ); QPushButton *pbn = new QPushButton( tr( "&Test" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, SIGNAL( clicked() ), this, SLOT( test() ) ); pbn = new QPushButton( tr( "&Clear" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, SIGNAL( clicked() ), this, SLOT( clear() ) ); setupGuiViews(); mOrigSubsetString = layer->subsetString(); mUseUnfilteredLayer->setDisabled( mLayer->subsetString().isEmpty() ); lblDataUri->setText( tr( "Set provider filter on %1" ).arg( layer->name() ) ); txtSQL->setText( mOrigSubsetString ); populateFields(); }
void editTableForm::setActiveTable(DBBrowserDB * thedb, QString tableName) { pdb = thedb; curTable = tableName; populateFields(); tableLine->setText(curTable); }
// constructor used when the query builder must make its own // connection to the database SaQueryBuilder::SaQueryBuilder( QgsVectorLayer *layer, QWidget *parent, Qt::WFlags fl ) : QDialog( parent, fl ), mLayer( layer ) { setupUi( this ); connect( buttonBox, SIGNAL( helpRequested() ), this, SLOT( helpClicked() ) ); QPushButton *pbn = new QPushButton( tr( "&Test" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, SIGNAL( clicked() ), this, SLOT( test() ) ); pbn = new QPushButton( tr( "&Clear" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, SIGNAL( clicked() ), this, SLOT( clear() ) ); // remove the ILIKE button since ILIKE is a PostgreSQL special // not supported by SQL Anywhere btnILike->setVisible( false ); setupGuiViews(); mOrigSubsetString = layer->subsetString(); lblDataUri->setText( layer->publicSource() ); txtSQL->setText( mOrigSubsetString ); populateFields(); }
void DlgTrackInfo::reloadTrackMetadata() { if (m_pLoadedTrack) { TrackPointer pTrack(new TrackInfoObject(m_pLoadedTrack->getLocation(), m_pLoadedTrack->getSecurityToken())); populateFields(pTrack); } }
AlbumPart* AlbumPart::findByPosAndAlbumId(const string& pos, int albumId) { for (int i = 0; i < 3; ++i) { try { sql::PreparedStatement *ps = MysqlAccess::getInstance().getPreparedStatement("select AlbumParts.* from AlbumParts where ifnull(pos,'') = ifnull(?,'') and ifnull(albumId,0) = ifnull(?,0)"); if (!pos.empty()) ps->setString(1, pos); else ps->setNull(1, sql::DataType::VARCHAR); if (albumId > 0) ps->setInt(2, albumId); else ps->setNull(2, sql::DataType::INTEGER); sql::ResultSet *rs = ps->executeQuery(); AlbumPart *albumPart = NULL; if (rs->next()) { albumPart = new AlbumPart(); populateFields(rs, albumPart); } rs->close(); delete rs; return albumPart; } catch (sql::SQLException &e) { LOG(WARNING) << "ERROR: SQLException in " << __FILE__ << " (" << __func__<< ") on line " << __LINE__; LOG(WARNING) << "ERROR: " << e.what() << " (MySQL error code: " << e.getErrorCode() << ", SQLState: " << e.getSQLState() << ")"; bool reconnected = MysqlAccess::getInstance().reconnect(); LOG(INFO) << (reconnected ? "Successful" : "Failed") << " mysql reconnection"; } } LOG(FATAL) << "Unable to complete model operation"; }
EditTableDialog::EditTableDialog(DBBrowserDB* db, const QString& tableName, QWidget* parent) : QDialog(parent), ui(new Ui::EditTableDialog), pdb(db), curTable(tableName), m_table(tableName), m_bNewTable(true), m_sRestorePointName(QString("edittable_%1_save_%2").arg(curTable).arg(QDateTime::currentMSecsSinceEpoch())) { // Create UI ui->setupUi(this); connect(ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),this,SLOT(itemChanged(QTreeWidgetItem*,int))); m_sqliteSyntaxHighlighter = new SQLiteSyntaxHighlighter(ui->sqlTextEdit->document()); // Editing an existing table? if(curTable != "") { m_bNewTable = false; // we are editing an existing table // Existing table, so load and set the current layout QString sTablesql = pdb->getObjectByName(curTable).getsql(); m_table = sqlb::Table::parseSQL(sTablesql); populateFields(); } // And create a savepoint pdb->setRestorePoint(m_sRestorePointName); // Update UI ui->editTableName->setText(curTable); updateColumnWidth(); checkInput(); }
EditTableDialog::EditTableDialog(DBBrowserDB* db, const QString& tableName, bool createTable, QWidget* parent) : QDialog(parent), ui(new Ui::EditTableDialog), pdb(db), curTable(tableName), m_table(tableName), m_bNewTable(createTable), m_sRestorePointName(QString("edittable_%1_save_%2").arg(curTable).arg(QDateTime::currentMSecsSinceEpoch())) { // Create UI ui->setupUi(this); ui->widgetExtension->setVisible(false); connect(ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),this,SLOT(itemChanged(QTreeWidgetItem*,int))); // Editing an existing table? if(m_bNewTable == false) { // Existing table, so load and set the current layout QString sTablesql = pdb->getObjectByName(curTable).getsql(); m_table = sqlb::Table::parseSQL(sTablesql).first; ui->checkWithoutRowid->setChecked(m_table.isWithoutRowidTable()); populateFields(); } // And create a savepoint pdb->setRestorePoint(m_sRestorePointName); // Update UI ui->editTableName->setText(curTable); updateColumnWidth(); checkInput(); }
QgsSearchQueryBuilder::QgsSearchQueryBuilder( QgsVectorLayer *layer, QWidget *parent, Qt::WindowFlags fl ) : QDialog( parent, fl ) , mLayer( layer ) { setupUi( this ); setupListViews(); setWindowTitle( tr( "Search Query Builder" ) ); QPushButton *pbn = new QPushButton( tr( "&Test" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::on_btnTest_clicked ); pbn = new QPushButton( tr( "&Clear" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::on_btnClear_clicked ); pbn = new QPushButton( tr( "&Save..." ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); pbn->setToolTip( tr( "Save query to an xml file" ) ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::saveQuery ); pbn = new QPushButton( tr( "&Load..." ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); pbn->setToolTip( tr( "Load query from xml file" ) ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::loadQuery ); if ( layer ) lblDataUri->setText( layer->name() ); populateFields(); }
QgsFieldCalculator::QgsFieldCalculator( QgsVectorLayer* vl ) : QDialog() , mVectorLayer( vl ) , mAttributeId( -1 ) { setupUi( this ); if ( !vl ) return; builder->setLayer( vl ); builder->loadFieldNames(); populateFields(); populateOutputFieldTypes(); connect( builder, SIGNAL( expressionParsed( bool ) ), this, SLOT( setOkButtonState() ) ); //default values for field width and precision mOutputFieldWidthSpinBox->setValue( 10 ); mOutputFieldPrecisionSpinBox->setValue( 3 ); if ( vl->providerType() == "ogr" && vl->storageType() == "ESRI Shapefile" ) { mOutputFieldNameLineEdit->setMaxLength( 10 ); } mUpdateExistingGroupBox->setEnabled( vl->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ); mNewFieldGroupBox->setEnabled( vl->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ); Q_ASSERT( mNewFieldGroupBox->isEnabled() || mUpdateExistingGroupBox->isEnabled() ); if ( mNewFieldGroupBox->isEnabled() ) { mNewFieldGroupBox->setChecked( true ); } else { mNewFieldGroupBox->setToolTip( tr( "Not available for layer" ) ); mUpdateExistingGroupBox->setChecked( true ); mUpdateExistingGroupBox->setCheckable( false ); } if ( mUpdateExistingGroupBox->isEnabled() ) { mUpdateExistingGroupBox->setChecked( !mNewFieldGroupBox->isEnabled() ); } else { mUpdateExistingGroupBox->setToolTip( tr( "Not available for layer" ) ); mNewFieldGroupBox->setChecked( true ); mNewFieldGroupBox->setCheckable( false ); } mOnlyUpdateSelectedCheckBox->setChecked( vl->selectedFeaturesIds().size() > 0 ); }
void StandardsInformationMaterialWidget::requestPopulateFields() { if (!m_populateFieldsRequested){ m_populateFieldsRequested = true; //populateFields(); QTimer::singleShot(0, this, SLOT(populateFields())); //QTimer::singleShot(0, this, &openstudio::StandardsInformationMaterialWidget::populateFields); // Qt 5.4 only } }
void DlgTrackInfo::loadTrack(TrackPointer pTrack) { m_pLoadedTrack = pTrack; clear(); if (m_pLoadedTrack == NULL) return; populateFields(m_pLoadedTrack); populateCues(m_pLoadedTrack); }
EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& tableName, bool createTable, QWidget* parent) : QDialog(parent), ui(new Ui::EditTableDialog), pdb(db), curTable(tableName), m_table(tableName.name()), m_bNewTable(createTable), m_sRestorePointName(pdb.generateSavepointName("edittable")) { // Create UI ui->setupUi(this); ui->widgetExtension->setVisible(false); connect(ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),this,SLOT(itemChanged(QTreeWidgetItem*,int))); // Set item delegate for foreign key column m_fkEditorDelegate = new ForeignKeyEditorDelegate(db, m_table, this); ui->treeWidget->setItemDelegateForColumn(kForeignKey, m_fkEditorDelegate); // Editing an existing table? if(m_bNewTable == false) { // Existing table, so load and set the current layout m_table = *(pdb.getObjectByName<sqlb::Table>(curTable)); ui->labelEditWarning->setVisible(!m_table.fullyParsed()); // Initialise the list of tracked columns for table layout changes for(const auto& field : m_table.fields) trackColumns[field.name()] = field.name(); // Set without rowid checkbox and schema dropdown. No need to trigger any events here as we're only loading a table exactly as it is stored by SQLite, so no need // for error checking etc. ui->checkWithoutRowid->blockSignals(true); ui->checkWithoutRowid->setChecked(m_table.isWithoutRowidTable()); ui->checkWithoutRowid->blockSignals(false); ui->comboSchema->blockSignals(true); ui->comboSchema->addItems(pdb.schemata.keys()); // Load list of database schemata ui->comboSchema->setCurrentText(curTable.schema()); ui->comboSchema->blockSignals(false); populateFields(); } else { ui->comboSchema->addItems(pdb.schemata.keys()); // Load list of database schemata ui->comboSchema->setCurrentText("main"); // Always create tables in the main schema by default ui->labelEditWarning->setVisible(false); } // And create a savepoint pdb.setSavepoint(m_sRestorePointName); // Update UI ui->editTableName->setText(curTable.name()); updateColumnWidth(); checkInput(); }
// constructor used when the query builder must make its own // connection to the database QgsQueryBuilder::QgsQueryBuilder( QgsVectorLayer *layer, QWidget *parent, Qt::WindowFlags fl ) : QDialog( parent, fl ) , mPreviousFieldRow( -1 ) , mLayer( layer ) { setupUi( this ); connect( btnEqual, &QPushButton::clicked, this, &QgsQueryBuilder::btnEqual_clicked ); connect( btnLessThan, &QPushButton::clicked, this, &QgsQueryBuilder::btnLessThan_clicked ); connect( btnGreaterThan, &QPushButton::clicked, this, &QgsQueryBuilder::btnGreaterThan_clicked ); connect( btnPct, &QPushButton::clicked, this, &QgsQueryBuilder::btnPct_clicked ); connect( btnIn, &QPushButton::clicked, this, &QgsQueryBuilder::btnIn_clicked ); connect( btnNotIn, &QPushButton::clicked, this, &QgsQueryBuilder::btnNotIn_clicked ); connect( btnLike, &QPushButton::clicked, this, &QgsQueryBuilder::btnLike_clicked ); connect( btnILike, &QPushButton::clicked, this, &QgsQueryBuilder::btnILike_clicked ); connect( lstFields, &QListView::clicked, this, &QgsQueryBuilder::lstFields_clicked ); connect( lstFields, &QListView::doubleClicked, this, &QgsQueryBuilder::lstFields_doubleClicked ); connect( lstValues, &QListView::doubleClicked, this, &QgsQueryBuilder::lstValues_doubleClicked ); connect( btnLessEqual, &QPushButton::clicked, this, &QgsQueryBuilder::btnLessEqual_clicked ); connect( btnGreaterEqual, &QPushButton::clicked, this, &QgsQueryBuilder::btnGreaterEqual_clicked ); connect( btnNotEqual, &QPushButton::clicked, this, &QgsQueryBuilder::btnNotEqual_clicked ); connect( btnAnd, &QPushButton::clicked, this, &QgsQueryBuilder::btnAnd_clicked ); connect( btnNot, &QPushButton::clicked, this, &QgsQueryBuilder::btnNot_clicked ); connect( btnOr, &QPushButton::clicked, this, &QgsQueryBuilder::btnOr_clicked ); connect( btnGetAllValues, &QPushButton::clicked, this, &QgsQueryBuilder::btnGetAllValues_clicked ); connect( btnSampleValues, &QPushButton::clicked, this, &QgsQueryBuilder::btnSampleValues_clicked ); connect( buttonBox, &QDialogButtonBox::helpRequested, this, &QgsQueryBuilder::showHelp ); QgsSettings settings; restoreGeometry( settings.value( QStringLiteral( "Windows/QueryBuilder/geometry" ) ).toByteArray() ); QPushButton *pbn = new QPushButton( tr( "&Test" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, &QAbstractButton::clicked, this, &QgsQueryBuilder::test ); pbn = new QPushButton( tr( "&Clear" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, &QAbstractButton::clicked, this, &QgsQueryBuilder::clear ); setupGuiViews(); mOrigSubsetString = layer->subsetString(); mUseUnfilteredLayer->setDisabled( mLayer->subsetString().isEmpty() ); lblDataUri->setText( tr( "Set provider filter on %1" ).arg( layer->name() ) ); txtSQL->setText( mOrigSubsetString ); mFilterLineEdit->setShowSearchIcon( true ); mFilterLineEdit->setPlaceholderText( tr( "Search…" ) ); connect( mFilterLineEdit, &QgsFilterLineEdit::textChanged, this, &QgsQueryBuilder::onTextChanged ); populateFields(); }
NamespaceEditDlg::NamespaceEditDlg(bool create, NamespaceEntry& entry, QWidget* const parent) : QDialog(parent), d(new Private()) { setModal(true); d->buttons = new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); d->buttons->button(QDialogButtonBox::Ok)->setDefault(true); if (create) { setWindowTitle(i18n("New Xmp Namespace")); } else { setWindowTitle(i18n("Edit Xmp Namespace")); } d->create = create; d->nsType = entry.nsType; setupTagGui(entry); // -------------------------------------------------------- connect(d->buttons->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(accept())); connect(d->buttons->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(reject())); connect(d->buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()), this, SLOT(slotHelp())); // -------------------------------------------------------- if (!d->create) { populateFields(entry); } setType(entry.nsType); if (entry.isDefault) { makeReadOnly(); } qCDebug(DIGIKAM_GENERAL_LOG) << "Entry type" << entry.nsType << "subspace" << entry.subspace << entry.isDefault; adjustSize(); }
QgsSearchQueryBuilder::QgsSearchQueryBuilder( QgsVectorLayer *layer, QWidget *parent, Qt::WindowFlags fl ) : QDialog( parent, fl ) , mLayer( layer ) { setupUi( this ); connect( btnEqual, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnEqual_clicked ); connect( btnLessThan, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnLessThan_clicked ); connect( btnGreaterThan, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnGreaterThan_clicked ); connect( btnLike, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnLike_clicked ); connect( btnILike, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnILike_clicked ); connect( btnPct, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnPct_clicked ); connect( btnIn, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnIn_clicked ); connect( btnNotIn, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnNotIn_clicked ); connect( lstFields, &QListView::doubleClicked, this, &QgsSearchQueryBuilder::lstFields_doubleClicked ); connect( lstValues, &QListView::doubleClicked, this, &QgsSearchQueryBuilder::lstValues_doubleClicked ); connect( btnLessEqual, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnLessEqual_clicked ); connect( btnGreaterEqual, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnGreaterEqual_clicked ); connect( btnNotEqual, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnNotEqual_clicked ); connect( btnAnd, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnAnd_clicked ); connect( btnNot, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnNot_clicked ); connect( btnOr, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnOr_clicked ); connect( btnGetAllValues, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnGetAllValues_clicked ); connect( btnSampleValues, &QPushButton::clicked, this, &QgsSearchQueryBuilder::btnSampleValues_clicked ); setupListViews(); connect( buttonBox, &QDialogButtonBox::helpRequested, this, &QgsSearchQueryBuilder::showHelp ); setWindowTitle( tr( "Search Query Builder" ) ); QPushButton *pbn = new QPushButton( tr( "&Test" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::btnTest_clicked ); pbn = new QPushButton( tr( "&Clear" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::btnClear_clicked ); pbn = new QPushButton( tr( "&Save…" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); pbn->setToolTip( tr( "Save query to an xml file" ) ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::saveQuery ); pbn = new QPushButton( tr( "&Load…" ) ); buttonBox->addButton( pbn, QDialogButtonBox::ActionRole ); pbn->setToolTip( tr( "Load query from xml file" ) ); connect( pbn, &QAbstractButton::clicked, this, &QgsSearchQueryBuilder::loadQuery ); if ( layer ) lblDataUri->setText( layer->name() ); populateFields(); }
QgsFieldCalculator::QgsFieldCalculator( QgsVectorLayer* vl ) : QDialog() , mVectorLayer( vl ) , mAttributeId( -1 ) { setupUi( this ); if ( !vl ) { return; } populateFields(); populateOutputFieldTypes(); //default values for field width and precision mOuputFieldWidthSpinBox->setValue( 10 ); mOutputFieldPrecisionSpinBox->setValue( 3 ); //disable ok button until there is text for output field and expression mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( false ); mExistingFieldComboBox->setDisabled( true ); // disable creation of new fields if not supported by data provider if ( !( vl->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ) ) { mUpdateExistingFieldCheckBox->setCheckState( Qt::Checked ); mUpdateExistingFieldCheckBox->setEnabled( false ); // must stay checked mNewFieldGroupBox->setEnabled( false ); mNewFieldGroupBox->setTitle( mNewFieldGroupBox->title() + tr( " (not supported by provider)" ) ); } if ( vl->selectedFeaturesIds().size() > 0 ) { mOnlyUpdateSelectedCheckBox->setChecked( true ); } if ( vl->geometryType() != QGis::Polygon ) { mAreaButton->setEnabled( false ); } if ( vl->geometryType() != QGis::Line ) { mLengthButton->setEnabled( false ); } }
Mix* Mix::findById(int id) { try { sql::PreparedStatement *ps = MysqlAccess::getInstance().getPreparedStatement("select * from Mixes where id = ?"); ps->setInt(1, id); sql::ResultSet *rs = ps->executeQuery(); Mix *mix = NULL; if (rs->next()) { mix = new Mix(); populateFields(rs, mix); } rs->close(); delete rs; return mix; } catch (sql::SQLException &e) { cerr << "ERROR: SQLException in " << __FILE__; cerr << " (" << __func__<< ") on line " << __LINE__ << endl; cerr << "ERROR: " << e.what(); cerr << " (MySQL error code: " << e.getErrorCode(); cerr << ", SQLState: " << e.getSQLState() << ")" << endl; exit(1); } }
REAlbumCover* REAlbumCover::findByREId(const string& reId) { try { sql::PreparedStatement *ps = MysqlAccess::getInstance().getPreparedStatement("select * from REAlbumCovers where reId = ?"); ps->setString(1, reId); sql::ResultSet *rs = ps->executeQuery(); REAlbumCover *reAlbumCover = NULL; if (rs->next()) { reAlbumCover = new REAlbumCover(); populateFields(rs, reAlbumCover); } rs->close(); delete rs; return reAlbumCover; } catch (sql::SQLException &e) { cerr << "ERROR: SQLException in " << __FILE__; cerr << " (" << __func__<< ") on line " << __LINE__ << endl; cerr << "ERROR: " << e.what(); cerr << " (MySQL error code: " << e.getErrorCode(); cerr << ", SQLState: " << e.getSQLState() << ")" << endl; exit(1); } }
Album* Album::findByCoverFilepath(const string& coverFilepath) { for (int i = 0; i < 3; ++i) { try { sql::PreparedStatement *ps = MysqlAccess::getInstance().getPreparedStatement("select Albums.* from Albums where Albums.coverFilepath = ?"); ps->setString(1, coverFilepath); sql::ResultSet *rs = ps->executeQuery(); Album *album = NULL; if (rs->next()) { album = new Album(); populateFields(rs, album); } rs->close(); delete rs; return album; } catch (sql::SQLException &e) { LOG(WARNING) << "ERROR: SQLException in " << __FILE__ << " (" << __func__<< ") on line " << __LINE__; LOG(WARNING) << "ERROR: " << e.what() << " (MySQL error code: " << e.getErrorCode() << ", SQLState: " << e.getSQLState() << ")"; bool reconnected = MysqlAccess::getInstance().reconnect(); LOG(INFO) << (reconnected ? "Successful" : "Failed") << " mysql reconnection"; } } LOG(FATAL) << "Unable to complete model operation"; }
QgsFieldCalculator::QgsFieldCalculator( QgsVectorLayer* vl ) : QDialog() , mVectorLayer( vl ) , mAttributeId( -1 ) { setupUi( this ); if ( !vl ) return; builder->setLayer( vl ); builder->loadFieldNames(); populateFields(); populateOutputFieldTypes(); connect( builder, SIGNAL( expressionParsed( bool ) ), this, SLOT( setOkButtonState() ) ); QgsDistanceArea myDa; myDa.setSourceCrs( vl->crs().srsid() ); myDa.setEllipsoidalMode( QgisApp::instance()->mapCanvas()->mapSettings().hasCrsTransformEnabled() ); myDa.setEllipsoid( QgsProject::instance()->readEntry( "Measure", "/Ellipsoid", GEO_NONE ) ); builder->setGeomCalculator( myDa ); //default values for field width and precision mOutputFieldWidthSpinBox->setValue( 10 ); mOutputFieldPrecisionSpinBox->setValue( 3 ); if ( vl->providerType() == "ogr" && vl->storageType() == "ESRI Shapefile" ) { mOutputFieldNameLineEdit->setMaxLength( 10 ); } mUpdateExistingGroupBox->setEnabled( vl->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ); mNewFieldGroupBox->setEnabled( vl->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ); Q_ASSERT( mNewFieldGroupBox->isEnabled() || mUpdateExistingGroupBox->isEnabled() ); if ( mNewFieldGroupBox->isEnabled() ) { mNewFieldGroupBox->setChecked( true ); } else { mNewFieldGroupBox->setToolTip( tr( "Not available for layer" ) ); mUpdateExistingGroupBox->setChecked( true ); mUpdateExistingGroupBox->setCheckable( false ); } if ( mUpdateExistingGroupBox->isEnabled() ) { mUpdateExistingGroupBox->setChecked( !mNewFieldGroupBox->isEnabled() ); } else { mUpdateExistingGroupBox->setToolTip( tr( "Not available for layer" ) ); mNewFieldGroupBox->setChecked( true ); mNewFieldGroupBox->setCheckable( false ); } mOnlyUpdateSelectedCheckBox->setChecked( vl->selectedFeaturesIds().size() > 0 ); }
QgsFieldCalculator::QgsFieldCalculator( QgsVectorLayer* vl ) : QDialog() , mVectorLayer( vl ) , mAttributeId( -1 ) { setupUi( this ); if ( !vl ) return; QgsExpressionContext expContext; expContext << QgsExpressionContextUtils::globalScope() << QgsExpressionContextUtils::projectScope() << QgsExpressionContextUtils::layerScope( mVectorLayer ); expContext.lastScope()->setVariable( "row_number", 1 ); expContext.setHighlightedVariables( QStringList() << "row_number" ); builder->setLayer( vl ); builder->loadFieldNames(); builder->setExpressionContext( expContext ); populateFields(); populateOutputFieldTypes(); connect( builder, SIGNAL( expressionParsed( bool ) ), this, SLOT( setOkButtonState() ) ); QgsDistanceArea myDa; myDa.setSourceCrs( vl->crs().srsid() ); myDa.setEllipsoidalMode( QgisApp::instance()->mapCanvas()->mapSettings().hasCrsTransformEnabled() ); myDa.setEllipsoid( QgsProject::instance()->readEntry( "Measure", "/Ellipsoid", GEO_NONE ) ); builder->setGeomCalculator( myDa ); //default values for field width and precision mOutputFieldWidthSpinBox->setValue( 10 ); mOutputFieldPrecisionSpinBox->setValue( 3 ); if ( vl->providerType() == "ogr" && vl->storageType() == "ESRI Shapefile" ) { mOutputFieldNameLineEdit->setMaxLength( 10 ); } if ( !( vl->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ) ) { mCreateVirtualFieldCheckbox->setChecked( true ); mCreateVirtualFieldCheckbox->setEnabled( false ); mOnlyVirtualFieldsInfoLabel->setVisible( true ); mInfoIcon->setVisible( true ); } else { mOnlyVirtualFieldsInfoLabel->setVisible( false ); mInfoIcon->setVisible( false ); } if ( !( vl->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) ) { mUpdateExistingGroupBox->setEnabled( false ); mCreateVirtualFieldCheckbox->setChecked( true ); mCreateVirtualFieldCheckbox->setEnabled( false ); } Q_ASSERT( mNewFieldGroupBox->isEnabled() || mUpdateExistingGroupBox->isEnabled() ); if ( mNewFieldGroupBox->isEnabled() ) { mNewFieldGroupBox->setChecked( true ); } else { mNewFieldGroupBox->setToolTip( tr( "Not available for layer" ) ); mUpdateExistingGroupBox->setChecked( true ); mUpdateExistingGroupBox->setCheckable( false ); } if ( mUpdateExistingGroupBox->isEnabled() ) { mUpdateExistingGroupBox->setChecked( !mNewFieldGroupBox->isEnabled() ); } else { mUpdateExistingGroupBox->setToolTip( tr( "Not available for layer" ) ); mNewFieldGroupBox->setChecked( true ); mNewFieldGroupBox->setCheckable( false ); } if (( mNewFieldGroupBox->isChecked() && mCreateVirtualFieldCheckbox->isChecked() ) || mVectorLayer->isEditable() ) { mEditModeAutoTurnOnLabel->setVisible( false ); mInfoIcon->setVisible( false ); } else { mInfoIcon->setVisible( true ); } bool hasselection = vl->selectedFeatureCount() > 0; mOnlyUpdateSelectedCheckBox->setChecked( hasselection ); mOnlyUpdateSelectedCheckBox->setEnabled( hasselection ); mOnlyUpdateSelectedCheckBox->setText( tr( "Only update %1 selected features" ).arg( vl->selectedFeatureCount() ) ); builder->loadRecent( "fieldcalc" ); mInfoIcon->setPixmap( style()->standardPixmap( QStyle::SP_MessageBoxInformation ) ); setOkButtonState(); QSettings settings; restoreGeometry( settings.value( "/Windows/QgsFieldCalculator/geometry" ).toByteArray() ); }