コード例 #1
0
ファイル: frmtrip.cpp プロジェクト: doublebyte1/app_solution
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
ファイル: ibanbicdata.cpp プロジェクト: KDE/kmymoney
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
ファイル: ctkDICOMModelTest1.cpp プロジェクト: 151706061/CTK
/* 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
ファイル: database.cpp プロジェクト: flyingmouse/Library
DatabaseManager::DatabaseManager(QObject *parent): QObject(parent){
    db = QSqlDatabase();
    nomBib = "hao";
    nomTable = "";
    path = "";
    tableRead = 0;
    nombreTable = 0;
}
コード例 #9
0
bool db::disconnect()
{
    m_db.close();
    m_db = QSqlDatabase();
    m_db.removeDatabase(QSqlDatabase::defaultConnection);

    return true;
}
コード例 #10
0
ファイル: dummy-metadb.cpp プロジェクト: cmacq2/factorkey
 QSqlDatabase DummyMetadataDbManager::open(void)
 {
     if(allowOpen())
     {
         m_opened = true;
     }
     return QSqlDatabase();
 }
コード例 #11
0
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
ファイル: WMain.cpp プロジェクト: Typz/qtc-dbviewer
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
ファイル: frmframe.cpp プロジェクト: doublebyte1/medfisis_nix
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
ファイル: qsqldatabase.cpp プロジェクト: fluxer/katie
/*!
    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);
    }
}
コード例 #22
0
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
ファイル: mythdbcon.cpp プロジェクト: DaveDaCoda/mythtv
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;
    }
}
コード例 #25
0
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();
    }
}
コード例 #26
0
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.cpp プロジェクト: Frydac/mixxx
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
ファイル: WMain.cpp プロジェクト: bingmann/bingmann.github.io
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();
}
コード例 #30
0
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();
    }
}