Seite 1 von 1

[gelöst] QODBC Zugriff liefert keine Dateninhalte...

Verfasst: 17. April 2008 21:56
von honda71
Hallo Leute,

ich habe folgendes Problem: per QODBC greife ich unter (4.3.1) auf eine Informixdatenbank zu:

Code: Alles auswählen

  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

Verfasst: 18. April 2008 13:02
von dontinelli
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).

Verfasst: 18. April 2008 13:49
von honda71
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...

Gruß

Oli

Verfasst: 18. April 2008 14:13
von honda71
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. Bild

Verfasst: 21. April 2008 12:53
von honda71
Ich habe heute weitere Versuche durchgeführt:

Informix-Connect 1.26 -> geht nicht
Informix-ClientSDK 2.9 -> geht nicht
Informix-ClientSDK 3.0 -> geht nicht

wohlgemerkt: alles über ODBC.

Zugriff per ODBC auf Access -> geht.. (also liegt's wohl nicht an meinem Testprogramm).

Hat denn niemand mehr weitere Hinweise, Tipps oder Denkanstösse?

Gruß

Oli

Verfasst: 21. April 2008 18:15
von honda71
Habe den Fehler nun gefunden.
In den erweiterten Einstellungen von ODBC muss "Scrollable Cursors" aktiviert werden....

;)

Gruß

Oli