Seite 1 von 1

Fehler bei QSqlQuery ausführung

Verfasst: 23. August 2006 19:30
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

Verfasst: 25. August 2006 07:47
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.

Verfasst: 25. August 2006 11:32
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.

Verfasst: 25. August 2006 11:35
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.

Verfasst: 6. September 2006 14:32
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");