Zeos und TField

Wenn mit den Datenbank Komponenten gearbeitet wird werden welche die Daten und Inhalte der einzelnen Felder in TField Komponenten festgehalten, bzw. werden TField Komponenten erzeugt. Die TField Komponenten werden entweder automatisch (dynamisch) oder beim Entwurf mit dem Feld Editor erzeugt.

TField ist ebenso wie TDataSet ein Teil von Lazarus. Ich möchte es aber dennoch hier behandeln, da es sehr eng mit Zeos "verzahnt" ist.

Ein TField hat etliche Properties und Events, welche zur Anzeige, zum Editieren und anderen Aktivitäten hilfreich sind.

Zeichensatz UTF-8 (bzw. UTF8) wird in diesem Kapitel einige Male erwähnt. Wer darüber kurz und bündig Informationen braucht: UTF-8 für alle von entwickler.de.

Properties

Alignment
Angabe, ob das Feld in einer Anzeige linksbündig, rechtsbündig oder zentriert dargestellt werden soll.

ConstraintErrorMessage
Meldung, die angezeigt wird, wenn die CustomConstraint-Einschränkung verletzt wird, siehe nächstes Property.

CustomConstraint
Benutzerdefinierte Einschränkung für den Feldwert.

Calculated
Wenn diese Eigenschaft auf True gesetzt ist, stammt diese Feld nicht aus der Datenbank, sondern ihr Inhalt wird durch Pascal Code erzeugt. Die Routine dazu steht in OnCalcFields der Tabelle.

Currency
Mit Currency kann gewählt werden, ob ein Zahlenfeld als Geldbetrag (True) angezeigt wird.

DefaultExpression
Standardwert für das Feld bei einer Neuanlage eines Datensatzes.

DisplayFormat
Felder können in einer bestimmten Art und Weise dargestellt werden. Das ermöglicht Datumsfelder, Zahlen und andere Formate richtig darzustellen.
Beispiel: (TT.MM.YYYY).

DisplayLabel
Normalerweise wird als Überschrift für eine Feldanzeige der Feldname der Datenbank verwendet. Möchte man statt dessen eine andere Überschrift, so kann diese hier definiert werden.

DisplayWidth
Wie breit die Spalte zur Anzeige dieses Feldes ist. Ohne Angabe werden die Werte der Datenbank verwendet.

EditFormat
Welche Buchstaben und Ziffern zur Eingabe verwendet werden dürfen und in welcher Reihenfolge diese erfasst werden können.

FieldKind

 

FieldName
Der Bezeichnung der Tabellenspalte in der Datenbank.

HasContraints
Sind für das Feld Einschränkungen definiert?

ImportedConstraint
Einschränkung für den Feldwert auf der Ebene der zugrunde liegenden Datenbank

Index
Die Datensatzposition des Datensatzes in der Tabelle, 0 ist die erste Postion.

KeyFields
Schlüsselfelder für die Suche nach einem Feldwert.

LookupCache
Ob die Lookup Liste zwischengespeichert werden soll.

LookupDataSet
Wenn eine Auswahlliste für dieses Feld in einer Tabelle existiert, so kann hier der Dataset bzw. die Tabelle (z.B. ZQuery1) der Auswahlliste angebunden werden.

LookupKeyFields
Name des Feldes, welches für die Suche in der Auswahlliste vorgesehen ist.

LookupResultFields
Name des Feldes, das als Suchwert verwendet werden soll.

MaxValue
Die größte mögliche Zahl, die in einem numerischen Feld eingegeben werden kann.

MinValue
Der kleinste mögliche Zahl, der in einem numerischen Feld eingegeben werden kann.

Name
Der Name, den das Feld in der TField Komponente hat. Ist der Tabellenname "ADRESS" und der Name des Feldes "SURNAME" so ist der TFieldName "ADRESSSURNAME".

Origin
Gibt den ursprünglichen Namen des Feldes in der Datenbanktabelle an.

ProviderFlags

ReadOnly
Wenn ReadOnly True ist können die Daten dieses Feldes nicht geändert werden.

Required
Muss das Feld einen Wert haben? Wenn ja, muss diesem Feld auf jeden Fall ein Inhalt zugewiesen werden.

Size
Gibt die maximale Größe des Eingabefeldes in einem Stringfeld an.

Tag
Ein Wert, den Lazarus für alle Komponente für verschidenden Verarbeitungszwecke zur Verfügung stellt.

Visible
Hat Visible den Wert True wird das Feld in den verbundenen Komponenten (DBGrid) angezeigt, bei False nicht.

 

EVENTS

OnChange
Ereignis, das ausgelöst wird, wenn sich der Feldwert geändert hat

OnGetText
Ereignis zum Formatieren des Feldinhalts

OnSetText
Ereignis zum Festlegen des Feldinhalts basierend auf einer vom Benutzer formatierten Zeichenfolge

OnValidate
Ereignis zum Überprüfen des Werts eines Felds, bevor es in den Datenpuffer geschrieben wird

 

Feldinhalte während der Ausgabe konvertieren

Die gespeicherten Feldinhalte repektive die in der Datenbank gespeicherten Daten können während der Übernahme konvertiert werden, wie wir es von verschiedenen Konvertierungsfunktionen von Pascal kennen. So konvertiert Zahlstring:= IntToStr(123); die Integerzahl 123 in einen String und weist ihn ZahlString als "123" zu. Wenn jetzt das Datenbankfeld eine Integerzahl enthält und er soll aber in der Anwendung als String weiter verararbeitet werden, so kann dies über den Funktion AsString gemacht werden: ZahlString:= (ADRESS)ADRESSID.AsString;.

Analog funktioniert das auch mit den anderen Konvertierungsfunktionen.

AsBCD
Repräsentiert den Feldwert als TBCD-Wert (Binary Coded Decimal).

AsBoolean
Repräsentiert den Feldwert als Booleschen Wert (True/False).

AsBytes
Rufen Sie den Inhalt des Felds als Array von Bytes ab.

AsCurrency
Gibt den Feldinhalt als Währungswert zurück.

AsDateTime
Stellt den Feldwert als TDateTime-Wert dar (z.B: 01.01.2019 24:00).

AsFloat
Stellt den Feldwert als Zahl mit doppelter Genauigkeit dar.

AsLongInt
Gibt den Feldinhalt als 32-Bit-Ganzzahl (Longint) mit Vorzeichen zurück.

AsLargeInt
Gibt den Feldinhalt als 64-Bit-Ganzzahl (Longint) mit Vorzeichen zurück.

AsInteger
Gibt den Feldinhalt als 32-Bit-Ganzzahl (Longint) mit Vorzeichen zurück.

AsString
Repräsentiert den Feldwert als String, in Lazarus als UTF8 String.

AsWidestring
Gibt den Feldinhalt als WideString zurück. Sollte in Lazarus nicht mehr gebraucht werden, da mit UTF8 Strings gearbeitet wird. AsString ist ausreichend.

AsVariant
Gibt den Wert des Feldes als Variante zurück.

<>

 

© CMBasic.de