dbManager::dbManager() { qDebug() << "Hola! Soy el contructor de dbManager()!"; //Seteo el directorio de trabajo al home del usuario (en windows, C:\users\<usuario> QDir::setCurrent(QDir::homePath()); //Creo la coneccion a la base de datos, con el driver de SQLITE3. db = QSqlDatabase::addDatabase("QSQLITE","managedDbConnection"); //Seteo el nombre de la base de datos. (Ya que estamos en SQLITE sera el nombre del archivo) db.setDatabaseName("my.db.sqlite"); //Abrimos la db (aha!) db.open(); /**El archivo de la db se crea en el paso anterior, pero aun debemos crear la tabla.*/ QSqlQuery query(db); QStringList tableList(db.tables(QSql::Tables)); if (tableList.size() == 0) { query.exec("CREATE TABLE perfiles (id integer primary key autoincrement, nombre char, temp integer, days integer, hours integer, mins integer)"); } }
bool DatabaseDialog::databaseDoNext() { m_dbConnection = QSqlDatabase::addDatabase(m_driver->currentText()); if (m_dbConnection.isValid()) { m_dbConnection.setDatabaseName(m_databaseName->text()); m_dbConnection.setHostName(m_host->text()); if (!m_username->text().isEmpty()) m_dbConnection.setUserName(m_username->text()); if (!m_password->text().isEmpty()) m_dbConnection.setPassword(m_password->text()); if (!m_port->text().isEmpty()) { bool ok = false; int port = m_port->text().toInt(&ok); if (!ok) { KMessageBox::error(this, i18n("The port must be a number")); return false; } m_dbConnection.setPort(port); } m_databaseStatus->setText(i18n("Connecting to database...")); if (m_dbConnection.open()) { m_databaseStatus->setText(i18n("Connected. Retrieving table information...")); QStringList tableList(m_dbConnection.tables()); if (tableList.isEmpty()) { KMessageBox::error(this, i18n("This database contains no tables")); m_databaseStatus->setText(" "); return false; } m_tableView->clear(); for (int i = 0; i < tableList.size(); ++i) { QListWidgetItem * item = new QListWidgetItem(tableList[i]); item->setFlags(item->flags() | Qt::ItemIsUserCheckable); item->setCheckState(Qt::Unchecked); m_tableView->addItem(item); } m_tableView->setEnabled(true); m_databaseStatus->setText(" "); } else { QSqlError error = m_dbConnection.lastError(); QString errorMsg; QString err1 = error.driverText(); QString err2 = error.databaseText(); if (!err1.isEmpty()) { errorMsg.append(error.driverText()); errorMsg.append('\n'); } if (!err2.isEmpty() && err1 != err2) { errorMsg.append(error.databaseText()); errorMsg.append('\n'); } KMessageBox::error(this, errorMsg); m_databaseStatus->setText(" "); return false; } } else { KMessageBox::error(this, i18n("Driver could not be loaded")); m_databaseStatus->setText(" "); return false; } setValid(m_table, true); return true; }