Firebird Verbindung über OBDC aber wie?

Alles rund um die Programmierung mit Qt
Antworten
baloo der baer
Beiträge: 13
Registriert: 4. Juli 2006 18:06

Firebird Verbindung über OBDC aber wie?

Beitrag von baloo der baer »

Ich möchte via ODBC auf eine Firebird DB zugreifen. Nur ist mir nicht ganz klar welche Verbindungsparameter ich wo setzen muß. Folgendes funktioniert jedenfalls nicht.

Code: Alles auswählen

db.setHostName("localhost");
db.setDatabaseName(":C:\\Programme\\AVERPLokal\\AvERPDemo.GDB"); //ist das DBFile
db.setUserName("SYSDBA");
db.setPassword("masterkey");

baloo
caligano
Beiträge: 126
Registriert: 19. August 2006 15:33

Beitrag von caligano »

Folgendes funktioniert jedenfalls nicht.
Kriegst du irgendwelche Fehlermeldungen?

Problem könnte vielleicht die Pfadangabe sein (c:\ ...);

schau dir diesbezüglich mal die Trolltech-Mailingliste an, v.a den Beitrag hier :
http://lists.trolltech.com/qt-interest/ ... 008-0.html
baloo der baer
Beiträge: 13
Registriert: 4. Juli 2006 18:06

Beitrag von baloo der baer »

Hier nochmal etwas genauer.

OS: Win XP
QT: 4.1.4

Code: Alles auswählen

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("localhost");
db.setDatabaseName(":C:\\Programme\\AVERPLokal\\AvERPDemo.GDB");
db.setUserName("SYSDBA");
db.setPassword("masterkey");

Ich bekomme dann folgende Fehlermeldung über db.lastError().driverText():

QODBC3: unable to Connect

und über db.lastError().databaseText():

[Microsoft][ODBC Driver Manager] der Datenquellenname ist zu lang

baloo
caligano
Beiträge: 126
Registriert: 19. August 2006 15:33

Beitrag von caligano »

Wofür ist der Doppelpunkt ( : ) vor der Pfandangabe? Fehlt da vllt so etwas wie localhost oder 127.0.0.1 ? ansonsten vllt mal den Doppelpunkt weglassen?

hier noch ein Code-Beispiel aus der Mailingliste. hilft dir vllt auch :

Code: Alles auswählen

...

I have been able to connect to  the embedded fb by:

sqlDatabase = QSqlDatabase::addDatabase("QIBASE");
sqlDatabase.setDatabaseName("database.fdb");
sqlDatabase.setUserName("SYSDBA");
sqlDatabase.setPassword("password");
sqlDatabase.setPort(0);
if( !sqlDatabase.open() )
{
	qFatal("Failed to open database %s", qPrintable(pDatabase));
}

This is of course you have the QIBASE driver compiled and the firebird 
dll is in the directory of the data file.
baloo der baer
Beiträge: 13
Registriert: 4. Juli 2006 18:06

Beitrag von baloo der baer »

Ich will eigentlich den ODBC Treiber verwenden weil ich Probleme mit dem IBASE Treiber habe. Wenn mir jemand den IBASE Treiber (einen funktionierenden) als Plugin schicken könnte würde ich es auch damit probieren.

Mail: andreski@gmx.de
caligano
Beiträge: 126
Registriert: 19. August 2006 15:33

Beitrag von caligano »

damit kann ich dir leider nicht dienen (qt 4.2.0, ohne db driver kompiliert...) aber sind denn die Plugins nicht in der qt-win-opensource-4.1.4-mingw.exe enthalten?
baloo der baer
Beiträge: 13
Registriert: 4. Juli 2006 18:06

Beitrag von baloo der baer »

Die müßte man sich erst selbst kompilieren, jedoch bricht er da bei mir immer ab.
Antworten