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.
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 ...
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?
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
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
. "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.
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
Welches c++ und welche Entwicklungsumgebung(MS-Visual Studio, Borland C++ Builder, GCC, QT...)?
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
hallo ravekeve, für odbc und datenbanken hat mir super eine beispiel von the code projekt geholfen http://www.codeproject.com/database/easyodbc.asp
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.