hi everyone,
i have init a database and i want to insert data to this database ,i write a code as below, when compiler without any error but can not insert any data
please help me
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())
{
}
query.exec("create table db_table "
"(id integer primary key, "
"start_time varchar(20), "
"decription varchar(30), "
"finish_time varchar(20))");
}
{
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(NULL,'%1','%2','%3')") .arg(start_time).arg(description).arg(finish_time));
// Get database given autoincrement value
if (ret)
{
newId = query.lastInsertId().toInt();
}
}
return newId;
}
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;
query.exec("create table db_table "
"(id integer primary key, "
"start_time varchar(20), "
"decription varchar(30), "
"finish_time varchar(20))");
}
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(NULL,'%1','%2','%3')")
.arg(start_time).arg(description).arg(finish_time));
// Get database given autoincrement value
if (ret)
{
newId = query.lastInsertId().toInt();
}
}
return newId;
}
To copy to clipboard, switch view to plain text mode
and I call them in mainform
MainForm
::MainForm(QWidget *parent
) : ui(new Ui::MainForm)
{
ui-> setupUi(this);
creat_db();
insert_to_db("10:10","too high","10:12"); //only test
}
...........
MainForm::MainForm(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainForm)
{
ui-> setupUi(this);
creat_db();
insert_to_db("10:10","too high","10:12"); //only test
}
...........
To copy to clipboard, switch view to plain text mode
Bookmarks