MySql --> mit c++ daraus lesen geht, aber wie schreib ich was in die Datenbank
-
Hallo zusammen !!!
Mein besonderer Dank gilt estartu_de, ohne deren Hilfe wäre ich noch lange nicht fertig.
Heinz
estartu_de schrieb:
Jetzt muss ich heinz1 aber mal unterstützen!

Ich lese seit Monaten mit, in der Hoffnung, dass genau dieses Thema endlich mal beantwortet wird. Ich suche nämlich auch nach Antworten auf exakt diese Fragen.
Ich hatte sie auch schon mal bekommen, MySQL spezifisch. Aber leider hat sich das DBMS geändert und könnte sich nochmal ändern. Also möchte ich dass jetzt wirklich gerne mit den Klassen der MFC erschlagen.
@alex-t: Wenn es schon so oft im Forum stand, warum zum Henker (*explodier*) finde ich es nicht? Mit welchen Suchbegiffen findet man die Beträge?
Achja, ich vergaß: Die Suche ist ja immernoch kaputt. Man findet also hier im Forum nix.
Wenn du dich noch dran errinnerst, poste doch mal die Links oder hast du vielleicht ein Beispielprojekt?Warum könnt ihr immer nur auf die FAQ verweisen? Klar will man nicht alles immer und immer wieder schreiben - verstehe ich. Aber: Solange die Suche hier nicht geht ist genau der Verweis auf die Suche sehr unfair. Denn die Anleitung steht nicht in der FAQ, sondern wenn überhaupt irgendwo im Forum an sich. Un das durchzusuchen (von Hand) ist unzumutbar.
Also: Bitte, ich möchte es auch wissen!
Wie macht man ein Insert oder Update oder Delete mit der Klasse CRecordset?@heinz1: Wenn du auch eine auf MySQL spezialisierte Variante gebrauchen kannst, kann ich dir ein Beispielprojekt schicken. Ansonsten kannst du dir ja die Klassen und Anleitungen von Unix-Tom anschauen, genau das nutze ich nämlich.
-
Tja, nur auf meine Fragen hat sich noch keine Antwort gefunden.

Die Lösung mit der direkten Übergabe von SQL-Kommandos ist ja angenehm, aber wohl nicht DBMS unabhängig. Dass muss ich aber sein.
-
meinst du persavive? sieht nach einem totschlagwort aus.
http://www.heise.de/newsticker/data/jk-28.08.02-005/
http://www.pervasive2004.org/cfp.phpmit dem mysql/odbc driver kannst du mysql wie odbc anbinden und verwenden.
vielleicht hilft das.so long
-
ps: aber im grunde brauchst du eine abstraktion der db, die daten anfordert in einem bestimmten format, und die jeweiligen öffnungsprozeduren müssen überschrieben werden mit der spezifikation der jeweilig von der speziellen db erforderten öffnungs- und leseprozedur (bzw. schreibprozedur).
damit hälst du das ganze soweit offen, daß später neue dbs oder was sonst daten liefert angehängt werden können.
-
Danke II, aber irgendwie sieht das nicht nach dem aus, was ich da vermutet hätte. Naja muss ich eh nochmal fragen.
Aber: Ich habe mein MySQL schon über ODBC angebunden. Mein Problem ist blos die originale Handhabung der Klasse CRecordset.
Die Lösung von Unix-Tom ist klasse, aber ich glaube, sie ist nicht DBMS unabhängig...

-
Sie ist zwar nicht Unabhängig aber ich bin dabei eine ODBC-Wrapper zu machen welche die gleichen Methoden exportiert. Man braucht nur die DLL austauschen und der Connect ist anders. Dem Connect bei ODBC übergibt man nur die Datenquelle.
Ist aber noch Beta.Kommt übrigens alles in mein Buch rein.
-
Tja Unix-Tom. Wenn ich aber warte, bis du fertig bist, hat mich mein Chef erschlagen.

Ausserdem muss es doch irgendwo eine Anleitung für die normalen Datenbankzugriffsklassen der MFC und ihre Handhabung geben, oder?
-
In der MSDN
-
[ironie]Danke[/ironie], die Beschreibungen habe ich schon vor Monaten gelesen.
Wenn ich die verstanden hätte bzw. überhaupt was an Beispielen gefunden hätte, dann würde ich hier nicht so nerven.
Mir würde ja schon so ein doofes kleines Progrämmchen weiterhelfen, das mehr macht als nur ein Select.
Wenn man doch blos nicht immer den Quellcode und die Bücher zurücklassen müsste, wenn man die Firma wechselt. Dann könnte ich zum Regal gehen und in ein Buch gucken und da steht das drin. Ich weiß aber weder Titel noch Verlag, sonst hätte ich es mir gekauft.
Also: Ich habe hier die MSDN 10/2000, die ist zwar total kaputt (Verlinkung klappt nicht mehr) aber da drin hab ich auch mit der Suchfunktion nix gefunden. Die MSDN 04/2003 sieht genauso aus.
Hast du mal einen Link zu der Online MSDN, wo Beispiele sind? Oder Suchbegriffe mit denen ich ganz bestimmt was finde? Es kommt mir wirklich ganz besonders auf die Beispiele an.

