Verbindung mit MDB Dateien (Access)
-
Hi!
Ich möchte zu einer MDB Datei verbinden und habe nun das Problem, dass ich G++ benutze. Daher bietet mit die Möglichkeit die MFC zu benutzen leider nicht.Ich habe einige Zeit im Internet nach etwas gesucht, doch die meisten benutzen die VC++ mit der MFC oder gar Visual Basic.
Leider habe ich keine Möglichkeit ein anderes Datenbanksystem zu wählen, da ich bestehende Datenbanken überprüfen muss und jene mit Access erstellt wurden. In Visual Basic habe ich das mit DAO 3.6 gelöst. Aber um eine Geschwindigkeitserhöhung zu bekommen, wollte ich ein C++ Projekt schreiben.
Vielen Dank für jede Hilfe
-
hi
mit ODBC muesstest du auch darauf zugreifen koennen. ist vielleicht auch in der PSDK beschrieben. weiß ich aber nicht genau, hab noch nicht nachgeguckt.
was genau willst du beschleunigen wenn du das mit einem g++ machst ?
bedenke, das du bestimmte routinen, die jetzt in VB wirklich zu langsam sind, in
C(++) schreiben und in VB einbinden kannst.Meep Meep
-
Genau das habe ich auch vor.
Unteranderem muss es halt rekursiv best. Verzeichnisse durchsuchen und bei allen Bilddateien überprüfen, ob diese auch in der Datenbank vorhanden sind.
Diese Routine will ich z.B. in VB einbinden und ich muss G++ benutzen, da hier auf der Firma kein VC++ existiert.
Was genau ist denn die PSDK?
-
re
PSDK = windows SDK
gibt es online oder auch zum runterladen. bei MSfalls ich dich richtig verstanden habe, habt ihr in der firma kein VC aber VB.
in dem fall wuerd ich sagen, das du das mit der datenbankanbindung in VB machst.
ich glaub naemlich nicht das es da einen geschwindigkeitsunterschied gibt, da die arbeit von dem DB treiber erledigt wird.
oder hab ich dich da falsch verstanden ?Meep Meep
-
Ich habe auch, wie du es schon sagtest, auch vor C++ Funktionen in Visual Basic einzubinden.
Und wir haben leider auch kein VC++ hier, richtig.Und da ich komplexere Aufgaben zwischendurch erledigen muss und auch teilweise rekursive Funktionen habe, die Datenbankzugriffe brauchen, wird das ganze komplizierter, wenn ich die Datenbankzugriffe weiterhin von Visual Basic erledigen lassen will.
Spontan habe ich in der PSDK (wusste nur nichts mit dem P anzufangen) nicht spezielles für C++ ohne MFC gefunden. Aber ich werde nachher nochmal schauen.
-
Ich hab vor kurzem noch mit ODBC rumgefuscht um an die Daten in einer Paradox-Tabelle zu kommen.
Dabei war die Vorgehensweise:- Mittels SQLAllocHandle() einen Handle vom Typ SQL_HANDLE_ENV besorgen.
- Mittels SQLSetEnvAttr() und dem Handle aus 1) die ODBC-Version setzen (3er)
- Mittels SQLAllocHandle() einen Handle vom Typ SQL_HANDLE_DBC mittels dem Handle aus 1) holen
- Mittels SQLDriverConnect() und nem Connection String (http://www.connectionstrings.com/) mit einem Datenbank Treiber verbinden.
Die installierten Treiber werden unter Systemsteuerung > Verwaltung > Datenquellen (ODBC) > Treiber auch aufgelistet... - Mittels SQLAllocHandle() einen Handle vom Typ SQL_HANDLE_STMT mittels dem Handle aus 3) besorgen.
- Mittels SQLPrepare() eine SQL-Query vorbereiten lassen.
- Mittels SQLExecute() die SQL-Query ausführen.
- Mit SQLBindCol() eine Spalte an ein char-Array 'binden'
- Mittels SQLFetch() wird in die ge'bind'eten char-Arrays dann jeweils eine Tabellenzeile geschrieben.
- Mit SQLFreeHandle() die ganzen Handles wieder schließen
Mittels SQLGetDiagRec() kommt man noch an Fehlermeldungen vom ODBC-Treiber.
Die Funktionen sind alle hier zu finden:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcodbc_api_reference.asp
Einbinden musste ich die "sqlext.h" und die odbc32.lib linken...Ich hoffe das hilft dir weiter...