direkt: ich habe gegoogelt und schon ein paar weitere Freunde gefragt, die mir allerdings nicht weiterhelfen konnten. Daher wende ich mich an das QtForum. Ich habe ein Problem mit meiner QSQLITE Query Anfrage. Es geht im speziellen um Folgendes:
Ich verwalte derzeit über Qt eine kleine Datenbank. Einträge hinzufügen über den Befehl
Code: Alles auswählen
if(!q.prepare("INSERT INTO "+Klassentyp+" (sName, sDescription, dCreate, dLastModified, dCustom, tBest, tTotal, qPicture, iMassstab, iTotalLaps, dDummy) VALUES (:sName, :sDescription, :dCreate, :dLastModified, :dCustom, :tBest, :tTotal, :qPicture, :iMassstab, :iTotalLaps, :dDummy)")) {
QSqlError err = q.lastError();
cout << "\n\n FEHLER BEIM ABSPEICHERN: \n" +err.text().toStdString() << "\n\n";
QMessageBox::critical(0,"Datenbankfehler","Fehler in der Datenbank! Wollte basic::vDBSave ausfuehren und bin im ersten Block hängen geblieben. Der SQL Error gibt zurück: \n" +err.text());
}
// …
if(!q.exec()) {
QSqlError err = q.lastError();
cout << "Fehler beim abspeichern: in basic::vDBSave ganz am Ende habe ich folgenden Fehler: \n" << err.text().toStdString() << "\n";
return;
}
Möchte ich allerdings Einträge Löschen oder auch nur Updaten, so kann ich diese Funktion nicht korrekt ausführen. Zwar gibt mir q.lastError().text() keinen Fehler wieder und die Anfrage des Querys in Form von
Code: Alles auswählen
QString query = "DELETE FROM "+Klassentyp+" WHERE ID = '"+QString::number(iID)+"'";
// Den Query Ausführen und auf Fehler gucken.
if(!q.exec(query)) {
QSqlError err = q.lastError();
QMessageBox::critical(0,"Datenbankfehler","Fehler in der Datenbank! Wollte vDBErase ausfuehren und bin im schreibenden Block hängen geblieben. Der SQL Error gibt zurück: \n" +err.text());
}Auch im Debugger finde ich keinen Fehler, das Programm stürzt nicht ab, nichts besonderes. Nur die Anfrage an die Datenbank funktioneiert auf Gedeih und Verderben nicht. Wende ich allerdings die Where-Condition ab und schreibe z.B.
Code: Alles auswählen
delete from table FahrerCode: Alles auswählen
delete from table Fahrer where ID = 2Hat da jemand einen Lösungsvorschlag? Für Rückfragen stehe ich natürlich jederzeit offen und freue mich auch darüber!
Vielen Dank für eure Antworten!
Thomas