Ejemplo n.º 1
0
/*
 * Try to connect to the appropriate maintenance database.
 */
PGconn *
connectMaintenanceDatabase(const char *maintenance_db, const char *pghost,
						   const char *pgport, const char *pguser,
						   enum trivalue prompt_password,
						   const char *progname)
{
	PGconn *conn;

	/* If a maintenance database name was specified, just connect to it. */
	if (maintenance_db)
		return connectDatabase(maintenance_db, pghost, pgport, pguser,
							   prompt_password, progname, false);

	/* Otherwise, try postgres first and then template1. */
	conn = connectDatabase("postgres", pghost, pgport, pguser, prompt_password,
						   progname, true);
	if (!conn)
		conn = connectDatabase("template1", pghost, pgport, pguser,
							   prompt_password, progname, true);

	if (!conn)
	{
		fprintf(stderr, _("%s: could not connect to databases \"postgres\" or \"template1\"\n"
						  "Please specify an alternative maintenance database.\n"),
				progname);
		fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
				progname);
		exit(1);
	}

	return conn;
}
Ejemplo n.º 2
0
bool databaseSqlite::createDatabase(QWidget *parent,QString *path)
{

    if (!path)
    {//show dialog and get a newPath
        qDebug()<<"no hay path"<<*path;
        QString newPath = QFileDialog::getSaveFileName(parent,
                QObject::tr("Create Database"), misc::filesPath(),
                "SQLite3 (*.sqlite3)", 0, QFileDialog::DontConfirmOverwrite);

        if (newPath.isEmpty())
            return false;
        path=&newPath;
    }

    //create a copy of the database in the *path
    QString oldDb = QSqlDatabase::database().databaseName();
    closeDatabase();

    if (QFile::exists(*path)) {
        QMessageBox::critical(0, QObject::tr("Database Error"), QObject::tr("Database exists already."));

        if (!oldDb.isEmpty())
            connectDatabase(oldDb);

        return false;
    }

    if(!QFile::copy(":/sqlite/todoro.db",*path))
    {
        QString msg =QString("Copying database to %1 failed").arg(*path);
        QMessageBox::critical(0,"Error",msg);
        if (!oldDb.isEmpty())
            connectDatabase(oldDb);
        return false;
    }

    QFile::setPermissions(*path, QFile::ReadUser | QFile::WriteUser | QFile::WriteOwner | QFile::ReadOwner);

    if (!connectDatabase(*path)) {
        if (!oldDb.isEmpty())
            connectDatabase(oldDb);
        return false;
    }
    else {
        return true;
    }


}
Ejemplo n.º 3
0
static void
reindex_system_catalogs(const char *dbname, const char *host, const char *port,
						const char *username, enum trivalue prompt_password,
						const char *progname, bool echo)
{
	PQExpBufferData sql;

	PGconn	   *conn;

	initPQExpBuffer(&sql);

	appendPQExpBuffer(&sql, "REINDEX SYSTEM %s;\n", dbname);

	conn = connectDatabase(dbname, host, port, username, prompt_password,
						   progname, false);
	if (!executeMaintenanceCommand(conn, sql.data, echo))
	{
		fprintf(stderr, _("%s: reindexing of system catalogs failed: %s"),
				progname, PQerrorMessage(conn));
		PQfinish(conn);
		exit(1);
	}
	PQfinish(conn);
	termPQExpBuffer(&sql);
}
DependencyNameResolver::DependencyNameResolver(std::string host, std::string db, std::string user, std::string pass, uint32_t port) :
  m_sHost(host), m_sDB(db), m_sUser(user), m_sPassword(pass), m_uiPort(port)
{

//  m_db = (MysqlConnection *)NULL;
  connectDatabase();
}
Ejemplo n.º 5
0
static void
vacuum_all_databases(bool full, bool verbose, bool and_analyze, bool analyze_only,
					 bool freeze, const char *host, const char *port,
					 const char *username, enum trivalue prompt_password,
					 const char *progname, bool echo, bool quiet)
{
	PGconn	   *conn;
	PGresult   *result;
	int			i;

	conn = connectDatabase("postgres", host, port, username, prompt_password, progname);
	result = executeQuery(conn, "SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1;", progname, echo);
	PQfinish(conn);

	for (i = 0; i < PQntuples(result); i++)
	{
		char	   *dbname = PQgetvalue(result, i, 0);

		if (!quiet)
		{
			printf(_("%s: vacuuming database \"%s\"\n"), progname, dbname);
			fflush(stdout);
		}

		vacuum_one_database(dbname, full, verbose, and_analyze, analyze_only,
						 freeze, NULL, host, port, username, prompt_password,
							progname, echo);
	}

	PQclear(result);
}
Ejemplo n.º 6
0
static void
cluster_one_database(const char *dbname, bool verbose, const char *table,
					 const char *host, const char *port,
					 const char *username, enum trivalue prompt_password,
					 const char *progname, bool echo)
{
	PQExpBufferData sql;

	PGconn	   *conn;

	initPQExpBuffer(&sql);

	appendPQExpBuffer(&sql, "CLUSTER");
	if (verbose)
		appendPQExpBuffer(&sql, " VERBOSE");
	if (table)
		appendPQExpBuffer(&sql, " %s", table);
	appendPQExpBuffer(&sql, ";\n");

	conn = connectDatabase(dbname, host, port, username, prompt_password,
						   progname, false);
	if (!executeMaintenanceCommand(conn, sql.data, echo))
	{
		if (table)
			fprintf(stderr, _("%s: clustering of table \"%s\" in database \"%s\" failed: %s"),
					progname, table, dbname, PQerrorMessage(conn));
		else
			fprintf(stderr, _("%s: clustering of database \"%s\" failed: %s"),
					progname, dbname, PQerrorMessage(conn));
		PQfinish(conn);
		exit(1);
	}
	PQfinish(conn);
	termPQExpBuffer(&sql);
}
Ejemplo n.º 7
0
bool Database::conncetScientistToComputer(Connected newCon)
{
    bool result;

    string sciName = newCon.getNameOne();
    string comName = newCon.getNameTwo();

    int sciId = ScientistId(sciName);
    cout << "integerinn sci " << sciId;
    int comId = ScientistId(comName);
    cout << "integerinn com" << comId;

    QSqlQuery query(connectDatabase());

    query.prepare ("INSERT INTO ScientistComputersConnect VALUES(:sciId, :comId)");
    query.bindValue(":sciId", QString::number(sciId));
    query.bindValue(":comId", QString::number(comId));

    if (!query.exec())
    {
        qDebug() << query.lastError().text();
        result = false;
    }

    return result;
}
Ejemplo n.º 8
0
static void
cluster_all_databases(const char *host, const char *port,
					  const char *username, bool password,
					  const char *progname, bool echo, bool quiet)
{
	PGconn	   *conn;
	PGresult   *result;
	int			i;

	conn = connectDatabase("template1", host, port, username, password, progname);
	result = executeQuery(conn, "SELECT datname FROM pg_database WHERE datallowconn;", progname, echo);
	PQfinish(conn);

	for (i = 0; i < PQntuples(result); i++)
	{
		char	   *dbname = PQgetvalue(result, i, 0);

		if (!quiet)
			fprintf(stderr, _("%s: clustering database \"%s\"\n"), progname, dbname);

		cluster_one_database(dbname, NULL,
							 host, port, username, password,
							 progname, echo, quiet);
	}

	PQclear(result);
}
Ejemplo n.º 9
0
list<Connected> Database::ComputerToScientistId(string Id)
{
    list<Connected> result = list<Connected>();

    QSqlQuery query(connectDatabase());

    query.prepare("SELECT * FROM Computers  "
                  "INNER JOIN ScientistComputersConnect, Scientists "
                  "ON ScientistComputersConnect.ScientistID = Scientists.Id "
                  "AND ScientistComputersConnect.ComputersID = Computers.Id "
                  "WHERE ScientistComputersConnect.ScientistID = :SciId "
                  "ORDER BY Scientists.Name" );

    query.bindValue(":SciId", QString::fromStdString(Id));

    if (!query.exec())
    {
        qDebug() << query.lastError().text();
    }

    query.exec();

    result = databaseToComputerScientistlist (query);

    return result;
}
Ejemplo n.º 10
0
static void
reindex_all_databases(const char *host, const char *port,
					  const char *username, enum trivalue prompt_password,
					  const char *progname, bool echo, bool quiet)
{
	PGconn	   *conn;
	PGresult   *result;
	int			i;

	conn = connectDatabase("postgres", host, port, username, prompt_password, progname);
	result = executeQuery(conn, "SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1;", progname, echo);
	PQfinish(conn);

	for (i = 0; i < PQntuples(result); i++)
	{
		char	   *dbname = PQgetvalue(result, i, 0);

		if (!quiet)
		{
			printf(_("%s: reindexing database \"%s\"\n"), progname, dbname);
			fflush(stdout);
		}

		reindex_one_database(dbname, dbname, "DATABASE", host, port, username,
							 prompt_password, progname, echo);
	}

	PQclear(result);
}
Ejemplo n.º 11
0
void cfDatabase::addUser(std::string uid, std::string name)
{
    connectDatabase();

    std::string input = "INSERT INTO users(uid, name) VALUES(\""+uid+"\", \""+name+"\");";
    if(sqlite3_exec(db, input.c_str(), callback, 0, &errMsg) == 1) std::cout << "[ERROR]:" << sqlite3_errmsg(db) << "\n";

    disconnectDatabase();
}
Ejemplo n.º 12
0
void ProfileManager::update140()
{
    std::cout << "QupZilla: Upgrading profile version from 1.4.0..." << std::endl;

    connectDatabase();

    QSqlQuery query;
    query.exec("ALTER TABLE search_engines ADD COLUMN postData TEXT");
}
SelectareLunaFereastra::SelectareLunaFereastra(QSqlDatabase *db, QWidget *parent)
: QWidget(parent)
, m_db (db)
{
    // Incerc sa ma conected la baza de date
    if (!m_db || !m_db->isOpen())
    {
        m_db = new QSqlDatabase();
        if (!connectDatabase(*m_db))
        {
            showError("Eroare fisiere", "100: Anumite fisiere au nu pot fi gasite!");
            exit(0);
        }
    }

    this->setStyleSheet("QPushButton { font-size: 10pt; padding:10px; padding-left: 50px; padding-right:50px;}"
                        "QComboBox { font-size: 10pt; padding:10px; }");

    m_comboBoxAn = new QComboBox();
    construiesteAnii();
    connect(m_comboBoxAn, SIGNAL(currentIndexChanged(QString)), this, SLOT(construiesteLunile(QString)));

    m_comboBoxLuna = new QComboBox();

    if (m_comboBoxAn->count() != 0)
        construiesteLunile(m_comboBoxAn->currentText());

    m_buttonVizualizareLuna = new QPushButton("Vizualizare luna");
    connect(m_buttonVizualizareLuna, SIGNAL(clicked()), this, SLOT(vizualizareLuna()));

    m_buttonVizualizareAn = new QPushButton("Vizualizare an");
    connect(m_buttonVizualizareAn, SIGNAL(clicked()), this, SLOT(vizualizareAn()));

    m_buttonMembrii = new QPushButton("Membrii");
    connect(m_buttonMembrii, SIGNAL(clicked()), this, SLOT(vizualizareMembrii()));

    // TODO
    /**/ m_buttonMembrii->setEnabled(false);

    m_buttonIesire = new QPushButton("Iesire");
    connect(m_buttonIesire, SIGNAL(clicked()), this, SLOT(close()));

    verificAnNou();

    m_comboBoxAn->setCurrentIndex(m_comboBoxAn->count()-1);

    m_layoutPrincipal = new QVBoxLayout();
    m_layoutPrincipal->addWidget(m_comboBoxAn);
    m_layoutPrincipal->addWidget(m_comboBoxLuna);
    m_layoutPrincipal->addWidget(m_buttonVizualizareLuna);
    m_layoutPrincipal->addWidget(m_buttonVizualizareAn);
    m_layoutPrincipal->addWidget(m_buttonMembrii);
    m_layoutPrincipal->addWidget(m_buttonIesire);

    this->setLayout(m_layoutPrincipal);
}
Ejemplo n.º 14
0
void cfDatabase::modifyUser(std::string id, std::string name)
{
    printFull();
    connectDatabase();

    std::string input = "UPDATE users SET name=\""+name+"\" WHERE ID="+id+";";
    if(sqlite3_exec(db, input.c_str(), callback, 0, &errMsg) == 1) std::cout << "[ERROR]:" << sqlite3_errmsg(db) << "\n";

    disconnectDatabase();
}
Ejemplo n.º 15
0
void Database::addComputer(Computer computer)
{
    QSqlQuery query(connectDatabase());

    query.prepare("INSERT INTO Computers (ComputersName, YearBuilt, Type, WasItBuilt) VALUES (:name, :year, :type, :built)");
    query.bindValue(":name",         QString::fromStdString(computer.getName()));
    query.bindValue(":year",         QString::number(computer.getYear()));
    query.bindValue(":type",         QString::fromStdString(computer.getType()));
    query.bindValue(":built",        QString::number(computer.getwasItBuilt()));
    query.exec();
}
Ejemplo n.º 16
0
void Database::add(Scientist scientist)
{
    QSqlQuery query(connectDatabase());

    query.prepare("INSERT INTO Scientists (Name, Gender, YearOfBirth, YearOfDeath) VALUES (:Name, :Gender, :YearOfBirth, :YearOfDeath)");
    query.bindValue(":Name",         QString::fromStdString(scientist.getName()));
    query.bindValue(":Gender",       QString::fromStdString(scientist.getGender()));
    query.bindValue(":YearOfBirth",  QString::number(scientist.getBirthYear()));
    query.bindValue(":YearOfDeath",  QString::number(scientist.getDeathYear()));
    query.exec();
}
Ejemplo n.º 17
0
void ProfileManager::update130()
{
    std::cout << "QupZilla: Upgrading profile version from 1.3.0..." << std::endl;

    connectDatabase();

    QSqlQuery query;
    query.exec("ALTER TABLE bookmarks ADD COLUMN keyword TEXT");

    update140();
}
Ejemplo n.º 18
0
void cfDatabase::deleteUser(std::string id)
{
    printFull();
    connectDatabase();

    std::string input = "DELETE FROM users WHERE ID="+id+";";
    if(sqlite3_exec(db, input.c_str(), callback, 0, &errMsg) == 1) std::cout << "[ERROR]:" << sqlite3_errmsg(db) << "\n";

    disconnectDatabase();

}
Ejemplo n.º 19
0
void ProfileManager::update118()
{
    std::cout << "QupZilla: Upgrading profile version from 1.1.8..." << std::endl;

    connectDatabase();

    QSqlQuery query;
    query.exec("ALTER TABLE folders ADD COLUMN parent TEXT");

    update120();
}
Ejemplo n.º 20
0
void ProfileManager::update100()
{
    std::cout << "QupZilla: Upgrading profile version from 1.0.0..." << std::endl;

    connectDatabase();

    QSqlQuery query;
    query.exec("ALTER TABLE autofill ADD COLUMN last_used NUMERIC");
    query.exec("UPDATE autofill SET last_used=0");

    update118();
}
Ejemplo n.º 21
0
/*
 * Try to connect to the appropriate maintenance database.
 */
