QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setConnectOptions("SQL_ATTR_ACCESS_MODE=SQL_MODE_READ_ONLY;SQL_ATTR_TRACE=SQL_OPT_TRACE_ON");
db.setHostName("");
db.setDatabaseName("test");
db.setUserName("blablabla");
db.setPassword("jahabich");
bool ok = db.open(); // ok ist true!
QStringList list = db.tables(QSql::Tables); // list.size() liefert die korrekt e Anzahl Tabellen
QSqlQuery query("select * from tab1");
if (db.lastError().isValid())
qDebug() << db.lastError().text()); // liefert nix
QSqlRecord rec = query.record();
query.isSelect(); // liefert true
query.isActive(); // liefert true
rec.count(); // liefert die korrekte Anzahl der Spalten aus Tabelle tab1
// egal ob ich vorher ein query.first() ausführe - das false liefert -
// oder nicht, query.next() liefert immer false!
while (query.next()) {
qDebug() << query.value(1).toString();
}
Hab schon gegoogled, aber ich komme einfach nicht dahinter, wo das Problem liegt. Die Verbindung zur DB klappt. Infos zur DB und zur abgefragten Tabelle werden geliefert, aber keine Dateninhalte (und in der Tabelle steht definitiv was drin!).
Hat jemand einen Hinweis oder eine Lösung?
Besten Dank!
Gruß
Oli
Zuletzt geändert von honda71 am 21. April 2008 23:30, insgesamt 2-mal geändert.
Vielleicht unterstützt der Qt-Treiber die Datenbank oder deinen Datenbanktreiber nicht. Ich hatte ebenfalls Problem, mit QODBC auf eine MSSQL-Datenbank zu zugreifen, was wohl daran lag, dass FreeTDS nicht unterstützt wird (in der OS-Edition).
Tja, ich hätte ja nix dagegeben, wenn der Zugriff auf diverse Datenbanken in der Open-Source-Version nicht klappen würde (obwohl das wohl dem Gedanken des Lizenzmodells von Trolltech widersprechen würde)...
Wenn das ganze auch so dokumentiert wäre.
Zugriff per ODBC auf die Datenbank außerhalb von QT klappt einwandfrei...
Bei Google habe ich schon mehrer Diskussionen mit dem gleichen Problem gefunden, aber nirgends eine Lösung...
Ich habe gerade mal 4.4.0-rc1 installiert.
Leider genau das gleich Problem. Anzahl Tabellen und Spalten korrekt, Tabellen Inhalte werden aber nicht geliefert.