ODBC DB mit QSqlDatabase. Wie finde ich Pfad der DB heraus?

Alles rund um die Programmierung mit Qt
Antworten
DarkSchwabe
Beiträge: 23
Registriert: 7. Juli 2008 11:57

ODBC DB mit QSqlDatabase. Wie finde ich Pfad der DB heraus?

Beitrag von DarkSchwabe »

Guten Morgen,

ich habe eine Windows ODBC-Datenbankverbindung welche ich per QSqlDatabase benutze. Das klappt auch ganz gut.

Code: Alles auswählen

 QSqlDatabase sqlDB = QSqlDatabase::addDatabase("QODBC");
 sqlDB.setDatabaseName(databaseName);	

Nun würde ich gerne herausfinden wo die Datenbank liegt. Denn ich will die ganze Datenbank an einen bestimmten Ort kopieren. Eventuell bietet auch die Qt Schnittstelle solch eine Funktionalität, aber bis jetzt habe ich sie nicht gefunden. Darum war mein Plan nun eben ganz normal die Datenbankdatei zu kopieren. Aber dafür brauche ich den Dateipfad um zu wissen wo die DB-Datei nun wirklich liegt.

Geht das irgendwie?
Danke
Gruß
DarkSchwabe
Beiträge: 23
Registriert: 7. Juli 2008 11:57

Beitrag von DarkSchwabe »

Hi nochmal,

hat niemand eine Idee wie man das machen kann? Auch bei den C++ Bordmitteln "CDatabase" habe ich nichts passendes gefunden. Aber irgendwie muss das ja gehen, schließlich muss die ODBC Verbindung die Info ja haben.

Gruß
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Beitrag von MichaelS »

DarkSchwabe hat geschrieben: Aber irgendwie muss das ja gehen, schließlich muss die ODBC Verbindung die Info ja haben.
Die "ODBC-Verbindung" braucht diese Information nicht, denn sie muss nur wissen, mit welchem ODBC-Treiber Daten ausgetauscht werden sollen. Wie der Treiber diese Daten verarbeitet, ist für die Verbindung völlig egal.

Um dennoch an die Informationen zu kommen, wirst Du wohl die ODBC-API bemühen müssen, die z.B. hier dokumentiert ist:

http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Gruß Michael
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag von Troll.Soft »

MichaelS hat geschrieben: Um dennoch an die Informationen zu kommen, wirst Du wohl die ODBC-API bemühen müssen, die z.B. hier dokumentiert ist:
Zum Glück geht es auch einfacher mit Qt-Bordmitteln.

Code: Alles auswählen

	QSettings	Registry(QSettings::UserScope, "ODBC", "ODBC.INI", NULL);
	qDebug() << Registry.value("Access/DBQ");
"Access" ist in diesem Beispiel der Datenquellenname, kann bei Dir natürlich anders sein.

viel Erfolg
Troll.Soft
DarkSchwabe
Beiträge: 23
Registriert: 7. Juli 2008 11:57

Beitrag von DarkSchwabe »

hey, vielen Dank.
Mit QSettings funktionierts wunderbar. Man muss halt wissen wo die Infos stehen ;-)

Vielen Dank!
Gruß
Antworten