Fehler bei QSqlQuery ausführung

Alles rund um die Programmierung mit Qt
Antworten
baloo der baer
Beiträge: 13
Registriert: 4. Juli 2006 18:06

Fehler bei QSqlQuery ausführung

Beitrag von baloo der baer »

Hallo,

habe folgendes Problem:
Ich baue ein DB Verbindung zu einem Firefox DB Server auf. Klappt alles ohne Fehler. Öffne die Verbindung auch kein Problem. Bei der Ausführung der Query bekomme ich allerdings folgende Fehlermeldung bei Ausfühung von query.lastError().text() und query.lastError().databaseText():

Unsuccessful execution caused by system error that does
not preclude successful execution of subsequent statements
Could not prepare statement

Code: Alles auswählen

QSqlDatabase db = QSqlDatabase::addDatabase("QIBASE");
db.setHostName("127.0.0.1"); 
db.setDatabaseName("xxx");
db.setUserName("SYSDBA");
db.setPassword("masterkey");

if(db.open())
{
    QSqlQuery query;
    query.exec("SELECT id FROM test");
}
Folgende habe ich schon geprüft:

1. die Tabelle existiert
2. die Spalte existiert
3. keine Fehlermeldung über db.lastError().driverText()
4. keine Fehlermeldung über db.lastError().databaseText()


Danke für die Hilfe

Andre
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das scheint ein weit verbreitetes Problem zu sein (laut google). Frage mal bei der Mailingliste deiner DB an ob die Dir helfen können.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
baloo der baer
Beiträge: 13
Registriert: 4. Juli 2006 18:06

Beitrag von baloo der baer »

Könnte es daran liegen das QT Unicode verwendet? Weil laut aussage aus der Mailingliste von Firebird ist die Selectanfrage korrekt.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Nein, mit unicode hat das bestimmt nichts zu tun - das muss der Treiber intern korrekt behandeln (und da es nur latin1-Zeichen sind, sollte es sowieso nichts ausmachen).
Ich denke eher dass es irgend eine DB-Einstellung ist oder so.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Kext
Beiträge: 8
Registriert: 14. Mai 2006 21:40
Kontaktdaten:

Beitrag von Kext »

Bei Firebird must du auf Groß/Kleinschreibung achten.
Tabellen und Spaltenname, die klein geschrieben sind, musst du in Hochkomma packen.

Code: Alles auswählen

query.exec("SELECT 'id' FROM 'test'"); 
query.exec("SELECT ID FROM TEST");
Antworten