Qt und QODBC mit MS Access unter Linux
Verfasst: 24. Juli 2008 09:40
Hallo an alle !
ich bin neu hier, schwöre aber, das ich die Sufu und google schon bemüht habe. Vielleicht liegts an den falschen Suchbegriffen, oder es hat wirklich noch keiner damit rumexperimentiert.
Vorab, ich bin in english leider nicht so bewandert und daher hilft mir die doch ziemlich umfangreiche Doku von Trolltech nicht wirklich weiter :/
zum Problem :
ich verbinde per
übergebe die offene Datenbank an query
dann stelle ich eine suchanfrage mit
so dann zu den unklaren ergebnissen :
Die Spaltenanzahl stimmt, eine zeile hat 178 Spalten. Warum aber sind die betroffenen Zeilen 0? und was soll mir das Warning bei ausführung des Programms sagen?
ich hab bereits versucht den forwardOnly des Treibers auf false zu setzen, bzw. auf true, keine Änderung die Meldung kommt auch weiterhin.
Es wäre nett, wenn mir einer helfen kann, da ich die MS Access daten in einer MySQL DB weiterhin transparenter verwenden möchte und mir diese MS Datenbanken mit ihrer unflexibilität eh stinken.
vielleicht noch was zum abfragen der ergebnisse :
wenn ich die Zeilen so versuche auszulesen :
kommt
wenn ich versuche so auf die Daten zuzugreifen :
macht er gar nix, klar weil numRowsAffected 0 ist und er daher gar nicht erst in das Ereignis springt -.- .
Danke schonma für die Hilfe und das geduldige durchlesen meines Posts
CAD
ich bin neu hier, schwöre aber, das ich die Sufu und google schon bemüht habe. Vielleicht liegts an den falschen Suchbegriffen, oder es hat wirklich noch keiner damit rumexperimentiert.
Vorab, ich bin in english leider nicht so bewandert und daher hilft mir die doch ziemlich umfangreiche Doku von Trolltech nicht wirklich weiter :/
zum Problem :
ich verbinde per
Code: Alles auswählen
QSqlDatabase db_mdb = QSqlDatabase::addDatabase( "QODBC", "MSAccess");
bool ok = db_mdb.open();
Code: Alles auswählen
QSqlQuery queryMysql( db_mdb);
Code: Alles auswählen
queryMysql.exec( "SELECT * FROM adressen");
Code: Alles auswählen
queryMysql.size(); -> -1
queryMysql.numRowsAffected(); -> 0
QSqlRecord record = queryMysql.record();
record.count(); -> 178
Code: Alles auswählen
QODBCDriver::checkHasSQLFetchScroll: Warning - Driver doesn't support scrollable result sets, use forward only mode for queries
Es wäre nett, wenn mir einer helfen kann, da ich die MS Access daten in einer MySQL DB weiterhin transparenter verwenden möchte und mir diese MS Datenbanken mit ihrer unflexibilität eh stinken.
vielleicht noch was zum abfragen der ergebnisse :
wenn ich die Zeilen so versuche auszulesen :
Code: Alles auswählen
for( i = 0; i < record.count(); i++)
{
qDebug() << QObject::trUtf8( "Zeile : %1").arg( i) << queryMysql.value( record.indexOf( record.fieldName( i))).toString();
}
Code: Alles auswählen
QSqlQuery::value: not positioned on a valid record
"Zeile : 0" ""
QSqlQuery::value: not positioned on a valid record
"Zeile : 1" ""
...
QSqlQuery::value: not positioned on a valid record
"Zeile : 178" ""
Code: Alles auswählen
while( queryMysql.nextResult())
{
qDebug() << QObject::trUtf8( "Zeile : %1").arg( i) << queryMysql.value( record.indexOf( record.fieldName( i))).toString();
i++;
}
Danke schonma für die Hilfe und das geduldige durchlesen meines Posts
CAD