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. Kann diese Anzahl stimmen? Mal auf einer Konsole gegen geprüft.?
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).
code: .... if ( defaultDB->open() ) { QSqlQuery query = defaultDB->exec( "SELECT id, name FROM company");
Ich nehme an defaultDB->exec ist folgendes: QSqlQuery QSqlDatabase::exec ( const QString & query = QString::null ) const Executes a SQL statement (e.g. an INSERT, UPDATE or DELETE statement) on the database <<<< SELECT fehlt hier, vielleicht liegt da der Fehler Meines Wissens wird nach einem exec erstmal auf einen invalid Record gezeigt. Bevor man also weitermacht, sollte man ein query.next() aufrufen um zum ersten Datensatz zu springen.
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) );
} } QMessageBox::about( this, tr("id, name"),qstr); } ....
für jede Hilfe dankbar.....GERD....
-- Thomas Wedehase Nuernberg, Germany www.thomaswedehase.com PGP-KEY: 0x3337F9AC