Problem mit QSqlRelationalTableModel

Alles rund um die Programmierung mit Qt
Antworten
t_b
Beiträge: 41
Registriert: 27. Februar 2010 14:12

Problem mit QSqlRelationalTableModel

Beitrag von t_b »

Hallo,

ich habe für meine als Diplomarbeit eine Software geschrieben, mit welcher Blicksteuerungsprobleme erkannt werden sollen.
Die Arbeit ist bereits abgegeben und bis zur Präsentation feile ich noch am Programm. Dabei habe ich einen Bug, den ich bisher nicht lösen konnte und auch nicht das eigentliche Probem gefunden habe.

Das Projekt ist in mehrere Teile untergliedert, wobei das Problem bei der Klasse EvaluationDialog und ProfileFile liegt.

Wenn man das Unterprojekt EvaluationDialog kompiliert und startet, erscheint ein Fenster mit einer ComboBox und 2 Tabs mit Testdaten. Wenn ich hierbei in der Combobox auf andere Daten wechsle, werden die Daten mit den Tabs entsprechend aktualisert.

Wenn ich nun das Hauptprogramm kompiliere, dann gibt es dort ebenfalls diesen Evaluationsdialog (Auswertung-Button). Wählt man nun hier in der Combobox einen anderen Datensatz, so stürzt das Programm ab. Laut debugger gibt es einen SIGSEGV
In der qsqlquery.cpp an der Stelle:

Code: Alles auswählen

void QSqlQuery::clear()
{
    *this = QSqlQuery(driver()->createResult());
}
Jedoch ist aufrufende Funktion model->setTable("single_test"); in der Funktion (ProfileFile:getSingleTestModel), zuvor schon mehrmals ohne Probleme aufgerufen worden.

Ich weiss, man soll MiniDemos mitliefern und keine "riesigen Programme", aber in diesem Fall sehe ich leider keine andere Möglichkeit.
Es wäre sehr nett, wenn sich das jemand einmal anschauen kann, da ich an diesem Fehler verzweifle.


Noch ein kurzer Ablauf, zur Reproduktion:

ERST

evaluationdialog-> kompilieren & starten, dann testen

DANACH
main -> kompilieren & starten -> das von evaluationDialog erstellte Profil ist aktiv, einfach auf "Auswertung" gehen, und dann wieder Testen


Vielen Dank an die, die es sich einmal anschauen.
Dateianhänge
fixtestpc.7z
(158.44 KiB) 175-mal heruntergeladen
Antworten