Aus einer Access Tabelle lesen
-
Moin Moin,
Ich habe ein Problem!
Und zwar: Ich soll mit einer .exe -Datei Werte über das Netzwerk aus einer Access Tabelle lesen und dementsprechen Werte zurückgeben. Da ich schon ewig nichts mehr mit C++ gemacht habe, kapier ich jetzt garnnichts mehr!hat jemand einen Ansatz von euch? Bin über jeden Vorschlag dankbar!
Mfg GT
-
GTI1984 schrieb:
hat jemand einen Ansatz von euch?
such mal nach OLE-DB, ODBC
-
such mal nach OLE-DB, ODBC
danke, aber sowiet war ich auch schon :-(! Ich versuche zunächst mal die daten aus einer Access Datenbank/Tabelle mit einer C++ exe Datei zuzgreifen!!
hat jemand davon Ahnung?
-
Hallo,
welchen Compiler und welche Klassenbibliothek verwendest du?
-
GTI1984 schrieb:
such mal nach OLE-DB, ODBC
danke, aber sowiet war ich auch schon :-(! Ich versuche zunächst mal die daten aus einer Access Datenbank/Tabelle mit einer C++ exe Datei zuzgreifen!!
hat jemand davon Ahnung?mit OLEDB && ATL geht es so:
//connect do db CDataConnection ds; hr = ds.Open(conn); ATLASSERT(SUCCEEDED(hr)); //get SQL query result //SQL : "select * from MyTable" CCommand<CDynamicStringAccessorW> rs; hr = rs.Open(ds, "select * from MyTable"); ATLASSERT(SUCCEEDED(hr)); //move to first record HRESULT hrn = rs.MoveFirst(); while(SUCCEEDED(hrn) && hrn != DB_S_ENDOFROWSET) { //get values //... //move to next record hrn = rs.MoveNext(); }
-
Hi,
ertseinmal Danke für eure Hilfsbereitschaft!Hallo,
welchen Compiler und welche Klassenbibliothek verwendest du?Ich weiss nicht genau was du meinst aber ich wollte dass ganze mit microsoft Visual C++ realiesieren.
Ich weiss bissher nur dass ich im ODBC Administrator meine Datenbank angeben muss! da ich aber nicht der riesen Checker in C++ bin weiss ich überhaupt nicht wie ich anfangen soll.//connect do db
CDataConnection ds;
hr = ds.Open(conn);
ATLASSERT(SUCCEEDED(hr));//get SQL query result
//SQL : "select * from MyTable"
CCommand<CDynamicStringAccessorW> rs;
hr = rs.Open(ds, "select * from MyTable");
ATLASSERT(SUCCEEDED(hr));//move to first record
HRESULT hrn = rs.MoveFirst();
while(SUCCEEDED(hrn) && hrn != DB_S_ENDOFROWSET)
{
//get values
//...//move to next record
hrn = rs.MoveNext();
}muss ich ersteinaml verdauen
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC mit dem Visual C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Da hassu was:
http://www.c-plusplus.net/forum/viewtopic.php?t=39099&highlight=odbc+access+datenbank
Und da hassu nochwas:
http://www.c-plusplus.net/forum/viewtopic.php?t=39098&highlight=odbc+access+datenbank
Vielleicht hilft es ja ein bischen.
-
Danke,
leider bin ich noch nicht viel weiter gekommen .
Also nochmal mein Problem:
Ich soll eine exe Datei erstellen die später in einem Testprogramm aufgerufen wird. Hier bei soll von dem Testprogramm eine Seriennummer an die exe datei übergeben werden. Meine exe datei soll nichts weiter tun als in eine Access Tabelle zu gehen, dort nach der Seriennummer suchen und schauen ob diese zwei Vorrausssetzungen (also Spalte 1 und Spalte 2)erfüllt. Wenn diese Vorraussetzung erfüllt ist soll sie eine 1 wenn nicht eine 0 zurückgeben.
Muss ich hierfür den Assistenten verwenden??
in den Dokus habe ich bis jetzt immer nur abfragen mit Visuellen ein und ausgaben gefunden.
Ich hatte mir vorgestellt dass ich einfach eine c++ Quelldatei entwerfe die diese Aufgabe übernimmt. Aber bis jetzt weiss ich noch nicht einmal wie ich die Seriennummer an die exe Datei übergeben soll (habe es bis jetzt nur durch manuelle eingabe also mit cin>> gelernt).weiss jemand ungefähr ob und wie ich sowas realisieren kann ??
-
Hast du eine main-Funktion oder eine InitInstance? (Weil je nach dem kommst du anders an die Kommandozeilenparameter.)
-
ich kenne nur die main Funktion.
aber
z.B:main(cstring a) { \\codeblock }
funktioniert ja nicht
-
Nein, die Parameter heißen ja auch
argc und argv
... Such einfach mal danach, ich kanns nicht aus dem Kopf und wer sucht is ja egal.
-
stimmt!! sorry hatte ich veplant aber danke des mit der Parameterübergabe hab ich jetzt
-
Leider bin ich bei meinem Hauptproblem noch nicht weitergekommen
Also nochmal mein Problem:
Ich soll eine exe Datei erstellen die später in einem Testprogramm aufgerufen wird. Hier bei soll von dem Testprogramm eine Seriennummer an die exe datei übergeben werden.Dass habe ich hinbekommen
Meine exe datei soll nichts weiter tun als in eine Access Tabelle zu gehen, dort nach der Seriennummer suchen und schauen ob diese zwei Vorrausssetzungen (also Spalte 1 und Spalte 2)erfüllt. Wenn diese Vorraussetzung erfüllt ist soll sie eine 1 wenn nicht eine 0 zurückgeben.
Muss ich hierfür den Assistenten verwenden??
in den Dokus habe ich bis jetzt immer nur abfragen mit Visuellen ein und ausgaben gefunden.
Ich hatte mir vorgestellt dass ich einfach eine c++ Quelldatei entwerfe die diese Aufgabe übernimmt.Mit dem MFC Anwendungsassistenten komm ich nicht weiter da der ja später eine Oberfläche hat. Meine Datei soll aber im hintergrund laufen .
Weiß jemand Rat??
-
Du musst doch kein Fenster erzeugen.
Mach eine Dialoganwendung und lösche alles, was mit dem Dialog zu tun hat.
Also die Dlg.h, Dlg.cpp, den Aufruf mit DoModal und die Resource.
Dann bleibt deine App-Klasse übrig. Da drin findest du die InitInstance. Das ist sowas wie ein main. Parameter kann man da auch abfragen, da hilft dir das CommandlineInfo, was du finden wirst.Andererseits konnte man auch MFC Klassen in einem Konsolenprogramm nutzen, ich weiß aber nicht mehr, wie.
-
Was meinst du mit Dialoganwendung?? Den MFC anwendungs Assistenten?? Hier finde ich nämlich nur unter Ressourcen nen Dialogordner!! Das ist falsch oder ?
-
Wenn du ein neues Projekt machst, dann wählst du Dialog aus.
Dann befolgst du die Schritte wie oben.Wenns wieder nicht klappt, gib mal deine Mailadresse, ich schick dir ein abgespecktes Projekt.
-
estartu_de schrieb:
Andererseits konnte man auch MFC Klassen in einem Konsolenprogramm nutzen, ich weiß aber nicht mehr, wie.
das ist ganz einfach. Du wählst "eine W32 Konsolenanwendung erstellen" aus und im darauffolgenden Assistenten klickst du einfach "Eine Anwendung die MFC Klassen unterstützt" an.
Jetzt kannst du die MFC Klassen benutzten.
Das Dialogfeld lässt sich vieleicht mitthis->EnableWindow(SW_HIDE);
verstecken. "this" gibt glaub ich nen Zeiger auf das aktuelle Fenster zurück (welches ja deine kleine Konsolenanwendung ist). Und EnableWindow() ist zum anzeigen der Fenster da. Probiers mal aus, so ganz sicher bin ich mir nicht.
gruß Chris++
-
Bin mal gespannt ob das funzt. Denn diese EnableWindow() funktion ist eine Funktion von CWindow (und ob eine Konsolenanwendung unter CWindow fällt weis ich nicht). Aber es gibt noch eine andere (schmutzige) lösung.
Du schreibst eine Kons.Anwendung mit MFC Klassen die wiederum in der main() oder InitInstance() mit
shellExecute(........)
dein Hauptprogramm aufruft. ShellExecute() hat glaub ich einen Parameter bei dem man die Anwendung versteckt oder minimiert starten kann (einfach mal in der Msdn nachlesen). Und nachdem ShellExecute ausgeführt wurde beendet sich dieses "Aufrufprogramm" wieder.
-
Da er den Dialog nicht braucht, kann er ihn doch löschen.
Wozu muss man den unnötigen Ballast mitschleppen und auch noch einen "Kopfstand" machen, damit man nicht sieht, dass da ein Fenster ist?
Einfach das DoModal rauslöschen und Ruhe ist. Nun kann man von der InitInstance aus alles aufrufen, was man braucht und gibt am Ende FALSE zurück, damit die Anwendung beendet wird.
Oder lebst du nach dem Motto "Warum einfach, wenns auch kompliziert geht?"