Nun möchte ich eine Fehlerauswertung durchführen. Um z.B. den Benutzer mitzuteilen was evtl. an seinem Datensatz falsch ist. Wie z.B. das der Primärschlüssel schon vergeben ist, oder es nicht erlaubt ist das eine null in gewissen feldern steht. Mein Problem aktuell ist, das bis auf den Datenbanktext alle Fehler die gleiche nummer haben oder vom gleichen Typ sind. Zudem wollte ich wissen ob man das automatische schreiben der Fehlermeldung in der DOS-Box vermeiden kann?
Eine manuelle vorabauswertung im Code des insertstatements ist nicht möglich da in diverse Tabellen der Datenbank geschrieben wird und somit die Datenbank die Fehlerfeststellung übernehmen soll. Und danach nur noch der entsprechende Fehler ausgewertet werden soll.
Die Verbindung wird über ODBC zu einem SQL Server hergestellt hier der Code
Code: Alles auswählen
QString connectionString = "Driver={"+ driver + "};Server=" + server + ";Database=" + dbName;
db = QSqlDatabase::addDatabase("QODBC", "MainDBConnection");
db.setDatabaseName(connectionString);
db.setUserName("xxx");
db.setPassword("xxx");
if (!db.open()){
error = db.lastError().text();
qDebug() << error << endl;
status = false;
}
else
qDebug() << "Verbindung steht" << endl;
Code: Alles auswählen
QSqlQuery query(db);
query.setForwardOnly(true);
query.prepare(querry);
if(query.exec())
qDebug() << "erfolgreich" << endl;
else
{
qDebug() << "Datenbank Text: " <<query.lastError().databaseText() << endl;
qDebug() << "Treiber Text: " <<query.lastError().driverText() << endl;
qDebug() << "Fehler nummer: " <<query.lastError().number() << endl;
qDebug() << "Text: " <<query.lastError().text() << endl;
qDebug() << "Fehler type: " <<query.lastError().type() << endl;
}
query.clear();Gruß
Schubi