示例#1
0
void FrmTrip::initModels()
{
    if (viewTrips!=0) delete viewTrips;
    viewTrips = new QSqlQueryModel;

    viewTrips->setHeaderData(0, Qt::Horizontal, tr("Sampler"));
    viewTrips->setHeaderData(1, Qt::Horizontal, tr("Start Date"));
    viewTrips->setHeaderData(2, Qt::Horizontal, tr("Start Time"));
    viewTrips->setHeaderData(3, Qt::Horizontal, tr("End Date"));
    viewTrips->setHeaderData(4, Qt::Horizontal, tr("End Time"));

    if (tRefGears!=0) delete tRefGears;

     tRefGears = new QSqlQueryModel;
     tRefGears->setQuery(
        "SELECT     ID, Name"
        " FROM         dbo.Ref_Gears ORDER BY ID ASC"
         );

    if (tTripGears!=0) delete tTripGears;

    tTripGears=new QSqlTableModel();
    tTripGears->setTable(QSqlDatabase().driver()->escapeIdentifier("Sampled_Fishing_Trips_Gears",
        QSqlDriver::TableName));
    tTripGears->setEditStrategy(QSqlTableModel::OnManualSubmit);
    tTripGears->sort(0,Qt::AscendingOrder);
    tTripGears->select();

    QString strDep="select count(id) from Sampled_Fishing_operations WHERE (id_fishing_trip=:id)";

     multiModelI=new MultiModelI(listGears,tRefGears,tTripGears,
         strDep);

    if (tRefZones!=0) delete tRefZones;

     tRefZones = new QSqlQueryModel;
     tRefZones->setQuery(
        "SELECT     ID, Name"
        " FROM         dbo.Ref_Fishing_zones ORDER BY ID ASC"
         );

    if (tTripZones!=0) delete tTripZones;

    tTripZones=new QSqlTableModel();
    tTripZones->setTable(QSqlDatabase().driver()->escapeIdentifier("Sampled_fishing_trips_zones",
        QSqlDriver::TableName));
    tTripZones->setEditStrategy(QSqlTableModel::OnManualSubmit);
    tTripZones->sort(0,Qt::AscendingOrder);
    tTripZones->select();

     multiModelI2=new MultiModelI(listZones,tRefZones,tTripZones,
         strDep);
}
示例#2
0
batchManager::batchManager(QWidget* parent, const char* name, Qt::WFlags fl)
    : QMainWindow(parent, fl)
{
  setupUi(this);
  if (name)
    setObjectName(name);

  QButtonGroup * buttonGroup = new QButtonGroup(this);
  buttonGroup->addButton(_currentUser);
  buttonGroup->addButton(_allUsers);
  buttonGroup->addButton(_selectedUser);

  connect(_autoUpdate,   SIGNAL(toggled(bool)), this, SLOT(sFillList()));
  connect(_batch, SIGNAL(populateMenu(QMenu*,QTreeWidgetItem*,int)), this, SLOT(sPopulateMenu(QMenu*)));
  connect(_cancel,       SIGNAL(clicked()),          this, SLOT(sCancel()));
  connect(_reschedule,   SIGNAL(clicked()),          this, SLOT(sReschedule()));
  connect(_showCompleted,SIGNAL(toggled(bool)),      this, SLOT(sFillList()));
  connect(_usr,          SIGNAL(newID(int)),         this, SLOT(sFillList()));
  connect(_view,         SIGNAL(clicked()),          this, SLOT(sView()));
  connect(buttonGroup,   SIGNAL(buttonClicked(int)), this, SLOT(sFillList()));

  _db = QSqlDatabase();
  
  _timer = new QTimer(this);

  _batch->addColumn( tr("User"),          _dateColumn, Qt::AlignLeft, true, "batch_user");
  _batch->addColumn( tr("Action"),        _itemColumn, Qt::AlignLeft, true, "batch_action");
  _batch->addColumn( tr("Scheduled"), _timeDateColumn, Qt::AlignLeft, true, "batch_scheduled");
  _batch->addColumn( tr("Run Status"),_timeDateColumn, Qt::AlignLeft, true, "runstatus");
  _batch->addColumn( tr("Completed"), _timeDateColumn, Qt::AlignLeft, true, "batch_completed");
  _batch->addColumn( tr("Exit Status"),            -1, Qt::AlignLeft, true, "exitstatus" );

  setDatabase(_db);
}
示例#3
0
QSqlDatabase ConnectionManager::threadConnection() const
{
	QMutexLocker locker(&_mutex);
	QThread* curThread = QThread::currentThread();
	QSqlDatabase ret = _conns.value(curThread, QSqlDatabase());
	return ret;
}
示例#4
0
void MysqlConection::desconectar()
{
    QString nombreConeccion = db.connectionName();
    db.close();
    db = QSqlDatabase();
    QSqlDatabase::removeDatabase(nombreConeccion);
}
示例#5
0
QSqlDatabase XSqlTableModelProto::database() const
{
  XSqlTableModel *item = qscriptvalue_cast<XSqlTableModel*>(thisObject());
  if (item)
    return item->database();
  return QSqlDatabase();
}
示例#6
0
QSqlDatabase ibanBicData::createDatabaseConnection(const QString& database)
{
  Q_ASSERT(QSqlDatabase::drivers().contains("QSQLITE"));

  // Try to use already created connection
  const QString connectionName = QLatin1String("ibanBicData/") + database;
  QSqlDatabase storedConnection = QSqlDatabase::database(connectionName);
  if (storedConnection.isValid() && storedConnection.isOpen())
    return storedConnection;

  // Need to create new connection, locate database
  QString path = QStandardPaths::locate(QStandardPaths::DataLocation, QLatin1String("kmymoney/ibanbicdata/") + database);
  if (path.isEmpty()) {
    qWarning() << QString("Could not locate database file \"%1\" to receive IBAN and BIC data.").arg(database);
    return QSqlDatabase();
  }

  // Connect
  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", connectionName);
  db.setDatabaseName(path);
  db.setConnectOptions("QSQLITE_OPEN_READONLY=1;QSQLITE_ENABLE_SHARED_CACHE=1;");
  const bool opened = db.open();
  if (!opened) {
    qWarning() << QString("Could not open database \"%1\" to receive IBAN and BIC data.").arg(path);
  }

  return db;
}
示例#7
0
/* Test from build directory:
 ./CTK-build/bin/CTKDICOMCoreCxxTests ctkDICOMModelTest1 test.db ../CTK/Libs/DICOM/Core/Resources/dicom-sample.sql
 If you want a test with a GUI, look at ctkDICOMTest2 in DICOM/Widgets
*/
int ctkDICOMModelTest1( int argc, char * argv [] )
{
  QCoreApplication app(argc, argv);
  
  if (argc <= 2)
    {
    std::cerr << "Warning, no sql file given. Test stops" << std::endl;
    std::cerr << "Usage: qctkDICOMModelTest1 <scratch.db> <dumpfile.sql>" << std::endl;
    return EXIT_FAILURE;
    }
  
  try
  {
    ctkDICOMDatabase myCTK( argv[1] );

    if (!myCTK.initializeDatabase(argv[2]))
    {
      std::cerr << "Error when initializing the data base: " << argv[2]
          << " error: " << myCTK.lastError().toStdString();
    }
    /*
  QSqlQuery toto("SELECT PatientsName as 'Name tt' FROM Patients ORDER BY \"Name tt\" ASC", myCTK.database());
  qDebug() << "toto: " << myCTK.lastError() ;
  qDebug()<< toto.seek(0) << myCTK.lastError();
  qDebug() << toto.value(0).toString() << myCTK.lastError();

  QSqlQuery titi("SELECT StudyID as UID, StudyDescription as Name, ModalitiesInStudy as Scan, StudyDate as Date, AccessionNumber as Number, ReferringPhysician as Institution, ReferringPhysician as Referrer, PerformingPysiciansName as Performer FROM Studies WHERE PatientsUID='14'", myCTK.database());
  qDebug() << "titi: " << titi.seek(0) << myCTK.lastError();
  QSqlQuery tata("SELECT SeriesInstanceUID as UID, BodyPartExamined as Scan, SeriesDate as Date, AcquisitionNumber as Number FROM Series WHERE StudyInstanceUID='1.2.826.0.1.3680043.2.1125.1.73379483469717886505187028001198162'", myCTK.database());
  qDebug() << "tata: " << tata.seek(0) << myCTK.lastError();
  QSqlQuery tutu("SELECT SOPInstanceUID as UID, Filename as Name, SeriesInstanceUID as Date FROM Images WHERE SeriesInstanceUID='%1'", myCTK.database());
  qDebug() << "tutu: " << tutu.seek(0) << myCTK.lastError();
  */

    ctkModelTester tester;
    tester.setNestedInserts(true);
    tester.setThrowOnError(false);
    ctkDICOMModel model;
    tester.setModel(&model);

    model.setDatabase(myCTK.database());

    model.setDatabase(QSqlDatabase());

    model.setDatabase(myCTK.database());

    model.rowCount();

    qDebug() << model.rowCount() << model.columnCount();
    qDebug() << model.index(0,0);

    return EXIT_SUCCESS;
  }
  catch (std::exception e)
  {
    std::cerr << "Error when opening the data base file: " << argv[1]
        << " error: " << e.what();
    return EXIT_FAILURE;
  }
}
示例#8
0
DatabaseManager::DatabaseManager(QObject *parent): QObject(parent){
    db = QSqlDatabase();
    nomBib = "hao";
    nomTable = "";
    path = "";
    tableRead = 0;
    nombreTable = 0;
}
bool db::disconnect()
{
    m_db.close();
    m_db = QSqlDatabase();
    m_db.removeDatabase(QSqlDatabase::defaultConnection);

    return true;
}
示例#10
0
 QSqlDatabase DummyMetadataDbManager::open(void)
 {
     if(allowOpen())
     {
         m_opened = true;
     }
     return QSqlDatabase();
 }
