Erstellen einer Tabellen-Klasse:
[SOTable('CUSTOMER')] // Name der Tabelle in der Datenbank TCustomer = class(TStorableObject) private sName : String; public [SOField('CUS_ID', ftAutoInc, 0, 'ID', [sflPrimaryKey])] property ID; // Ist bereits in der Basisklasse TStorableObject deklariert und muss nur veröffentlicht werden. [SOField('CUS_NAME', ftString, 50, 'Name')] [SOFieldEx(2,50)] [SODefaultValue('(leer)')] property Name : String read sName write SetName; end; procedure TCustomer.SetName(Value : String); begin UpdateValue(sName, Value); // Rufe die Methode in TStorableObject zur Aktualisierung des Wertes der Property "Name" end;
Attribute:
Die Definition der Klasse TCustomer erfolgt per Ableitung von TStorableObject. Über die Anweisungen in [] bei der jeweiligen Property werden die Eigenschaften der Property beschrieben.
Der Aufbau ist dabei folgender:
[SOField(<Feldname>, <Datentyp>, <Feldlänge>, <Klartextname>, [<Flags>], [Join-Feldname])].
<Feldname> = Name des Tabellenfeldes in der Notation: Feld oder auch Tabellenname.Feldname. <Datentyp> = Datentyp des Feldes <Feldname>. Mögliche Werte siehe unterstützte Datentypen. <Feldlänge> = Länge des Feldes. Wird nur beim Typ ftString benötigt. Bei allen anderen Typen kann eine 0 angegeben werden. <Klartextname> = Dieser Text wird als Beschriftung in SOView und als Überschrift in SOGridView verwendet. <Flags> = Definiert die Verhaltensweise des Feldes. Siehe mögliche Flags bei Felddefinitionen.
<Join-Feldname> = Name des Feldes in der Notation: Fremd-Tabellenname.Feldname für ein Join bzw. Nested SQL Select.
Zusatzattribute (optional):
[SOFieldEx(<MinLength>, <MaxLength>)]
<MinLength> = Min. Länge der Eingabe für das Feld. <MaxLength> = Max. Länge der Eingabe für das Feld. Darf nicht größer sein als Max. Länge des Datenfeldes in der Datenbank.
Standardwertvorgabe (optional):
[SODefaultValue(<Wert>)]
Wert = Ein Wert vom Typ Integer, String, Boolean, TDateTime oder Real.