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

Alles rund um die Programmierung mit Qt
Antworten
honda71
Beiträge: 49
Registriert: 12. Juli 2006 16:16

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

Beitrag 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
Zuletzt geändert von honda71 am 21. April 2008 23:30, insgesamt 2-mal geändert.
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag 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).
honda71
Beiträge: 49
Registriert: 12. Juli 2006 16:16

Beitrag 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
honda71
Beiträge: 49
Registriert: 12. Juli 2006 16:16

Beitrag 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
honda71
Beiträge: 49
Registriert: 12. Juli 2006 16:16

Beitrag 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
honda71
Beiträge: 49
Registriert: 12. Juli 2006 16:16

Beitrag von honda71 »

Habe den Fehler nun gefunden.
In den erweiterten Einstellungen von ODBC muss "Scrollable Cursors" aktiviert werden....

;)

Gruß

Oli
Antworten