Hallo Am Wednesday, 1. June 2005 11:13 schrieb Gerd König:
Hallo,
ich versuche mich gerade an einem ersten QT-Datenbank-Programm. Ich verbinde mich über ODBC an die DB und versuche ein einfaches select abzusetzen und mir die Daten anzeigen zu lassen.
Soweit so gut, aber nach Ausführen des Select's bekomme ich keine Daten, obwohl angeblich über 5000 Datensätze "affected" sind. query.at() liefert mir stets "-1", auch nach einem query.first().
Warum sagt mir query.isValid() "false", bzw. was genau sagt das aus ?
Die Datenbank ist ordnungsgemäß geöffnet und die Query wurde problemlos ausgeführt (query.isActive() = true).
noch ein Vorschlag: Versuch doch einfach mal Text auf ein Label zu geben und gib das Label mal aus (nur ein Versuch, da ich auch bald keine Ideen mehr habe :)) QLabel *testLabel = new QLabel(query.value("test").toString(), this); oder so ähnlich, musst du noch anpassen
code: .... if ( defaultDB->open() ) { QSqlQuery query = defaultDB->exec( "SELECT id, name FROM company"); qDebug("no. of affected rows: %d, isValid ? %d, isActive ? %d", query.numRowsAffected(), query.isValid(), query.isActive()); if ( query.isActive() ) { query.first(); qDebug("query is active, at: %d", query.at()); while ( query.next() ) { qDebug("ID:%d, name:%s",query.value(0), query.value(1) ); ^^^^^ Vielleicht musst du auch hier noch ein .toString anhänge, da %s einen String verlangt.
} } QMessageBox::about( this, tr("id, name"),qstr); } ....
für jede Hilfe dankbar.....GERD....
Gruß Thomas -- Thomas Wedehase Nuernberg, Germany www.thomaswedehase.com PGP-KEY: 0x3337F9AC