Datensatzorientierte Datenbankprogrammierung mit C++-Builder (Delphi) |
StringVar = Tabelle->FieldByName("Name")->AsString; |
TField hat unter anderem folgende Member:
FieldName | Name der Spalte |
DataSize | benötigte Byte |
DataType | Konstante, die den Typ beschreibt |
DataSet | zeigt auf den DataSet, zu dem das Feld gehört |
IsIndexField | gibt an, ob aktueller Index dieses Feld enthält |
StringVar = Tabelle->FieldValues["Name"]; |
float lSumme=0.0; Buchung->First(); while (!(Buchung->Eof)) { lSumme = lSumme + Buchung->FieldValues["Betrag"]; Buchung->Next(); } |
Analog zur Methode First(), die auf den ersten Satz positioniert, gibt es die Methode Las(), die auf den letzten Satz geht. In diesem Fall würde statt Next() die Methode Prior() verwendet und das Ende der Schleife wäre nicht bei Eof, sondern bei Bof erreicht.
DB->Tabelle->EditKey(); DB->Tabelle->FieldValues["Key1"] = "Schluessel1"; DB->Tabelle->FieldValues["Key2"] = "Schluessel2"; DB->Tabelle->GotoKey(); |
DB->Tabelle->FindNearest(ARRAYOFCONST((Search->Text))); |
Damit wird in der Tabelle auf den Satz navigiert, der Search->Text am nächsten kommt. Das Makro ARRAYOFCONST braucht übrigens tatsächlich zwei Klammern.
TLocatOptions SrchOpt; SrchOpt = loPartialKey; Adressen->Locate("Name", "Meier", SrchOpt); |
Damit wird aus der Tabelle Adressen auf den ersten Datensatz positioniert, dessen Name mit Meier beginnt.
vgl.: Wiehland (Hrsg): Borland C++ Builder Das Buch. tewi-Verlag, München, 1998. S.590-591
TTable *Tab; Tab->Insert(); Tab->FieldValues["NAME"] = EditText->Text; Tab->Post(); |
Soll statt einen neuen Satz an der aktuellen Stelle eingefügt zu werden, nur der
aktuelle Satz geändert werden, wird statt Tab->Insert() der Aufruf Tab->Edit()
verwendet. Tab->Append() statt Tab->Insert() hängt den neuen Satz am Ende der
Tabelle an.
Beispielsweise sollen alle Buchungen, die einen bestimmten Kunden betreffen
angezeigt werden. Dieser Kunde habe die Kundenkennung AW12345. Durch Setzen
der Eigenschaft Filter wird die Bedingung beschrieben. Dabei entspricht der
Syntax in etwa einer WHERE-Klausel eines SQL-Befehls.
Filter
Sollen nicht alle Zeilen einer Tabelle angezeigt werden, sondern nur ein
bestimmter Bereich, kann man Filter einsetzen. Zu diesem Zweck werden vor
allem die Eigenschaften von TTable Filter und Filtered
eingesetzt.
KdNr = 'AW12345' |
Aktiv wird der Filter, sobald die Eigenschaft Filtered auf true gesetzt wird. Für obiges Beispiel heiße die TTable Buchung:
Buchung->Filter = "KdNr = 'AW12345'"; Buchung->Filtered = true; |
Besonders interessant wird es, wenn die abzufragende Kundennummer zur Programmlaufzeit bestimmt werden kann. Im folgenden Beispiel steht in der Variablen strKunde vom Typ AnsiString die Kundenkennung:
Buchung->Filter = "KdNr = '" + strKunde + "'"; Buchung->Filtered = true; |
Homepage | (C) Copyright 2003 Arnold Willemer |