// Add include QSqlQuery, QSqlError, QtDebug
void MainForm::creat_db()
{
#ifdef Q_OS_LINUX
// store database file into user home folder in Linux
path.
append(QDir::separator()).
append("my.db.sqlite");
path
= QDir::toNativeSeparators(path
);
db.setDatabaseName(path);
#else
// file exists in the application private folder
db.setDatabaseName("my.db.sqlite");
#endif
// Open databasee
if(!db.open())
{
}
if ( ! query.exec("create table db_table "
"(id integer primary key, "
"start_time varchar(20), "
"decription varchar(30), "
"finish_time varchar(20));"))
{
qDebug() << query.lastError().text();
}
}
{
int newId = -1;
bool ret = false;
if (db.isOpen())
{
// NULL = is the keyword for the autoincrement to generate next value
ret
= query.
exec(QString("insert into db_table(start_time, decription, finish_time) values('%1','%2','%3');") .arg(start_time).arg(description).arg(finish_time));
// Get database given autoincrement value
if (ret)
{
newId = query.lastInsertId().toInt();
}
else
{
qDebug() << query.lastError().text();
}
}
return newId;
}
// Add include QSqlQuery, QSqlError, QtDebug
void MainForm::creat_db()
{
db = QSqlDatabase::addDatabase("QSQLITE");
#ifdef Q_OS_LINUX
// store database file into user home folder in Linux
QString path(QDir::home().path());
path.append(QDir::separator()).append("my.db.sqlite");
path = QDir::toNativeSeparators(path);
db.setDatabaseName(path);
#else
// file exists in the application private folder
db.setDatabaseName("my.db.sqlite");
#endif
// Open databasee
if(!db.open())
{
QMessageBox::warning(0, QObject::tr("database error"),db.lastError().text());
}
QSqlQuery query;
if ( ! query.exec("create table db_table "
"(id integer primary key, "
"start_time varchar(20), "
"decription varchar(30), "
"finish_time varchar(20));"))
{
qDebug() << query.lastError().text();
}
}
int MainForm::insert_to_db(QString start_time, QString description, QString finish_time)
{
int newId = -1;
bool ret = false;
if (db.isOpen())
{
// NULL = is the keyword for the autoincrement to generate next value
QSqlQuery query;
ret = query.exec(QString("insert into db_table(start_time, decription, finish_time) values('%1','%2','%3');")
.arg(start_time).arg(description).arg(finish_time));
// Get database given autoincrement value
if (ret)
{
newId = query.lastInsertId().toInt();
}
else
{
qDebug() << query.lastError().text();
}
}
return newId;
}
To copy to clipboard, switch view to plain text mode
You can replace the qDebug() by messagebox.
Bookmarks