ich habe ein dringendes Problem. Und zwar habe ich versucht ein UserInterface aus einen alten Programm nochmals zu verwenden. Die alte ui-form ist mit Qt-Version 4.5.1 erstellt worden. Jetzt verwende ich Qt Version 4.8.1:
Das Problem das ich habe macht sich besonders bei der Verwendung der Comboboxen bemerkbar: Wenn ich im Code einen Index festlege
Dann wird dieser einfach nicht übernommen. Die ComboBox zeigt unverändert den Eintrag mit dem Index 0. Bei dem alten Programm hat die Form mit dem entsprechenden Code fehlerfrei funktioniert. Jetzt kompiliert und linkt alles noch richtig aber die Codesegmente haben scheinbar keinen richtigen Einfluss mehr die Combobox.
void MainWindow::LoadMask()
{
// Abfrage der Datenbank
QSqlQuery query(myManager->getDatabase()->returnDatabase());
QString tmp = "SELECT * FROM table WHERE Person='";
tmp += myManager->getUser()->getUsername();
tmp += "' AND Vorname='";
tmp += myManager->getPatient()->getForename();
tmp += "' AND Nachname='";
tmp += myManager->getPatient()->getSurename();
tmp += "'";
query.prepare(tmp);
if( query.exec() )
{
query.next();
myManager->getPatient()->setForename(query.value(5).toString());
myManager->getPatient()->setSurename(query.value(6).toString());
// Datum und Betreuer werden korrekt gesetzt
ui->lBetreuer->setText(query.value(2).toString());
ui->lDatum->setText(query.value(3).toString());
// Die ComboBox, die das Geschlecht angeben soll, ändert den Wert nicht
ui->cBGeschlecht->setCurrentIndex(query.value(4).toInt());
}
}
query.value(4).toInt() habe ich mir bereits ausgeben lassen und es ist definitiv eine Zahl. Wie gesagt funktioniert der Code erfolgreich mit Qt 4.5.1, allerdings scheinbar nicht mit Qt 4.8.1. Aber da scheinbar diesbezüglich keine Kompatibilitätsprobleme bekannt sind werde ich mal weiter suchen woran es liegt.
1. Schonmal was von SQL-Injektion gehört? Viel Spass mit Deinem Code...
2. Der Code ist so korrekt und wenn ein Integer zurückgeliefert wird dann wird es auch korrekt ausgeführt. Also muss es was anderes sein - aber ein minimales Beispiel das das eigentliche Problem zeigt gibts ja leider (immer noch) nicht