PGconn *
connectMaintenanceDatabase(const char *maintenance_db, const char *pghost,
						   const char *pgport, const char *pguser,
						   enum trivalue prompt_password,
						   const char *progname)
{
	PGconn	   *conn;

	/* If a maintenance database name was specified, just connect to it. */
	if (maintenance_db)
		return connectDatabase(maintenance_db, pghost, pgport, pguser,
							   prompt_password, progname, false);

	/* Otherwise, try postgres first and then template1. */
	conn = connectDatabase("postgres", pghost, pgport, pguser, prompt_password,
						   progname, true);
	if (!conn)
		conn = connectDatabase("template1", pghost, pgport, pguser,
							   prompt_password, progname, false);

	return conn;
}
Ejemplo n.º 22
0
static void
reindex_one_database(const char *name, const char *dbname, const char *type,
					 const char *host, const char *port, const char *username,
			  enum trivalue prompt_password, const char *progname, bool echo,
					 bool verbose)
{
	PQExpBufferData sql;

	PGconn	   *conn;

	initPQExpBuffer(&sql);

	appendPQExpBufferStr(&sql, "REINDEX");

	if (verbose)
		appendPQExpBufferStr(&sql, " (VERBOSE)");

	if (strcmp(type, "TABLE") == 0)
		appendPQExpBuffer(&sql, " TABLE %s", name);
	else if (strcmp(type, "INDEX") == 0)
		appendPQExpBuffer(&sql, " INDEX %s", name);
	else if (strcmp(type, "SCHEMA") == 0)
		appendPQExpBuffer(&sql, " SCHEMA %s", name);
	else if (strcmp(type, "DATABASE") == 0)
		appendPQExpBuffer(&sql, " DATABASE %s", fmtId(name));
	appendPQExpBufferChar(&sql, ';');

	conn = connectDatabase(dbname, host, port, username, prompt_password,
						   progname, false, false);

	if (!executeMaintenanceCommand(conn, sql.data, echo))
	{
		if (strcmp(type, "TABLE") == 0)
			fprintf(stderr, _("%s: reindexing of table \"%s\" in database \"%s\" failed: %s"),
					progname, name, dbname, PQerrorMessage(conn));
		if (strcmp(type, "INDEX") == 0)
			fprintf(stderr, _("%s: reindexing of index \"%s\" in database \"%s\" failed: %s"),
					progname, name, dbname, PQerrorMessage(conn));
		if (strcmp(type, "SCHEMA") == 0)
			fprintf(stderr, _("%s: reindexing of schema \"%s\" in database \"%s\" failed: %s"),
					progname, name, dbname, PQerrorMessage(conn));
		else
			fprintf(stderr, _("%s: reindexing of database \"%s\" failed: %s"),
					progname, dbname, PQerrorMessage(conn));
		PQfinish(conn);
		exit(1);
	}

	PQfinish(conn);
	termPQExpBuffer(&sql);
}
Ejemplo n.º 23
0
void DatabaseTabWidget::insertDatabase(Database* db, const DatabaseManagerStruct& dbStruct)
{
    m_dbList.insert(db, dbStruct);

    addTab(dbStruct.dbWidget, "");
    toggleTabbar();
    updateTabName(db);
    int index = databaseIndex(db);
    setCurrentIndex(index);
    connectDatabase(db);
    connect(dbStruct.dbWidget, SIGNAL(closeRequest()), SLOT(closeDatabaseFromSender()));
    connect(dbStruct.dbWidget, SIGNAL(databaseChanged(Database*)), SLOT(changeDatabase(Database*)));
    connect(dbStruct.dbWidget, SIGNAL(unlockedDatabase()), SLOT(updateTabNameFromDbWidgetSender()));
}
Ejemplo n.º 24
0
MainForm::MainForm(QWidget *parent, const char *name):MainFormBase(parent, name)
{
	createActions();
	createMenus();
	createToolBars();
	readSettings();		//чтение настроек
	setCaption(tr("Контроль исполнения"));
	setPlanTable();
	referenceExecutionForm = 0;
	referenceSkbForm =0;
	filterDialog = 0;
	currentPlanList = "";
	connectDatabase();
}
Ejemplo n.º 25
0
bool databaseSqlite::openDatabase(QWidget *parent)
{
    QString oldPath = QFileInfo(QSqlDatabase::database().databaseName()).absolutePath();

    QString path = QFileDialog::getOpenFileName(parent,
            "Open Database",
            (oldPath.isEmpty()) ? misc::filesPath() : oldPath,
            "SQLite3 (*.sqlite3)");

    if (path.isEmpty())
        return false;

    QString oldDb = QSqlDatabase::database().databaseName();
    closeDatabase();

    if(!connectDatabase(path)) {
        if (!oldDb.isEmpty())
             return connectDatabase(oldDb);
         return false;
    }

    return true;
}
Ejemplo n.º 26
0
void DatabaseTabWidget::changeDatabase(Database* newDb)
{
    Q_ASSERT(sender());
    Q_ASSERT(!m_dbList.contains(newDb));

    DatabaseWidget* dbWidget = static_cast<DatabaseWidget*>(sender());
    Database* oldDb = databaseFromDatabaseWidget(dbWidget);
    DatabaseManagerStruct dbStruct = m_dbList[oldDb];
    m_dbList.remove(oldDb);
    m_dbList.insert(newDb, dbStruct);

    updateTabName(newDb);
    connectDatabase(newDb, oldDb);
}
Ejemplo n.º 27
0
void cfDatabase::printFull()
{
    connectDatabase();
    std::string input = "SELECT * FROM users;";

    if(sqlite3_exec(db, input.c_str(), callback, 0, &errMsg) == 1) std::cout << "[ERROR]:" << sqlite3_errmsg(db) << "\n";

    std::cout << "USER LIST START:\n\n";
    for(unsigned long int i(0); i != users.uCount; i++)
    {
        std::cout << "ID:" << users.id.at(i) << " |UID:" << users.uid.at(i) << " |NAME:" << users.name.at(i) << "\n";
    }
    std::cout << "\n\nUSER LIST END:\n\n";
    disconnectDatabase();
}
Ejemplo n.º 28
0
list <Computer> Database::sortComputersAsc()
{
    QSqlQuery query(connectDatabase());

    query.prepare ("SELECT * FROM Computers ORDER BY LOWER(ComputersName), ComputersName");

    if (!query.exec())
    {
        qDebug() << query.lastError().text();
    }

    list <Computer> result = list <Computer>();
    result = databaseToComputerList(query);

    return result;
}
Ejemplo n.º 29
0
int Database::ComputerId(string inputFromUser)
{
    QSqlQuery query(connectDatabase());

    query.prepare ("SELECT Id FROM Computers WHERE ComputersName LIKE :name");
    query.bindValue(":name", QString::fromStdString(inputFromUser));

    if (!query.exec())
    {
        qDebug() << query.lastError().text();
    }

    int comId = query.value("Computers.Id").toInt();

    return comId;
}
Ejemplo n.º 30
0
void ProfileManager::initCurrentProfile(const QString &profileName)
{
    QString profilePath = DataPaths::path(DataPaths::Profiles) + QLatin1Char('/');

    if (profileName.isEmpty()) {
        profilePath.append(startingProfile());
    }
    else {
        profilePath.append(profileName);
    }

    DataPaths::setCurrentProfilePath(profilePath);

    updateCurrentProfile();
    connectDatabase();
}