Example #1
0
bool DatabaseStorage::createTable()
{
    mysqlpp::Connection con;
    if (!connectToDatabase(con))
        return false;

    try
    {
        mysqlpp::Query query = con.query();
        std::cout << "Creating Store table... ";
        query <<
              "CREATE TABLE Store (" <<
              " file CHAR(30) NOT NULL, " <<
              " variable CHAR(30) NOT NULL, " <<
              " data BLOB NOT NULL, " <<
              " nrows INT NOT NULL, " <<
              " ncols INT NOT NULL, " <<
              " description MEDIUMTEXT NULL)";
        query.execute();
    }
    catch( std::exception& er)
    {
        std::cerr << "Query error: " << er.what() << std::endl;
        return false;
    }
    std::cout << "Succeeded!\n";
    return true;
}
Example #2
0
/**
  Loads the region data
  */
void cwRegionLoadTask::runTask() {
    //Clear region
    bool connected = connectToDatabase("loadRegionTask");
    if(connected) {

        //This makes sure that sqlite is clean up after it self
        insureVacuuming();

        //Try loading Proto Buffer
        bool success = loadFromProtoBuffer();

//        if(!success) {
//            qDebug() << "Warning loading from XML serialization!" << LOCATION;
//            success = loadFromBoostSerialization();
//        }

        if(!success) {
            qDebug() << "Couldn't load from any format!";
            stop();
        }
    }

    if(isRunning()) {
        emit finishedLoading();
    }

    done();
}
void Database::initDatabase()
{
    if(checkDatabaseFileExistance()){
        connectToDatabase();
        qDebug() << "Database " + DATABASE_NAME + " is open!";
    }
    else{
        qDebug() << "Database file: " + DATABASE_NAME + "is missing!";
    }
}
void cwRemoveImageTask::runTask()
{
    //Connect to the database
    bool connected = connectToDatabase("RemoveImagesTask");

    if(connected) {
        //Try to add the ImagePaths to the database
        tryToRemoveImages();

        //Close the database
        Database.close();
    }

    done();
}
Example #5
0
void DatabaseStorage::write(SerializableObject<T>& object)
{
    std::stringstream ss;

    int nr, nc;
    nr = nc = 0;
    if (typeid(arma::mat) == typeid(object.variable_) || typeid(arma::umat) == typeid(object.variable_))
    {
        nr = object.variable_.n_rows;
        nc = object.variable_.n_cols;
    }
    else
    {
        nr = nc = 1;
    }

    ss << object.variable_;

    if (!existTable())
        return;

    mysqlpp::Connection con;
    if (!connectToDatabase(con))
        return;

    try
    {
        mysqlpp::Query query = con.query();
        query << "INSERT INTO Store (file, variable, data, nrows, ncols) VALUES(\"" << object.fileName_ <<
              "\", \"" << object.variableName_ << "\", \"" << mysqlpp::escape << ss.str() << "\", " <<
              nr << ", " << nc << ")";

        mysqlpp::SimpleResult res = query.execute();

    }
    catch (const mysqlpp::BadQuery& er)
    {
        std::cerr << "Query error: " << er.what() << std::endl;
        return;
    }
    catch(const std::exception& er)
    {
        // Catch-all for any other MySQL++ exceptions
        std::cerr << "Error: " << er.what() << std::endl;
        return;
    }

}
Example #6
0
/* *
* init function creates database with specified name and makes a connection
* which is stored in private variable mysqlpp::Connection connection_
*
* Second phase is to parse given file and store found data: nodes, lines, surfaces and recorded data
* into that database.
*
*/
bool DatabaseStorage::init(const string& file)
{
    if (file.empty())
    {
        std::cerr << "DatabaseStorage::init --\n";
        std::cerr << "File: is empty\n";
        return false;
    }

    // TODO: repository? argument "file" is not needed.
    string repository = Oi::stripToFileName(file);
    if (repository.empty())
    {
        std::cerr << "DatabaseStorage::init --\n";
        std::cerr << "Bad file name: " << file << "\n";
        return false;
    }

    mysqlpp::Connection con;

    // noexception is needed not to throw exception when such database exist.
    mysqlpp::NoExceptions ne(con);

    // try to create database and table
    if (!connectToDatabase(con))
    {
        std::cout << "Database: " << DATABASE << " do not exist. Creating new one!\n";
        if (!con.create_db(DATABASE))
        {
            std::cerr << "Error creating database: " << con.error() << std::endl;
            return false;
        }
        if(!createTable())
        {
            std::cerr << "Error creating table: Store.\n";
            return false;
        }
    }



    if (!existTable())
        createTable();

    return true;
}
Example #7
0
bool reConnectToDatabase(QSqlError lasterror, QString SQLquery, QString callingfunction)
{
    vvimDebug() << callingfunction << QObject::tr("Cannot execute query. DB lost? Try to reconnect!") << lasterror.text();

    if(!connectToDatabase())
    {
        QString textforlogfile = QString(QObject::tr("Something went wrong, could not reconnect to execute query: %1 error %2").arg(SQLquery).arg(lasterror.text()));
        vvimDebug() << callingfunction << "FATAL:" << textforlogfile ;
        qFatal((textforlogfile).toStdString().c_str());
        return false;
    }
    else
    {
        vvimDebug() << callingfunction << QObject::tr("Reconnection successful!");
        return true;
    }
}
void first4server::readConfiguration()
{
    QDomDocument dbs("databases");
    QFile file ( "/etc/first4server/databases.conf" );
    if (file.open(QIODevice::ReadOnly))
    {
	dbs.setContent(file.readAll());
	file.close();
    }
    else
	qDebug() << "Can't read database file";

    QDomElement db = dbs.documentElement();
    QDomNodeList nlist = db.elementsByTagName("Database");
    if(nlist.size() > 0)
    {
	QDomElement e = nlist.at(0).toElement();
	if(!e.isNull())
	    connectToDatabase(e.attribute("Host"), e.attribute("Port").toInt(), e.attribute("DBName"), e.attribute("User"), e.attribute("Password"));
    }
}
Example #9
0
void NepomukService::enableSyncToDigikam(bool syncToDigikam)
{
    // Controls syncing Nepomuk -> Digikam.
    // Called from readConfig or via DBus (from DigikamApp)

    kDebug() << "Sync to digikam enabled: " << syncToDigikam;

    if (d->syncToDigikam == syncToDigikam)
    {
        return;
    }

    d->syncToDigikam = syncToDigikam;

    if (!d->isConnected)
    {
        connectToDatabase(databaseParameters());
    }

    if (!d->isConnected)
    {
        return;
    }

    if (d->syncToDigikam)
    {
        connect(mainModel(), SIGNAL(statementAdded(const Soprano::Statement&)),
                this, SLOT(slotStatementAdded(const Soprano::Statement&)));

        connect(mainModel(), SIGNAL(statementRemoved(const Soprano::Statement&)),
                this, SLOT(slotStatementRemoved(const Soprano::Statement&)));

        /*connect(DatabaseAccess::databaseWatch(), SIGNAL(collectionImageChange(const CollectionImageChangeset &)),
                this, SLOT(slotCollectionImageChange(const CollectionImageChangeset &)));*/

        if (lastSyncToDigikam().isNull())
        {
            d->triggerSyncToDigikam();
        }
    }
Example #10
0
void Register::on_register_registerPushButton_clicked()
{
    QString lastName = ui->register_lnameLineEdit->text();
    QString firstName = ui->register_fnameLineEdit->text();
    QString email = ui->register_emailLineEdit->text();
    QString username = ui->register_usernameLineEdit->text();
    QString password = ui->register_pwdLineEdit->text();
    QString verifyPwd = ui->register_verifypwdLineEdit->text();

    if(password==verifyPwd)
    {
        if(connectToDatabase())
        {
            if(checkUserExists(email))
            {
                QMessageBox::warning(this, "warning", "The user already exists");
            }
            else
            {
                User newUser;
                newUser.setFirstName(firstName);
                newUser.setLastName(lastName);
                newUser.setUserName(username);
                newUser.setEmail(email);
                newUser.setPassword(password);
                if(addNewUser(newUser))
                {
                    QMessageBox::about(this,"Register","The new account created!");
                }
                close();
            }
        }
    }
    else
    {
        QMessageBox::warning(this,"Waring","The passwords are not matched.");
    }
    closeDatabase();
}
Example #11
0
void kickDatabase(bool debug)
{
    if (time(NULL) < g_lastDBKick + DB_CHECK_TIME)
        return;

    if (debug)
        cout << "Kicking database connection" << endl;

    g_lastDBKick = time(NULL);

    if (mysql_query(&g_dbConn, "SELECT NULL;") == 0)
    {
        MYSQL_RES *res = mysql_store_result(&g_dbConn);
        if (res)
            mysql_free_result(res);
        return;
    }

    cout << "Lost connection to DB - trying to reconnect" << endl;

    // failed so try to reconnect to the DB
    mysql_close(&g_dbConn);
    connectToDatabase();
}
Example #12
0
bool DatabaseStorage::existTable()
{
    mysqlpp::Connection con;
    if (!connectToDatabase(con))
        return false;

    try
    {
        mysqlpp::Query query = con.query();
        // test if exist such tabe: if not - result would "false"
        query << "SELECT * FROM Store";

        mysqlpp::SimpleResult res = query.execute();
        if (!res)
            return false;
    }
    catch( std::exception& err)
    {
        std::cerr << "Query error " << err.what() << "\n";
        return false;
    }

    return true;
}
/*
 * Player Database
 */
PlayerDatabasePostgreSQL::PlayerDatabasePostgreSQL(const std::string &connect_string):
	Database_PostgreSQL(connect_string),
	PlayerDatabase()
{
	connectToDatabase();
}
MapDatabasePostgreSQL::MapDatabasePostgreSQL(const std::string &connect_string):
	Database_PostgreSQL(connect_string),
	MapDatabase()
{
	connectToDatabase();
}