Keine ODBC-treiber geladen

Alles rund um die Programmierung mit Qt
Antworten
kuberka
Beiträge: 26
Registriert: 8. Februar 2006 09:17

Keine ODBC-treiber geladen

Beitrag von kuberka »

Hi,
habe Qt 4.3.1 unter Windows standardmäßig installiert.

Wenn ich den nach folgenden Code laufen lasse bekomme ich die Meldungen

QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:


Das heißt für mich, es sind keine Treiber vorhanden und daher konnte ich den ODBC-Treiber nicht laden.

Meine Frage nun, wie kann ich die Treiber laden.

Ich habe auch schon die Treiber dlls ins system32 Verzeichnis kopiert.

Code: Alles auswählen

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

	qDebug()<<db.lastError().text();

	db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=c://ForBalReport.mdb");
 
	if (!db.open()) 
	{
		qDebug()<<db.lastError().text();
		 int a=1;
		// success!
	}
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

wenn keine treiber vorhanden sind, musst du sie erst mal compilieren.
Wie das geht steht in der Doku. oder einfach mal googlen.
mollitz
Beiträge: 81
Registriert: 5. April 2007 10:55

Beitrag von mollitz »

hast du den odbc treiber mitkompiliert?
muss man an geben -sql-driver-odbc oder sowas
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Ha! Schneller
mollitz
Beiträge: 81
Registriert: 5. April 2007 10:55

Beitrag von mollitz »

ach mennö :oops:
kuberka
Beiträge: 26
Registriert: 8. Februar 2006 09:17

Beitrag von kuberka »

Hi,

es existieren bei mir die Treiber-DLLs schon(qsqlodbc4.dll)

hmm wie kann ich die jetzt laden?

Arbeite unter Windows, daher habe ich die Standardinstallation von QT

Gruss

Torsten
QT-Junkee
Beiträge: 18
Registriert: 14. März 2007 14:59

Beitrag von QT-Junkee »

Hi,

Folgende Reihenfolge ist entscheidend ->

Code: Alles auswählen

    QString mdbName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=");
      mdbName.append(m_mdb);                                              // den pfad zur Datenbank hinzufügen
      m_mdb = QSqlDatabase::addDatabase("QODBC");             // Add a database with QODBC driver
      m_mdb.setDatabaseName(mdbName);

      if (m_mdb.open())
      {
          ...
      }
      else
      {// to show error message box if something failed while db opening
         QMessageBox::critical(this, tr("Database"), T_TbTexte.lastError().text(),
            QMessageBox::Ok, QMessageBox::NoButton);
      } 
Antworten