[SOLVED]SQLite Zugriffsproblem
Verfasst: 15. Mai 2009 17:48
Hi, ich bin gerade dabei einen BirthdayReminder zu schreiben und wollte dazu die Daten in einer SQLite Datenbank erstellen. Allerdings gibt es dabei ein Problem. Folgender Code erstellt mir zwar eine Datenbank mit dem namen Birthday.db aber es gelingt mir einfach nicht, daten davon auszulesen.
In "getAll()" geht er mir nichtmal in die while-Schleife und ich find den Grund dafuer einfach nicht.
Waer genial wenn mir da jemand evtl helfen koennt.
thx
HappyEnding
Code: Alles auswählen
#include <QFile>
#include <QDebug>
#include <QVariant>
#include "dbhandler.h"
DbHandler::DbHandler()
{
dbname = "birthday.db";
}
void DbHandler::createDatabase()
{
QFile dbfile;
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbname);
dbfile.setFileName(dbname);
if (!dbfile.exists()) {
db.open();
QSqlQuery createquery;
createquery.exec("CREATE TABLE birthdays (id int primary key auto_increment, "
"name varchar(80), bday varchar(10))");
db.close();
}
}
void DbHandler::insert(QString name, QString date)
{
db.setDatabaseName(dbname);
if (!db.open()){
msgBox.setText("The Database could not be opened.");
msgBox.exec();
}
else {
QSqlQuery insertquery;
insertquery.exec("INSERT INTO birthdays (name, bday) VALUES ('', '" + name + "', '" + date + "')");
}
db.close();
}
void DbHandler::getTodaysBirthdays(QString date)
{
db.setDatabaseName(dbname);
if (!db.open()){
msgBox.setText("The Database could not be opened.");
msgBox.exec();
} else {
QSqlQuery selectquery;
selectquery.exec("SELECT name FROM birthdays where bday = " + date);
while (selectquery.next()){
QString name = selectquery.value(0).toString();
qDebug() << name;
}
}
db.close();
}
QString DbHandler::getAll()
{
QString name = "false";
db.setDatabaseName(dbname);
if (!db.open()){
msgBox.setText("The Database could not be opened.");
msgBox.exec();
} else {
QSqlQuery selectquery;
selectquery.exec("SELECT name FROM birthdays");
while (selectquery.next()){
name = selectquery.value(0).toString();
}
}
db.close();
return name;
}
Waer genial wenn mir da jemand evtl helfen koennt.
thx
HappyEnding