Announcement

Collapse
No announcement yet.

Datenfeld in Datenbank auslesen ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenfeld in Datenbank auslesen ?

    Hallo, ich mache gerade meine ersten Schritte mit einer Datenbank und leider enthält das einzige Delphi-Buch das ich noch in der Uni-Bibliothek bekommen habe dazu nichts.
    Und mit der Delphi-Hilfe stehe ich eh auf Kriegsfuß )

    Ich habe also gestern nach try and error eine Paradox 7 Datenbank mit 2 Spalten zusammengeschraubt - Datum und Name.

    Der Inhalt wird im Programm über eine DBGrid angezeigt.

    Wie komme ich aber im Quellcode an den Inhalt einer einzelnen Zelle ?

    Ich wollte, das später das Programm bei jedem Aufruf das Datum jeder Zeile mit dem aktuellen Datum vergleicht.

    Um das auszuprobieren, habe ich ein Label genommen und wollte das verknüpfen.

    <PRE>z.B. mit Label1.Caption := DBGrid1.Fields[0].DisplayText; </PRE>

    Das funktioniert auch, allerdings nur mit der ersten Zeile )

    Wie kann ich das umlegen, so daß ich zB Zeile 2 - Feld 0 auslese ??

    Danke im voraus.

    Thorsten

  • #2
    Hallo,

    es ist ein häufiges Missverständnis bei Einsteigern, dass das dbGrid für das Auslesen und Bearbeiten von Datensätzen benötigt wird.

    Der Inhalt deiner Tabelle resultiert in einem DataSet, in diesem Fall TTable. Und ganau da kannst du auch alles auslesen und verändern.

    Dazu gibt es mehrere Möglichkeiten. Empfehlenswert ist es, sog. persistente Felder anzulegen. Dazu machst du einen Doppelklick auf TTable | Rechtsklick | Alle Felder hinzufügen.

    Du kannst nun z.B. das Feld Datum der Tabelle MyTable mit
    <pre>
    MyTableDatum.value;
    </pre>
    ansprechen (falls du den Standard-Namen übernommen hast).

    Wenn du nun alle Datensätze auslesen willst, machst du das in einer Schleife.

    <pre>
    MyTable.first;
    While not MyTable.EOF do
    begin
    if MyTableDatum.value <> date then
    //machwas
    MyTable.next; //nicht vergessen, sonst Endlosschleife
    end;
    </pre>

    Wenn du nun noch verhindern möchtest, dass sich das Durchlaufen der Tabelle im dbGrid zeigt (und alles verlangsamt), kannst du das dbGrid vorübergehend "abklemmen":
    <pre>
    MyTable.disableControls;
    </pre>

    "Einschalten" geht dann mit:
    <pre>
    MyTable.enableControls;
    </pre>

    Das auf jeden Fall in einen try..finally-Block einschliessen. Und auch Fehler beim Auslesen des Datums müssen abgefangen werden.

    Viel Erfolg...

    Gruß Ul

    Comment


    • #3
      Hallo schaak,
      lade dir mal ein paar kleine Beispielprogramme zum besseren Verständnis runter:
      www.delphi-download.de

      mfg Klaus-Pete

      Comment

      Working...
      X