Datenbankunterstützung auch bei Dialogfeldbasierend?
-
Hallo!
Ich möchte in meiner Anwendung zwar Datenbankunterstützung haben jedoch keine SDI Applikation entwickeln, wie krieg ich das unter einen Hut?
Kevin
-
An was hast du denn da gedacht ?
ODBC,DAO,ADO,OLEDB ???
Welche Version von VC++ verwendest du ?Unter .NET gibts da die ODBC-MFC-Consumer-Class, damit geht das sehr einfach und sehr schnell.
-
HI!
Ich benutze VC++ 6.0!Ich möchte folgendes machen:
http://www.mut.de/media_remote/buecher/VCPLUS6/data/kap14.htmjedoch nicht in einer hässlichen SDI Anwendung, kann ich das auch in einer Dialogfeldbasierenden machen oder ist es nötig den Code dann so zu verändern dass die SDI GUI nicht gestartet wird?
Kevin
-
Weiß wohl niemand hm?

-
Ich würde in diesem Fall bei einer dialogfeldbasierenden Anwendung eine eigene Klasse erstellen, die von CRecordset abgeleitet ist. Damit hast du volle Datenbankfunktionalität.
Zusätzlich musst du in der StdAfx.h folgende Headerfile einbinden:
.... #include <afxdb.h> //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.Das sollte eigentlich klappen.
Gruß, seppelina
-
geht leider nicht

ich habe bei vs 7.0 die MFC ODBC Customer class hinzugefügt und bekomme sehr sehr viele Kompilierungsfehler...warum verträgt sich dialogfeldbasierend und datenbank nicht einfach?
-
Sagtest du nicht, dass du VC++ 6 verwendest?
Gruß, seppelina
-
ich habe beides installiert

ich werde das benutzen bei dem es gehen wird
-
hab jetzt mal von ms 7.0 die odbc klasse in 6.0 eingefügt

Programm kackt ab obwohl alles ganz normal aussieht, habe ich was vergessen?
Schaut es euch bitte mal an:
http://mitglied.lycos.de/Surkevin2/projekt.zipHoffentlich schaffe ich es heute/morgen mal in einer dialogfeldbasierenden Anwendung meine Datenbank zu benutzen, wenn dem so wäre würde ich euch knuddeln *G*
Kevin
-
Schmiert ab, wenn ich in VC++ .NET konvertieren will.
-
In der FAQ habe ich genau geschrieben wie es geht
-
Hier ist die Klasse die ich mir geschrieben haben um in meinen dialogfeldbasierenden Programm,in verschiedenen Threads auf eine Access DB zugriffen zu können.
Wenn du die DB in verschiedenen Thread benutzen willst darfts du nur ein Object der Klasse erstellen.
Erkärung der Funktionen:
AskDB(DB_Path_in) Erstellt ein AskDB-Objekt.DB_Path_in ist der Pfad zu deiner DB.
Execute(SQL) Für den SQl-String aus
KomprimiereDB() Kompriemiert die Datenbank
AddRecordset(SQL) Fügt dem Objekt ein Recordset hinzu und liefert die Zugriffnr zurück
GetRecordSet(Index) Liefert einen Zeiger aud das CDaoRecordset mit der übergebenen Zugriffnr zurück
ReturnRecordset(Index) Teilt dem Objekt mit das das Recordset nicht mehr benutzt wird
DeleteRecordset(Index) Entfernt das Recordset
Close() Schliesst die DB und alle Recordsets
SetShowError(se) Stellt ein ob Fehlermeldungen gezeigt werden sollenBeispiel:
AskDB DB("c:\\meinDB.mdb"); BOOL CMeinDlg::OnInitDialog() { DB.KomprimiereDB(); DB.SetShowError(false); } void CMeinDlg::OnButton_Delete() { DB.Execute("Delete * from Tabelle1"); } void CMeinDlg::OnButton_LesTable1() { CDaoRecordset * r; long rzn = DB.AddRecordset("Select * from Tabelle1"); r = DB.GetRecordSet(rzn); while(! r->ISEOF()) { //Code zum Anzeigen der Informationen } DB.ReturnRecordset(rzn); DB.DeleteRecordSet(rzn); }
-
Hallo!
Danke für eure Hilfen! Unix-Toms Lösung ist einfach GEIL!DANKE
*KNUDDEL*
Kevin