-
im nachhinein denke ich, du meintest nur 'persistent'
passt besser.. zu datenbanken.eine persistente verbindung...
-
@II: Ich frag nochmal nach, kann ja den richtigen Namen posten, wenn ich ihn weiss.

-
SChau mal in die FAQ. Dort hab ich eine Source gepostet wie man ODBC anbindet und die Datenbank direkt per SQL anspricht
-
Ach Unix-Tom, ich geb es auf.

Das, was du gepostet hast funktioniert wunderbar. Ich kann es auch nutzen, hatte ich bisher ja auch. Das ist ja auch das, was ich heinz1 beigebogen habe.
Ich möchte den "Microsoft Weg" mal machen.
-
Wie war eigentlich die Frage nochmal?
Du wolltest per ODBC auf Datenbanken zugreifen oder ?
-

Ich möchte per ODBC von VC++6 auf meine Datenbank zugreifen. Welches Datenbanksystem ich verwende soll egal sein (damit ich nicht wieder von vorne anfange, wenn sich etwas ändert). Daher möchte ich, weil ich glaube, dass es dort am besten "verallgemeinert" ist, die MFC Klasse CRecordset verwenden.
Und diese möchte ich so verwenden, wie das von Microsoft gedacht ist. (Also hast du im Prinzip recht, wenn du mich zum Beispiel suchen auf die MSDN verweist - blos ich hab nix gefunden.)
Unter http://www.henkessoft.de/mfc_einsteigerbuch_kapitel12.htm findet man leider nur, wie eine Abfrage (Select) gemacht wird. Aber in dem Erklärungsstil suche ich halt noch, wie man die Daten verändert. Die tieferen Zusammenhäng wären auch interessant, damit ich mich nicht auf diese schrecklichen Assistenten verlassen muss.
Das kann auch gerne auf Englisch sein, das stört mich nicht - Deutsch kommt nur der Faulheit entgegen
.
Solltest du einen Buchtipp haben, immer her damit. Geld spielt im Moment ein untergeordnete Rolle (war ja gerade Weihnachten).Habe ich jetzt meine Frage ausreichend klar formuliert? Ich knobel schon so lange mit dem Problem, dass ich manche Details schon als selbstverständlich betrachte.
Danke

-
meinst du etwa addnew() ?
BOOL CDbView::OnMove(UINT nIDMoveCommand) { // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen if (m_AddMode){ if (!UpdateData()) return false; m_pSet->Update(); m_pSet->Requery(); //Datenbank wegen veränderung neu lesen UpdateData(false); m_AddMode=false; //Add ausschalten return true; } else //kein Add return CRecordView::OnMove(nIDMoveCommand); } void CDbView::OnRecordAdd() { // TODO: Code für Befehlsbehandlungsroutine hier einfügen if (m_AddMode) OnMove (ID_RECORD_FIRST); OnGetRecordset()->AddNew(); m_AddMode=true; UpdateData(false); //Laden der aktuellen daten aus der Recordsetclasse // in das view Fenster } void CDbView::OnRecordDelete() { // TODO: Code für Befehlsbehandlungsroutine hier einfügen m_pSet->Delete(); //aktueller Datensatz geloescht m_pSet->MoveNext(); //naechster wird verschoben if (m_pSet->IsEOF() ) //ende durchs verschieben erreicht?? m_pSet->MoveLast(); //dann der letzte aktuell if (m_pSet->IsBOF() ) //Ist die tabelle leer?? m_pSet->SetFieldNull(NULL); UpdateData(false); }uraltcode aus uraltprojekt ohne anspruch auf richtigkeit
-
ps: das geht natürlich mit mysql genauso wie mit odbc ... etc...
über den odbc treiber (kann man ja mysql genauso anbinden).
ist aber irgendwie nicht schön.. mfc halt.
-
Jaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! *hüpfdurchsbüro*
Oh, das ist es! Danke! Danke! Danke! Danke! Danke! Danke! Danke! Danke! Danke! Danke!
Das ist so ein gesuchtes Beispiel. Ich hoffe auch mal, dass keine bösen Fehler drinstecken, aber ein Ansatz zum Ausbauen ist es auf jeden Fall.
Du kommst einen rauf.

Ja, genau das war gesucht. So dumm es scheint, aber ich hab es nicht finden können. Ich brauchte wirklich nur: "Welche Befehle kombiniere ich mit welchen anderen am besten?" Und das hab ich jetzt. *freu*
Vielen lieben Dank nochmal!

PS: Ich weiss dass es nicht schön ist. Direktes SQL finde ich "einfacher" und deutlich durchschaubarer, aber nach dem unerwarteten Wechsel des DBMS habe ich mir überlegt, dass es das beste ist, unabhängig vom Unterbau zu sein.
-
ehrlich gesagt hat bestimmt niemand gedacht, daß du DAS meinst...
kauf dir jetzt dringend einmal ein buch, mfc grundlagen.. egal welches, hauptsache, datenbankanbindung ist mit drin..
sonst kommst du nicht weiter, wenn du damit arbeiten musst.(gibts auch in fast allen bibliotheken, oder gebraucht bei amazon)
-
Hast du eine Empfehlung?
Ich habe hier mindestens 5 Bücher und in KEINEM ist es beschrieben.