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; }
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(); }
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)); } }
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")); }
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(); }
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 ); }
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; }
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; }
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; }
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); } }
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(); }
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))); }
/*! Устанавливает запрос, подключается к базе данных, получает данные и создает древовидную структуру. */ 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(); }
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; }
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()); }
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; }
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(); } } }
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(); } }
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; }
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; }
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(); }
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(); }
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); } }
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; }