void TActionProcess::closeDatabase()
{
    if (sqlDatabase.isValid()) {
        sqlDatabase.rollback();
        sqlDatabase.close();
        sqlDatabase = QSqlDatabase();  // Sets an invalid object
    }
}
示例#12
0
void EpcDb::close()
{
  QString connection;
  connection=db.connectionName();

  db = QSqlDatabase();
  db.removeDatabase(connection);
  qDebug() << "close db";
}
示例#13
0
/*!
 * \brief Edict2::desconnect Desconnect edict2verbs.db SqLite database
 *
 * It looks for a connection name called "dbverbs", if found we remove it.
 */
void Edict2::desconnect()
{
    if (QSqlDatabase::contains("dbverbs"))
    {
        // suppress "database in use" warning
        verbdb = QSqlDatabase();
        QSqlDatabase::removeDatabase("dbverbs");
    }
}
示例#14
0
void DbConnection::disconnect (class DbList &dblist) {
  if (db.isOpen ()) {
    db.close ();
    db = QSqlDatabase ();

    QSqlDatabase::removeDatabase (dbuuid.toString ());
  }
  dblist.tablelist_clear (*this);
}
示例#15
0
void InspectionCompressorTab::init(const QVariantMap &var_values)
{
    Variables vars(QSqlDatabase(), Variable::Compressor);
    vars.initEditDialogueWidgets(this, var_values);

    QGridLayout *layout = new QGridLayout(this);

    EditInspectionDialogueLayout(&md_inputwidgets, &md_groups, layout).layout();
}
示例#16
0
void SignIn::on_PushButton_SignIn_clicked()
{
    path = QDir::currentPath() + "\\TrainingTracker.sqlite";
    m_db = QSqlDatabase::addDatabase("QSQLITE");
    m_db.setDatabaseName(path);

    QString username = ui->LineEdit_UserName->text();
    QString password = ui->LineEdit_Password->text();

    if (!m_db.open())
    {
       //qDebug() << "Error: connection with database fail";
       //Error Handle
    }
    else
    {
       //qDebug() << "Database: connection ok";
        QSqlQuery qry;
        if(qry.exec("select * from users where name='" + username + "' and password='******'"))
        {
            int count = 0;
            while(qry.next())
            {
                count++;
            }

            if(count == 1)
            {
                m_db.close();
                m_db = QSqlDatabase();
                m_db.removeDatabase(QSqlDatabase::defaultConnection);
                this->hide();
                MainWindow mainwindow;
                mainwindow.setModal(true);
                mainwindow.exec();

            }else
            {
                //username and password doesn't match.
                statusBar()->showMessage("Invalid Username or Password! Try Again!");
            }

        }
    }

//    if(QString::compare(username, "Bhagy") == 0 && QString::compare(password, "123") == 0)
//    {
//        this->hide();
//        MainWindow mainwindow;
//        mainwindow.setModal(true);
//        mainwindow.exec();
//    }else
//    {
//        statusBar()->showMessage("Invalid Username or Password! Try Again!");
//    }
}
示例#17
0
void FrmFrame::initModels()
{
    //Frame
    tRefFrame=new QSqlRelationalTableModel();
    tRefFrame->setTable(QSqlDatabase().driver()->escapeIdentifier(tr("FR_Frame"),
        QSqlDriver::TableName));
    tRefFrame->setRelation(0, QSqlRelation(tr("FR_Frame"), tr("ID"), tr("Name")));
    tRefFrame->sort(0,Qt::AscendingOrder);
    tRefFrame->select();
    filterTable(tRefFrame->relationModel(0));

    //Frame_Time (Physical frame + time frame!)
    tFrameTime=new QSqlTableModel();
    tFrameTime->setTable(QSqlDatabase().driver()->escapeIdentifier(tr("FR_Time"),
        QSqlDriver::TableName));
    tFrameTime->setEditStrategy(QSqlTableModel::OnManualSubmit);
    tFrameTime->sort(0,Qt::AscendingOrder);
    tFrameTime->select();
}
示例#18
0
/*!
    Clones the database connection \a other and and stores it as \a
    connectionName. All the settings from the original database, e.g.
    databaseName(), hostName(), etc., are copied across. Does nothing
    if \a other is an invalid database. Returns the newly created
    database connection.

    \note The new connection has not been opened. Before using the new
    connection, you must call open().
*/
QSqlDatabase QSqlDatabase::cloneDatabase(const QSqlDatabase &other, const QString &connectionName)
{
    if (!other.isValid())
        return QSqlDatabase();

    QSqlDatabase db(other.driverName());
    db.d->copy(other.d);
    QSqlDatabasePrivate::addDatabase(db, connectionName);
    return db;
}
示例#19
0
void FrmChangeReasons::init ()
{
    tChanges=new QSqlTableModel;
    tChanges->setTable(QSqlDatabase().driver()->escapeIdentifier(tr("Ref_Changes"),
        QSqlDriver::TableName));
    tChanges->select();

    cmbChanges->setModel(tChanges);
    cmbChanges->setModelColumn(2);

}
示例#20
0
batchItem::batchItem(QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
    : QDialog(parent, name, modal, fl)
{
  setupUi(this);

  connect(_save, SIGNAL(clicked()), this, SLOT(sSave()));

  _mode = cUndefined;
  _batchid = -1;
  _db = QSqlDatabase();
}
示例#21
0
MSqlDatabase::~MSqlDatabase()
{
    if (m_db.isOpen())
    {
        m_db.close();
        m_db = QSqlDatabase();  // forces a destroy and must be done before
                                // removeDatabase() so that connections
                                // and queries are cleaned up correctly
        QSqlDatabase::removeDatabase(m_name);
    }
}
void BankEditDialog::deleteBank()
{
	int row = tableWidget->currentRow();
	if(row < 0)
		return;

	QString title;
	if( tableWidget->item(row, 0) )
		title = tableWidget->item(row, 0)->text();
	if( title.isEmpty() )
	{
		tableWidget->removeRow(row);
		return;
	}

	int res = QMessageBox::warning(this, tr("Warning!"), tr("Are you sure want to delete bank from the database?"),
		QMessageBox::Ok,
		QMessageBox::Cancel);

	if(res == QMessageBox::Cancel)
		return;


	QSqlDatabase::database().transaction();
	QSqlQuery query("DELETE FROM work.bank WHERE bank.title = '" + title + "';");

	if(query.numRowsAffected() < 0)
	{
		QString error = "<table cellspacing=15><tr><td></td><td><b>Firm name</b></td><td><b>Bank title</b></td></tr>";

		QSqlQuery q("SELECT owners.name, bank.title FROM work.owners "
			"INNER JOIN work.bank ON owners.firm_bank = bank.id WHERE bank.title='" + title + "';");
		int i = 1;
		while(q.next())
		{
			error += "<tr><td><b>";
			error += QString::number(i);
			error += "</b></td><td>";
			error += q.value(0).toString();
			error += "</td><td>";
			error += q.value(1).toString();
			error += "</td></tr>";
			i++;
		}
		error += "</table>";

		QMessageBox::warning(this, tr("Warning!"), tr("Could not delete item from database, because the database "
			"has some records connected with selected. <p>You have to delete them at first:<br>%1").arg(error));
	}
	else
		tableWidget->removeRow(row);
	QSqlDatabase().commit();
}
示例#23
0
MSqlDatabase::~MSqlDatabase()
{
    if (m_db.isOpen())
    {
        m_db.close();
        m_db = QSqlDatabase();  // forces a destroy and must be done before
                                // removeDatabase() so that connections
                                // and queries are cleaned up correctly
        QSqlDatabase::removeDatabase(m_name);
        LOG(VB_DATABASE, LOG_INFO, "Database object deleted: " + m_name);
    }
}
示例#24
0
void PersistentStore::deinit()
{
    QMutexLocker locker(&_mutex);

    if(_initialized)
    {
        _db.close();
        _db = QSqlDatabase();
        _db.removeDatabase("tarsnap");
        _initialized = false;
    }
}
void TSqlTransaction::rollback()
{
    for (int i = 0; i < databases.count(); ++i) {
        QSqlDatabase &db = databases[i];
        if (db.isValid()) {
            if (db.rollback()) {
                tQueryLog("[ROLLBACK] [databaseId:%d]", i);
            }            
        }
        db = QSqlDatabase();
    }
}
void TSqlTransaction::commit()
{
    for (int i = 0; i < databases.count(); ++i) {
        QSqlDatabase &db = databases[i];
        if (db.isValid()) {
            if (db.commit()) {
                tQueryLog("[COMMIT] [databaseId:%d]", i);
            }
        }
        db = QSqlDatabase();
    }
}
示例#27
0
DBManager::~DBManager() {
    close();
    handleDb_ = QSqlDatabase();
    QSqlDatabase::removeDatabase(HANDLER_CONN_NAME);
    QSqlDatabase::database(GEO_CONN_NAME).close();
    QSqlDatabase::removeDatabase(GEO_CONN_NAME);
    QSqlDatabase::database(MICRO_READ_CONN_NAME).close();
    QSqlDatabase::removeDatabase(MICRO_READ_CONN_NAME);
    QSqlDatabase::database(MICRO_AGENT_WRITE_CONN_NAME).close();
    QSqlDatabase::removeDatabase(MICRO_AGENT_WRITE_CONN_NAME);
    QSqlDatabase::database(MICRO_PHASE_WRITE_CONN_NAME).close();
    QSqlDatabase::removeDatabase(MICRO_PHASE_WRITE_CONN_NAME);
}
示例#28
0
ProxyTrackModel::ProxyTrackModel(QAbstractItemModel* pTrackModel,
                                 bool bHandleSearches)
        // ProxyTrackModel proxies settings requests to the composed TrackModel,
        // don't initialize its TrackModel with valid parameters.
        : TrackModel(QSqlDatabase(), ""),
          m_pTrackModel(dynamic_cast<TrackModel*>(pTrackModel)),
          m_currentSearch(""),
          m_bHandleSearches(bHandleSearches) {
    DEBUG_ASSERT_AND_HANDLE(m_pTrackModel && pTrackModel) {
        return;
    }
    setSourceModel(pTrackModel);
}
示例#29
0
QSqlError DbConnection::connect(DbList &dblist)
{
    assert(!dbuuid.isNull());

    if (!QSqlDatabase::isDriverAvailable(dbparam.driver))
    {
	QSqlError e = QSqlError("Could not connect to database",
				QString("Database driver %1 is not available.").arg(dbparam.driver),
				QSqlError::ConnectionError);
	dblist.tablelist_seterror(*this, e);
	return e;
    }

    db = QSqlDatabase::addDatabase(dbparam.driver, dbuuid);
	
    db.setHostName(dbparam.hostname);
    if (dbparam.port > 0) db.setPort(dbparam.port);
    db.setDatabaseName(dbparam.database);
    db.setUserName(dbparam.username);

    if (dbparam.askpassword)
    {
	bool ok;
	QString passwd = QInputDialog::getText(NULL, "QtSqlView Password Prompt",
					       QString("Enter password for '%1':").arg(dbparam.label),
					       QLineEdit::Password, QString::null, &ok);

	if (!ok) {
	    QSqlError e = QSqlError("Could not connect to database",
				    "Password prompt failed.",
				    QSqlError::ConnectionError);
	    dblist.tablelist_seterror(*this, e);
	    return e;
	}
    }
    else {
	db.setPassword(dbparam.password);
    }
	
    if (!db.open()) {
	QSqlError e = db.lastError();
	db = QSqlDatabase();
	QSqlDatabase::removeDatabase(dbuuid);
	dblist.tablelist_seterror(*this, e);
	return e;
    }

    dblist.tablelist_load(*this);

    return QSqlError();
}
void ControleurConnexion::sonderHote()
{
    m_bd = QSqlDatabase();
    QSqlDatabase::removeDatabase(nomBd);
    m_bd = QSqlDatabase::addDatabase(QString("QMYSQL"), nomBd);
    m_bd.setHostName(vue->getHote());
    m_bd.setPort(vue->getPort());
    m_bd.setUserName(vue->getUsager());
    m_bd.setPassword(vue->getMotDePasse());
    if (m_bd.open()) {
        listerBd();
    } else {
        vue->viderListe();
    }
}