Forum: PC-Programmierung ACCESS Datenbank mit C++


von RaveKev (Gast)


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.

von Rufus T. Firefly (Gast)


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 ...

von RaveKev (Gast)


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?

von Tobi (Gast)


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

von RaveKev (Gast)


Lesenswert?

okay vielen dank, dann werde ich mal danach suchen.


Aber das Feld  CODE  ist vom Typ Text (also char oder?)
und ich brauch den DatenTyp CHAR, um ihn an meine RelaisKarte zu
übermitteln

von Rufus T. Firefly (Gast)


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.

von Hans (Gast)


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

von RaveKev (Gast)


Lesenswert?

ne, ich muss Access nehmen.. schon irgendwie doof..

von Stefan (Gast)


Lesenswert?

Welches c++ und welche Entwicklungsumgebung(MS-Visual Studio, Borland
C++ Builder, GCC, QT...)?

von RaveKev (Gast)


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

von simeri (Gast)


Lesenswert?

hallo ravekeve,

für odbc und datenbanken hat mir super eine beispiel von
the code projekt geholfen

http://www.codeproject.com/database/easyodbc.asp

von RaveKev (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.