marcel_t hat gesagt.:
Vielen Dank für diesen Einstieg. Er hat mir gut weitergeholfen.
Gern geschehen.
marcel_t hat gesagt.:
Du darfst gerne so frei sein und mir ein weiteres mal helfen..
Mal schauen.
marcel_t hat gesagt.:
Nun meine Frage: Wie binde ich eine Ms Access DB mittels Komponenten innerhalb von Visual Studio 2005 ein? und welche Komponente ist empfehlenswert hierfür?
Hrgn. Genau ein Treffer. Ich muß dir leider gestehen, daß ich es, wann immer es sich in irgendeiner Weise bewerkstelligen lässt, einen Riesenbogen um die MS-Tools mache. Das hat nichts mit einem objektiven "MS ist Rotz" zu tun sondern rein mit subjektiven Vorlieben. Ich mag weder MFC, .net noch die Visual-Dinger von MS. Irgendwo hier fliegt noch ein Projekt in MS Visual-Format herum, das ist allerdings fertig und ich muß es nur warten und nicht neu basteln.
Von daher kann ich dir da leider keine detaillierte Hilfe anbieten, andere hier im Forum aber garantiert. Aber ich habe mir gerade mal den Spaß gemacht, mir die Komponenten angesehen und mit den VCL-Dingern verglichen, die ich gerade benutze. Ausgehend von den nachfolgend beschriebenen Schritten findest du garantiert genügend Beispiele, Tutorials und auch Sourcefragmente, die dir weiterhelfen können.
EINE BITTE AN ALLE MFC-CRACKS: Wenn ich hier groben Unfug schreibe, bitte schnellstmöglich korrigieren! Danke!
1. Die Datenbank (DB) muß angelegt werden. Da ich hier kein Access habe, kann ich diesen Schritt leider bereits nicht nachvollziehen, aber die
Theorie dürfte die gleiche sein, wie wenn ich eine MySQL- oder Oracle-DB aufsetze (ja, ich weiß, daß sich der Setup dieser drei DBs grundlegend voneinander unterscheidet. Es geht ja auch nur darum, daß einfach mal eine DB hingeklatscht gehört.).
2. In der DB sollten mal (wenigstens grob) die entsprechenden Tabellen angelegt werden. Vorgehensweise dazu kann der Access-Hilfe entnommen werden.
3. In deinem Formular (ich hoffe doch, daß du mit Formularen arbeitest, sonst schreibe ich das hier umsonst
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
) brauchst du ein paar Komponenten, als welche ich jetzt da mal auf Anhieb sehe:
- OleDbConnection: Mit diesem Teil baust du erst einmal eine Verbindung zwischen deinem Programm und der Datenbank auf. Ich kann dir aber leider nicht sagen, ob du dazu einen Connectionstring aufbauen musst oder ob das Studio schon fix und fertig entsprechende Konfigurationen für Access kennt.
- OleDbDataAdapter: Ich zitiere aus der Hilfe:
The OleDbDataAdapter serves as a bridge between a DataSet and data source for retrieving and saving data. The OleDbDataAdapter provides this bridge by using Fill to load data from the data source into the DataSet, and using Update to send changes made in the DataSet back to the data source.
Zu Erläuterung: Das DataSet ist einfach ein Speicherbereich, in dem die Daten, die derzeit von deinem letzten DB-Kommando zurückgegeben wurde, abgelegt werden. Wenn du also z.B. ein DBGrid auf das Formular legen willst und darin immer schön brav die DB-Daten anzeigen willst, dann verknüpfst du das DBGrid nie direkt mit der Datenbank sondern mit dem DataSet. Und das DataSet wird dann eben von dir gefüllt, wie du es brauchst.
-OleDbCommand: Mit dieser Komponente kannst du der DB Befehle erteilen, z.B. SQL-Statements. Soweit ich das jetzt mal überflogen habe, landen die Ergebnisdaten der Statements in einem DataSet. Ich kann dir aber ad hoc nicht sagen, ob die DbCommand-Komponente schon ein eigenes DataSet mitbringt oder erst noch mit einem verknüpft werden muß. Aber das kann dir sicher die MS Hilfe sagen.
Bei mir in der Komponentenleiste habe ich diese drei Komponenten noch in vier verschiedenen Ausprägungen:
- OleDb*
- SQL*
- Odbc*
- Oracle*
Diese dienen einfach nur zur unterschiedlichen Anbindung verschiedener Datenbanken an dein Program. Bekanntlich führen viele Wege nach Rom. (Tip: Mit einer Diskussion OLE oder ODBC kannst du oft einen gleichen Glaubenskrieg auslösen wie mit der Frage "Windows oder Linux?" :suspekt: )
Dazu habe ich noch (mit 30 Sekunden Suche ;-] ) diesen Link gefunden:
http://www.aspheute.com/artikel/20000419.htm
Die Oracle-Komponenen habe ich halt drauf, weil ich hier (Überraschung!) mit dieser DB arbeite und die Dinger von der Oracle-Installation reingesetzt wurden.
So, mal schauen, ob dir das auch weiter geholfen hat.