ich habe vor c.a. 3 Wochen mit QT angefangen und stehe nun vor einem Problem.
Ich habe eine verschachtelte While zur Eintragung von Kategorien. Grob erklärt:
Es ist ein Zeiterfassungstool, bei dem automatisch vorgegbene Kategorien zu Projekten hinzugefügt werden. Der Code, denke ich, spricht für sich. Nur die verschachtelte while für die Categorys wird nur einmal ausgeführt. Habe versucht mit endGroup die Gruppe zu schließen und ihn per beginGroup wieder auf den Anfang zu setzen. Wisst ihr wo mein Fehler liegt ???
Vielen Vielen Dank!
Code: Alles auswählen
QSettings settings(SETTINGSFILENAME, QSettings::IniFormat);
settings.beginGroup("default_projects");
int n=1;
QString projectnr;
projectnr.setNum(n);
// read settings from ini-file --> Category
QSettings cat_settings(CATSETTINGSFILENAME, QSettings::IniFormat);
int y=1;
QString catnr;
while (settings.contains ("project" + projectnr ))
{
myquery = "INSERT INTO project (name, customer_id) "
"VALUES ('" + settings.value("project" + projectnr).toString() + "','"
+ custid + "')";
qDebug() << myquery;
// while loop for categorys
catnr.setNum(y);
cat_settings.beginGroup("default_categorys");
while (cat_settings.contains ("category" + catnr ))
{
cat_query = "INSERT INTO category (name, project_id) "
"VALUES ('" + cat_settings.value("category" + catnr).toString() + "','"
+ custid + "')";
qDebug() << cat_query;
if (!query.exec(cat_query))
QMessageBox::critical(this, trUtf8("Ein Fehler ist aufgetreten"),trUtf8("StandardKategorie Nr.") + catnr + " " + trUtf8("konnte nicht hinzugefügt werden.\n\nFehler:\n") + query.lastError().text(), QMessageBox::Ok);
y++;
catnr.setNum(y);
}
// end of category while
cat_settings.endGroup();
if (!query.exec(myquery))
QMessageBox::critical(this, trUtf8("Ein Fehler ist aufgetreten"),trUtf8("Standardprojekt Nr.") + projectnr + " " + trUtf8("konnte nicht hinzugefügt werden.\n\nFehler:\n") + query.lastError().text(), QMessageBox::Ok);
n++;
projectnr.setNum(n);
}