ACCESS Datenbank mit C++

Gast #201112
Lesenswert?

Hallo.

Ich habe vor, aus einer Access-Datenbank mit C++ einen Wert
auszulesen.

Die DB besteht aus 4 Spalten
 TOR | AUF |   KFZ   | CODE
-------------------------
  1     0    FF 10/1    1
  2     1    FF 21/1    2
  3     0    FF 30/1    4
  4     0    FF 40/1    8
  5     0    FF 61/1    16
  6     0    FF 88/1    32
...


Jetzt wird durch ein anderes Programm die Spalte "AUF" verändert.
Wenn das Tor aufgehen soll, wird aus der "0" eine "1" und wenn es
zu gehen soll, eine "0" aus der "1".

Ich möchte in jeder Zeile, in der bei "AUF" eine "1" steht den CODE
auslesen, und in eine Variable schreiben.

Wie mach ich das?
würde mich sehr über eine antwort freuen, da ich für dieses Projekt nur
noch bis morgen abend zeit habe.
Gast #201113
Lesenswert?

Die Datenbank liest man am geschicktesten über einen ODBC-Treiber aus;
eventuell bietet Dir ja Dein Compiler entsprechende Werkzeuge, um
Codegerüste für den Gebrauch von ODBC-Treibern zu konstruieren.
Sowohl beim Borland C++ Builder als auch bei MS Visual C++ sind
entsprechende Hilfsmittel vorhanden. Ein Blick in die Dokumentation
dürfte da Aufklärung bringen.

Wenn Du an die Datenbank SQL-Befehle senden kannst, kannst Du Deine
Grundaufgabe mit

  select CODE from wieauchimmerdeinetabelleheisst where AUF equals 1;

lösen. Übliche ODBC-Treiber lassen das zu; Du musst dann "nur noch"
das result set iterieren ...
Gast #201114
Lesenswert?

Ich verwende den  DEV Compiler von BloodShed.


Und meine ODBC-Schnittstelle habe ich in Windows auch schon
eingerichtet.

und habe auch schon versucht mit


char relais;
relais = SELECT code FROM garage WHERE auf equals 1;
cout<<relais<<endl;


aber da sagt mir mein Compiler, dass SELECT undeclared ist.


Könnte es daran liegen, dass DEV C++ vielleicht keine ODBC unterstüzt?
Gast #201115
Lesenswert?

Devc++ benutzt den gcc.

sql datenbanken füttert man mit abfragen in form von strings und das
char relais;
relais = SELECT code FROM garage WHERE auf equals 1;
ist ganz sicher keine korrekte difinition von strings ;)

odbc libs sollten sich für den gcc auch finden
Gast #201117
Lesenswert?

.

   "char relais;
   relais = SELECT code FROM garage WHERE auf equals 1;
   cout<<relais<<endl;"

Da hast Du etwas falsch verstanden. Einen SQL-Befehl kannst Du nur mit
entsprechenden Mechanismen als String an den ODBC-Treiber senden; ihn
im Klartext in den C++-Sourcecode zu schreiben ... ist müßig.

Außerdem liefert das SQL-Statement ein sogenanntes result set - das
kann auch eine Liste von Resultaten sein - und wie weist Du die dann
einem char zu? Siehste, geht so nicht.

Du solltest mal versuchen herauszufinden, ob Dein Compiler eine
ODBC-Wrapperklasse bietet. Wenn dem nicht so ist ... hast Du vermutlich
schlechte Karten.
Gast #201118
Lesenswert?

wenn du noch irgendwie die datenbank ändern kannst nimm einfach
sqlite... dann hast damit 0 probs...

sonnst darfst dich mit odbc rumärgern...

was ich mich erinnern kann heisst die datenbank engine von m$ "JET
Database Engine".. wennst keine odbc wrapper hast schau mal ob es ein
jet interface gibt sollte auch gehn

73
Gast #201121
Lesenswert?

Ich werde es mit DEV-C++ versuchen, mir wurde in dem Zusammenhang vorher
in diesem Threat scon was von wegen GCC gesagt, aber kann nichts damit
anfangen.

für Visual-C++ finde ich haufenweise sachen.. zwar etwas verwirrend,
aber ich find welche
Gast #201123
Lesenswert?

Vielen Dank.

Ich muss heute noch meine Präsentation machen für das Projekt. Und muss
mal sehen, wie lange ich dafür brauch.
Wenn ich die dann geschaft habe, werde ich versuchen, das mit der
Datenbank auch noch einzubauen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren