Access DB - komplette Zeile auslesen



  • Hi!
    Ich würde gerne aus einer DB eine komplette Zeile auslesen und anschließend in ein ListCtrl schreiben. Meine Frage wäre jetzt ob das überhaupt möglich ist oder ich alle Einträge einzeln auslesen muss?

    MfG

    Chris



  • Hallo,

    ich gehe mal davon aus, daß du mit "eine Zeile" einen Datensatz aus einer Tabelle in einer Access-Datenbank meinst.

    Also das ist grundsätzlich möglich. Dazu am Besten bei der Erstellung des Projekt schon die Datenbankfunktionalität mit einbinden, und dann hast du die komplette Datenbankunterstützung, je nach Wahl über CRecordset-Objekte (dann greift du über ODBC auf die Datenbank zu) oder über CDaoRecordset-Objekte (mit direktem Zugriff auf die Datenbank).
    Darüber kanns du dann auf einzelne Datensätze zugreifen, wobei für jede Spalte einer Tabelle eine entsprechende Referenzvariable angelegt wird.
    Am besten zum Einarbeiten in das Thema mal die entsprechenden KApitel der MSDN durchlesen.

    Gruß WinCoder



  • Danke für die Erklärung. Ich bin mit diesen Dingen Grundlegend vertraut.
    Hier nochmal meine Problemstellung:

    Access DB:

    Name           Kurs        Pruefer        Protokoll
    Hans, Wurst    Mathe       Hr. Meier      Fr. Müller
    

    Mit Zeile meine ich jetzt die kompletten Daten von Hans aufeinmal auszulesen, spriche jede dazugehörige Spalte. Ich möchte also nicht wie sonst immer GetFieldValue("Name", olevar)
    GetFieldValue("Kurs", olevar2)
    usw. auslesen, sondern alles auf einmal.



  • Hallo,

    Also ich würd folgendermaßen vorgehen:
    ➡ im Klassenassistenten neue Klasse anlegen mit Basisklasse CRecordset oder CDaoRecordSet;
    ➡ je nach Abfrage des Assistenten dann die Datenbank und die gewünschte Tabelle angeben
    ➡ in dieser Klasse wird dann für jede Spalte in deiner Tabelle eine eigene Membervariable angelegt, also z.B m_Name, m_Kurs, m_Pruefer und m_Protokoll
    ➡ jetzt in deinem Programm eine Variable vom Typ der neu erstellten Klasse anlegen (z.B. rsMeineDaten) und irgwann als erstes Tabelle öffnen:

    rsMeineDaten.Open(NULL)
    

    ➡ Ab jetzt kannst du mit den verschiedenen Move-Befehlen dur deine Datensätze Blättern. Die Werte stehen dann in den Member-Variablen dder Datensatz-Klasse
    ➡ Es gibt auch die Möglichkeit SQL-Filter zu nutzen (Wie, ist in der MSDN-Library recht gut erläutert). Das hilft vor allem beim Suchen bestimmter Datensätze in großen Datenmengen

    Ich hoffe, das hilft dir ein bisschen weiter!

    Gruß WinCoder



  • Das mit dem Assistenten klappt leider nicht. Ich Könnte die Klasse höchsten von CDatabase ableiten, aber DB auswählen und Membervariablen erstellen is da nichts.
    Ich benutze .net 2002 und habe eine Dialogbasierende Anwendung erstellt.



  • Den Assistenten scheint es in der Form nur im VC6 zu geben.
    Hast du das irgendwo? Dann installier es, mach ein Dummyprojekt und arbeite die Anleitung ab. Dann verschiebst du die Klasse in dein eigentliches Projekt. 🙂

    Oder du postest deine Mailadresse und ich schicke dir mal eine typische vom Assistenten erstellte Klasse, da kannst du dann abgucken und anpassen. Ist eben ein bischen Arbeit, was man sich mit VC6 sparen kann. 🙄



  • Steht auch in der FAQ



  • Willst du alle Felder in einen String? Wenn ja :

    Select Name +" "+  Kurs +" "+  Pruefer +" "+ Protokoll as Datensalat from Tabelle
    

Anmelden zum Antworten